Skip to content

Commit 6e3e712

Browse files
authored
Merge pull request #9 from SYoder1/syoder1
Added more currencies
2 parents 1b9ffb3 + 7aeb03d commit 6e3e712

File tree

2 files changed

+65
-5
lines changed

2 files changed

+65
-5
lines changed

src/index.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,18 @@ export const formatCurrency: FormatCurrencyFunction = ({ amount, code }) => {
1616
.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
1717

1818
const switchOptions = {
19+
// united arab emirates dirham (ex: AED 1,234.56)
20+
AED: [`AED ${commaFormatted}`, `${commaFormatted}`, "AED"],
21+
1922
// argentine peso (ex: $ 1.234,56)
2023
ARS: [`$ ${periodFormatted}`, `${periodFormatted}`, "$"],
2124

2225
// australian dollar (ex: $ 1,234.56)
2326
AUD: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"],
2427

28+
// bosnia and herzegovina convertible mark (ex: KM 1.234,56)
29+
BAM: [`KM ${commaFormatted}`, `${commaFormatted}`, "KM"],
30+
2531
// barbadian Dollar (ex: $1.234,56)
2632
BBD: [`$${commaFormatted}`, `${commaFormatted}`, "$"],
2733

@@ -109,12 +115,18 @@ export const formatCurrency: FormatCurrencyFunction = ({ amount, code }) => {
109115
// moroccan dirham (ex: 1,234.56 .د.م.)
110116
MAD: [`${commaFormatted} .د.م.`, `${commaFormatted}`, ".د.م."],
111117

118+
// moldovan leu (ex: 1.234,56 L)
119+
MDL: [`${commaFormatted} L`, `${commaFormatted}`, "L"],
120+
112121
// mexican peso (ex: $ 1,234.56)
113122
MXN: [`$ ${commaFormatted}`, `${commaFormatted}`, "$"],
114123

115124
// malaysian ringgit (ex: RM 1,234.56)
116125
MYR: [`RM ${commaFormatted}`, `${commaFormatted}`, "RM"],
117126

127+
// nigerian naira (ex: ₦1,234.56)
128+
NGN: [`₦${commaFormatted}`, `${commaFormatted}`, "₦"],
129+
118130
// nicaraguan Córdoba (ex: C$ 1,234.56)
119131
NIO: [`C$ ${commaFormatted}`, `${commaFormatted}`, "C$"],
120132

@@ -142,6 +154,9 @@ export const formatCurrency: FormatCurrencyFunction = ({ amount, code }) => {
142154
// romanian new leu (ex: 1,234.56L)
143155
RON: [`${commaFormatted}L`, `${commaFormatted}`, "L"],
144156

157+
// serbian dinar (ex: 1,234.56 RSD)
158+
RSD: [`${commaFormatted}RSD`, `${commaFormatted}`, "RSD"],
159+
145160
// russian ruble (ex: 1.234,56 p.)
146161
RUB: [`${periodFormatted} p.`, `${periodFormatted}`, "p."],
147162

@@ -193,7 +208,7 @@ type CurrencyCode = {
193208
};
194209
export const getSupportedCurrencies = () => {
195210
const currencyCodes: CurrencyCode[] = [
196-
// { code: "AED", name: "United Arab Emirates Dirham"},
211+
{ code: "AED", name: "United Arab Emirates Dirham" },
197212
// { code: "AFN", name: "Afghanistan Afghani"},
198213
// { code: "ALL", name: "Albania Lek"},
199214
// { code: "AMD", name: "Armenia Dram"},
@@ -203,7 +218,7 @@ export const getSupportedCurrencies = () => {
203218
{ code: "AUD", name: "Australia Dollar" },
204219
// { code: "AWG", name: "Aruba Guilder"},
205220
// { code: "AZN", name: "Azerbaijan Manat"},
206-
// { code: "BAM", name: "Bosnia and Herzegovina Convertible Mark"},
221+
{ code: "BAM", name: "Bosnia and Herzegovina Convertible Mark" },
207222
{ code: "BBD", name: "Barbados Dollar" },
208223
// { code: "BDT", name: "Bangladesh Taka"},
209224
{ code: "BGN", name: "Bulgaria Lev" },
@@ -279,7 +294,7 @@ export const getSupportedCurrencies = () => {
279294
// { code: "LSL", name: "Lesotho Loti" },
280295
// { code: "LYD", name: "Libya Dinar" },
281296
{ code: "MAD", name: "Morocco Dirham" },
282-
// { code: "MDL", name: "Moldova Leu" },
297+
{ code: "MDL", name: "Moldova Leu" },
283298
// { code: "MGA", name: "Madagascar Ariary" },
284299
// { code: "MKD", name: "Macedonia Denar" },
285300
// { code: "MMK", name: "Myanmar (Burma) Kyat" },
@@ -293,7 +308,7 @@ export const getSupportedCurrencies = () => {
293308
{ code: "MYR", name: "Malaysia Ringgit" },
294309
// { code: "MZN", name: "Mozambique Metical" },
295310
// { code: "NAD", name: "Namibia Dollar" },
296-
// { code: "NGN", name: "Nigeria Naira" },
311+
{ code: "NGN", name: "Nigeria Naira" },
297312
{ code: "NIO", name: "Nicaragua Córdoba" },
298313
{ code: "NOK", name: "Norway Krone" },
299314
// { code: "NPR", name: "Nepal Rupee" },
@@ -308,7 +323,7 @@ export const getSupportedCurrencies = () => {
308323
{ code: "PYG", name: "Paraguay Guarani" },
309324
// { code: "QAR", name: "Qatar Riyal" },
310325
{ code: "RON", name: "Romania Leu" },
311-
// { code: "RSD", name: "Serbia Dinar" },
326+
{ code: "RSD", name: "Serbia Dinar" },
312327
{ code: "RUB", name: "Russia Ruble" },
313328
// { code: "RWF", name: "Rwanda Franc" },
314329
{ code: "SAR", name: "Saudi Arabia Riyal" },

test/test.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
var expect = require("chai").expect;
33
var index = require("../dist/index.js");
44
describe("formatCurrency function test", () => {
5+
it("should return AED", () => {
6+
var result = index.formatCurrency({ amount: 0.56, code: "AED" });
7+
expect(result).to.eql(["AED 0.56", "0.56", "AED"]);
8+
var result = index.formatCurrency({ amount: 1234.56, code: "AED" });
9+
expect(result).to.eql(["AED 1,234.56", "1,234.56", "AED"]);
10+
var result = index.formatCurrency({ amount: 1234567.89, code: "AED" });
11+
expect(result).to.eql(["AED 1,234,567.89", "1,234,567.89", "AED"]);
12+
});
13+
514
it("should return ARS", () => {
615
var result = index.formatCurrency({ amount: 0.56, code: "ARS" });
716
expect(result).to.eql(["$ 0,56", "0,56", "$"]);
@@ -20,6 +29,15 @@ describe("formatCurrency function test", () => {
2029
expect(result).to.eql(["$ 1,234,567.89", "1,234,567.89", "$"]);
2130
});
2231

32+
it("should return BAM", () => {
33+
var result = index.formatCurrency({ amount: 0.56, code: "BAM" });
34+
expect(result).to.eql(["KM 0.56", "0.56", "KM"]);
35+
var result = index.formatCurrency({ amount: 1234.56, code: "BAM" });
36+
expect(result).to.eql(["KM 1,234.56", "1,234.56", "KM"]);
37+
var result = index.formatCurrency({ amount: 1234567.89, code: "BAM" });
38+
expect(result).to.eql(["KM 1,234,567.89", "1,234,567.89", "KM"]);
39+
});
40+
2341
it("should return BBD", () => {
2442
var result = index.formatCurrency({ amount: 0.56, code: "BBD" });
2543
expect(result).to.eql(['$0.56', '0.56', '$' ]);
@@ -281,6 +299,15 @@ describe("formatCurrency function test", () => {
281299
expect(result).to.eql(["1,234,567.89 .د.م.", "1,234,567.89", ".د.م."]);
282300
});
283301

302+
it("should return MDL", () => {
303+
var result = index.formatCurrency({ amount: 0.56, code: "MDL" });
304+
expect(result).to.eql(["0.56 L", "0.56", "L"]);
305+
var result = index.formatCurrency({ amount: 1234.56, code: "MDL" });
306+
expect(result).to.eql(["1,234.56 L", "1,234.56", "L"]);
307+
var result = index.formatCurrency({ amount: 1234567.89, code: "MDL" });
308+
expect(result).to.eql(["1,234,567.89 L", "1,234,567.89", "L"]);
309+
});
310+
284311
it("should return MXN", () => {
285312
var result = index.formatCurrency({ amount: 0.56, code: "MXN" });
286313
expect(result).to.eql(["$ 0.56", "0.56", "$"]);
@@ -299,6 +326,15 @@ describe("formatCurrency function test", () => {
299326
expect(result).to.eql(["RM 1,234,567.89", "1,234,567.89", "RM"]);
300327
});
301328

329+
it("should return NGN", () => {
330+
var result = index.formatCurrency({ amount: 0.56, code: "NGN" });
331+
expect(result).to.eql(["₦0.56", "0.56", "₦"]);
332+
var result = index.formatCurrency({ amount: 1234.56, code: "NGN" });
333+
expect(result).to.eql(["₦1,234.56", "1,234.56", "₦"]);
334+
var result = index.formatCurrency({ amount: 1234567.89, code: "NGN" });
335+
expect(result).to.eql(["₦1,234,567.89", "1,234,567.89", "₦"]);
336+
});
337+
302338
it("should return NIO", () => {
303339
var result = index.formatCurrency({ amount: 0.56, code: "NIO" });
304340
expect(result).to.eql(['C$ 0.56', '0.56', 'C$' ]);
@@ -380,6 +416,15 @@ describe("formatCurrency function test", () => {
380416
expect(result).to.eql(["1,234,567.89L", "1,234,567.89", "L"]);
381417
});
382418

419+
it("should return RSD", () => {
420+
var result = index.formatCurrency({ amount: 0.56, code: "RSD" });
421+
expect(result).to.eql(["0.56RSD", "0.56", "RSD"]);
422+
var result = index.formatCurrency({ amount: 1234.56, code: "RSD" });
423+
expect(result).to.eql(["1,234.56RSD", "1,234.56", "RSD"]);
424+
var result = index.formatCurrency({ amount: 1234567.89, code: "RSD" });
425+
expect(result).to.eql(["1,234,567.89RSD", "1,234,567.89", "RSD"]);
426+
});
427+
383428
it("should return RUB", () => {
384429
var result = index.formatCurrency({ amount: 0.56, code: "RUB" });
385430
expect(result).to.eql(["0,56 p.", "0,56", "p."]);

0 commit comments

Comments
 (0)