currency-formatter
Advanced tools
Comparing version 0.0.4 to 0.0.5
54
index.js
@@ -1,4 +0,4 @@ | ||
var currencies = require('./currencies'); | ||
var accounting = require('accounting'); | ||
var find = require('lodash.find'); | ||
var currencies = require('./currencies') | ||
var accounting = require('accounting') | ||
var find = require('lodash.find') | ||
@@ -14,27 +14,41 @@ exports.defaultCurrency = { | ||
exports.currencies = currencies; | ||
exports.currencies = currencies | ||
exports.format = function (value, options) { | ||
var currency = find(currencies, function(c) { return c.code === options.code; }) || exports.defaultCurrency; | ||
var currency = find(currencies, function (c) { return c.code === options.code }) || exports.defaultCurrency | ||
var symbolOnLeft = currency.symbolOnLeft; | ||
var spaceBetweenAmountAndSymbol = currency.spaceBetweenAmountAndSymbol; | ||
var symbolOnLeft = currency.symbolOnLeft | ||
var spaceBetweenAmountAndSymbol = currency.spaceBetweenAmountAndSymbol | ||
var format = ""; | ||
var format = '' | ||
if (symbolOnLeft) { | ||
format = spaceBetweenAmountAndSymbol | ||
? "%s %v" | ||
: "%s%v" | ||
? '%s %v' | ||
: '%s%v' | ||
} else { | ||
format = spaceBetweenAmountAndSymbol | ||
? "%v %s" | ||
: "%v%s" | ||
? '%v %s' | ||
: '%v%s' | ||
} | ||
return accounting.formatMoney(value, { | ||
symbol: options.symbol || currency.symbol, | ||
decimal: options.decimal || currency.decimalSeparator, | ||
thousand: options.thousand || currency.thousandsSeparator, | ||
precision: options.precision || currency.decimalDigits, | ||
format: options.format || format | ||
symbol: isUndefined(options.symbol) | ||
? currency.symbol | ||
: options.symbol, | ||
decimal: isUndefined(options.decimal) | ||
? currency.decimalSeparator | ||
: options.decimal, | ||
thousand: isUndefined(options.thousand) | ||
? currency.thousandsSeparator | ||
: options.thousand, | ||
precision: typeof options.precision === 'number' | ||
? options.precision | ||
: currency.decimalDigits, | ||
format: typeof options.format === 'string' | ||
? options.format | ||
: format | ||
}) | ||
@@ -44,3 +58,7 @@ } | ||
exports.findCurrency = function (currencyCode) { | ||
return find(currencies, function(c) { return c.code === currencyCode; }); | ||
return find(currencies, function (c) { return c.code === currencyCode }) | ||
} | ||
function isUndefined (val) { | ||
return typeof val === 'undefined' | ||
} |
{ | ||
"name": "currency-formatter", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "A simple Javascript utility that helps you to display currency properly", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
241
test.js
@@ -1,59 +0,59 @@ | ||
var chai = require('chai'); | ||
var assert = chai.assert; | ||
var currencyFormatter = require('./index'); | ||
var chai = require('chai') | ||
var assert = chai.assert | ||
var currencyFormatter = require('./index') | ||
describe("format", () => { | ||
context("Default Options", () => { | ||
context("Symbol on the left", () => { | ||
context("No Space", () => { | ||
it("Returns $10.00 for 10", () => { | ||
var result = currencyFormatter.format(10, { code: 'USD' }); | ||
assert.equal(result, '$10.00'); | ||
describe('format', () => { | ||
context('Default Options', () => { | ||
context('Symbol on the left', () => { | ||
context('No Space', () => { | ||
it('Returns $10.00 for 10', () => { | ||
var result = currencyFormatter.format(10, { code: 'USD' }) | ||
assert.equal(result, '$10.00') | ||
}) | ||
it("Returns $100.00 for 100", () => { | ||
var result = currencyFormatter.format(100, { code: 'USD' }); | ||
assert.equal(result, '$100.00'); | ||
it('Returns $100.00 for 100', () => { | ||
var result = currencyFormatter.format(100, { code: 'USD' }) | ||
assert.equal(result, '$100.00') | ||
}) | ||
it("Returns $1,000.00 for 1000", () => { | ||
var result = currencyFormatter.format(1000, { code: 'USD' }); | ||
assert.equal(result, '$1,000.00'); | ||
it('Returns $1,000.00 for 1000', () => { | ||
var result = currencyFormatter.format(1000, { code: 'USD' }) | ||
assert.equal(result, '$1,000.00') | ||
}) | ||
it("Returns $10,000.00 for 10000", () => { | ||
var result = currencyFormatter.format(10000, { code: 'USD' }); | ||
assert.equal(result, '$10,000.00'); | ||
it('Returns $10,000.00 for 10000', () => { | ||
var result = currencyFormatter.format(10000, { code: 'USD' }) | ||
assert.equal(result, '$10,000.00') | ||
}) | ||
it("Returns $1,000,000.00 for 1000000", () => { | ||
var result = currencyFormatter.format(1000000, { code: 'USD' }); | ||
assert.equal(result, '$1,000,000.00'); | ||
it('Returns $1,000,000.00 for 1000000', () => { | ||
var result = currencyFormatter.format(1000000, { code: 'USD' }) | ||
assert.equal(result, '$1,000,000.00') | ||
}) | ||
}) | ||
context("With Space", () => { | ||
it("Returns $ 10,00 for 10", () => { | ||
var result = currencyFormatter.format(10, { code: 'ARS' }); | ||
assert.equal(result, '$ 10,00'); | ||
context('With Space', () => { | ||
it('Returns $ 10,00 for 10', () => { | ||
var result = currencyFormatter.format(10, { code: 'ARS' }) | ||
assert.equal(result, '$ 10,00') | ||
}) | ||
it("Returns $ 100,00 for 100", () => { | ||
var result = currencyFormatter.format(100, { code: 'ARS' }); | ||
assert.equal(result, '$ 100,00'); | ||
it('Returns $ 100,00 for 100', () => { | ||
var result = currencyFormatter.format(100, { code: 'ARS' }) | ||
assert.equal(result, '$ 100,00') | ||
}) | ||
it("Returns $ 1.000,00 for 1000", () => { | ||
var result = currencyFormatter.format(1000, { code: 'ARS' }); | ||
assert.equal(result, '$ 1.000,00'); | ||
it('Returns $ 1.000,00 for 1000', () => { | ||
var result = currencyFormatter.format(1000, { code: 'ARS' }) | ||
assert.equal(result, '$ 1.000,00') | ||
}) | ||
it("Returns $ 10.000,00 for 10000", () => { | ||
var result = currencyFormatter.format(10000, { code: 'ARS' }); | ||
assert.equal(result, '$ 10.000,00'); | ||
it('Returns $ 10.000,00 for 10000', () => { | ||
var result = currencyFormatter.format(10000, { code: 'ARS' }) | ||
assert.equal(result, '$ 10.000,00') | ||
}) | ||
it("Returns $ 1.000.000,00 for 1000000", () => { | ||
var result = currencyFormatter.format(1000000, { code: 'ARS' }); | ||
assert.equal(result, '$ 1.000.000,00'); | ||
it('Returns $ 1.000.000,00 for 1000000', () => { | ||
var result = currencyFormatter.format(1000000, { code: 'ARS' }) | ||
assert.equal(result, '$ 1.000.000,00') | ||
}) | ||
@@ -63,54 +63,54 @@ }) | ||
context("Symbol on the right", () => { | ||
context("No Space", () => { | ||
it("Returns 10.00Nfk for 10", () => { | ||
var result = currencyFormatter.format(10, { code: 'ERN' }); | ||
assert.equal(result, '10.00Nfk'); | ||
context('Symbol on the right', () => { | ||
context('No Space', () => { | ||
it('Returns 10.00Nfk for 10', () => { | ||
var result = currencyFormatter.format(10, { code: 'ERN' }) | ||
assert.equal(result, '10.00Nfk') | ||
}) | ||
it("Returns 100.00Nfk for 100", () => { | ||
var result = currencyFormatter.format(100, { code: 'ERN' }); | ||
assert.equal(result, '100.00Nfk'); | ||
it('Returns 100.00Nfk for 100', () => { | ||
var result = currencyFormatter.format(100, { code: 'ERN' }) | ||
assert.equal(result, '100.00Nfk') | ||
}) | ||
it("Returns 1,000.00Nfk for 1000", () => { | ||
var result = currencyFormatter.format(1000, { code: 'ERN' }); | ||
assert.equal(result, '1,000.00Nfk'); | ||
it('Returns 1,000.00Nfk for 1000', () => { | ||
var result = currencyFormatter.format(1000, { code: 'ERN' }) | ||
assert.equal(result, '1,000.00Nfk') | ||
}) | ||
it("Returns 10,000.00Nfk for 10000", () => { | ||
var result = currencyFormatter.format(10000, { code: 'ERN' }); | ||
assert.equal(result, '10,000.00Nfk'); | ||
it('Returns 10,000.00Nfk for 10000', () => { | ||
var result = currencyFormatter.format(10000, { code: 'ERN' }) | ||
assert.equal(result, '10,000.00Nfk') | ||
}) | ||
it("Returns 1,000,000.00Nfk for 1000000", () => { | ||
var result = currencyFormatter.format(1000000, { code: 'ERN' }); | ||
assert.equal(result, '1,000,000.00Nfk'); | ||
it('Returns 1,000,000.00Nfk for 1000000', () => { | ||
var result = currencyFormatter.format(1000000, { code: 'ERN' }) | ||
assert.equal(result, '1,000,000.00Nfk') | ||
}) | ||
}) | ||
context("With Space", () => { | ||
it("Returns 10,00 € for 10", () => { | ||
var result = currencyFormatter.format(10, { code: 'EUR' }); | ||
assert.equal(result, '10,00 €'); | ||
context('With Space', () => { | ||
it('Returns 10,00 € for 10', () => { | ||
var result = currencyFormatter.format(10, { code: 'EUR' }) | ||
assert.equal(result, '10,00 €') | ||
}) | ||
it("Returns 100,00 € for 100", () => { | ||
var result = currencyFormatter.format(100, { code: 'EUR' }); | ||
assert.equal(result, '100,00 €'); | ||
it('Returns 100,00 € for 100', () => { | ||
var result = currencyFormatter.format(100, { code: 'EUR' }) | ||
assert.equal(result, '100,00 €') | ||
}) | ||
it("Returns 1 000,00 € for 1000", () => { | ||
var result = currencyFormatter.format(1000, { code: 'EUR' }); | ||
assert.equal(result, '1 000,00 €'); | ||
it('Returns 1 000,00 € for 1000', () => { | ||
var result = currencyFormatter.format(1000, { code: 'EUR' }) | ||
assert.equal(result, '1 000,00 €') | ||
}) | ||
it("Returns 10 000,00 € for 10000", () => { | ||
var result = currencyFormatter.format(10000, { code: 'EUR' }); | ||
assert.equal(result, '10 000,00 €'); | ||
it('Returns 10 000,00 € for 10000', () => { | ||
var result = currencyFormatter.format(10000, { code: 'EUR' }) | ||
assert.equal(result, '10 000,00 €') | ||
}) | ||
it("Returns 1 000 000,00 € for 1000000", () => { | ||
var result = currencyFormatter.format(1000000, { code: 'EUR' }); | ||
assert.equal(result, '1 000 000,00 €'); | ||
it('Returns 1 000 000,00 € for 1000000', () => { | ||
var result = currencyFormatter.format(1000000, { code: 'EUR' }) | ||
assert.equal(result, '1 000 000,00 €') | ||
}) | ||
@@ -121,4 +121,4 @@ }) | ||
context("Overriding Options", () => { | ||
it("Returns 1^000^000*000 ¯\\_(ツ)_/¯ for the given parameters", () => { | ||
context('Overriding Options', () => { | ||
it('Returns 1^000^000*000 ¯\\_(ツ)_/¯ for the given parameters', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
@@ -131,15 +131,60 @@ code: 'USD', | ||
format: '%v %s' | ||
}); | ||
}) | ||
assert.equal(result, "1^000^000*000 ¯\\_(ツ)_/¯") | ||
assert.equal(result, '1^000^000*000 ¯\\_(ツ)_/¯') | ||
}) | ||
it('Supports empty symbol', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'USD', | ||
symbol: '' | ||
}) | ||
assert.equal(result, '1,000,000.00') | ||
}) | ||
it('Supports empty decimal', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'USD', | ||
decimal: '' | ||
}) | ||
assert.equal(result, '$1,000,00000') | ||
}) | ||
it('Supports empty thousands separator', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'USD', | ||
thousand: '' | ||
}) | ||
assert.equal(result, '$1000000.00') | ||
}) | ||
it('Supports 0 precision digits', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'USD', | ||
precision: 0 | ||
}) | ||
assert.equal(result, '$1,000,000') | ||
}) | ||
it('Supports empty format', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'USD', | ||
format: '' | ||
}) | ||
assert.equal(result, '$1,000,000.00') | ||
}) | ||
}) | ||
context("When the currency is not found", () => { | ||
it("Uses default values", () => { | ||
context('When the currency is not found', () => { | ||
it('Uses default values', () => { | ||
var result = currencyFormatter.format(1000000, { | ||
code: 'None existing currency' | ||
}); | ||
}) | ||
assert.equal(result, "1,000,000.00"); | ||
assert.equal(result, '1,000,000.00') | ||
}) | ||
@@ -149,14 +194,14 @@ }) | ||
describe("currencies", () => { | ||
it("should be exposed as public via require()", () => { | ||
assert(Array.isArray(require('./currencies'))); | ||
}); | ||
describe('currencies', () => { | ||
it('should be exposed as public via require()', () => { | ||
assert(Array.isArray(require('./currencies'))) | ||
}) | ||
it("should be exposed as public via .currencies", () => { | ||
assert(Array.isArray(currencyFormatter.currencies)); | ||
}); | ||
it('should be exposed as public via .currencies', () => { | ||
assert(Array.isArray(currencyFormatter.currencies)) | ||
}) | ||
}) | ||
describe("findCurrency", () => { | ||
it("returns the expected currency for USD", () => { | ||
describe('findCurrency', () => { | ||
it('returns the expected currency for USD', () => { | ||
var expected = { | ||
@@ -170,10 +215,10 @@ code: 'USD', | ||
decimalDigits: 2 | ||
}; | ||
} | ||
var result = currencyFormatter.findCurrency("USD"); | ||
var result = currencyFormatter.findCurrency('USD') | ||
assert.deepEqual(result, expected); | ||
assert.deepEqual(result, expected) | ||
}) | ||
it("returns the expected currency for EUR", () => { | ||
it('returns the expected currency for EUR', () => { | ||
var expected = { | ||
@@ -187,13 +232,13 @@ code: 'EUR', | ||
decimalDigits: 2 | ||
}; | ||
} | ||
var result = currencyFormatter.findCurrency("EUR"); | ||
var result = currencyFormatter.findCurrency('EUR') | ||
assert.deepEqual(result, expected); | ||
assert.deepEqual(result, expected) | ||
}) | ||
it("returns undefined when it can't find the currency", () => { | ||
var result = currencyFormatter.findCurrency("NON EXISTING"); | ||
assert.isUndefined(result); | ||
it('returns undefined when it can\'t find the currency', () => { | ||
var result = currencyFormatter.findCurrency('NON EXISTING') | ||
assert.isUndefined(result) | ||
}) | ||
}) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
42692
1651
0