Socket
Socket
Sign inDemoInstall

currency-formatter

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

currency-formatter - npm Package Compare versions

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",

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc