krokus
v1.1.0
Published
Provider for localization patterns and a number and currency formatter.
Downloads
8
Maintainers
Readme
Krokus
A provider for localization patterns and a number and currency formatter and parser.
In order to have the all currency and locale patterns in one place.
ISO 4217 is a standard to format currencies.
The data is generated from CLDR33.
Installation
npm install --save-dev krokus
Use the krokus formatter
import krokus from 'krokus';
const formatPattern = {
pattern: '#,##0.00 ¤',
decimal_sep: ',',
group_sep: '.',
symbol: '€',
};
> krokus.formatCurrency(10000, formatPattern);
10.000,00 €
Use the krokus parser
import krokus from 'krokus';
const formatPattern = {
pattern: '#,##0.00 ¤',
decimal_sep: ',',
group_sep: '.',
symbol: '€',
};
> krokus.parseCurrency('10.000,00 €', formatPattern);
10000
Access the generated currency and locale settings
import krokus from 'krokus';
> krokus.locales.de_DE
{ decimal_sep: ',',
group_sep: '.',
number_pattern: '#,##0.###',
currency_pattern: '#,##0.00 ¤' }
> krokus.currencies.EUR
{ symbol: '€', wideSymbol: '€', code: 'EUR' }
Real-life example
Use the krokus calls in your functions:
import krokus from 'krokus';
export const formatNumber = (amount, locale) => {
const format = krokus.locales[locale];
format.pattern = format.number_pattern;
return krokus.formatNumber(amount, format);
};
export const formatCurrency = (amount, locale, currency) => {
if (!currency) {
return formatNumber(amount, locale);
}
const localeData = krokus.locales[locale];
const currencyData = krokus.currencies[currency.code];
return krokus.formatCurrency(amount, {
pattern: localeData.currency_pattern,
decimal_sep: localeData.decimal_sep,
group_sep: localeData.group_sep,
symbol: currencyData.wideSymbol
});
};
Run the tests if the formats are still generating the expected formatted numbers in JS
npm install
npm test
Generate the krokus number formatter from the es6 files
npm install
npm run compile
Create the up-to-date version of the json files
bundle install
rake update