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.
npm install --save krokus
yarn add krokus
import krokus from 'krokus';
const formatPattern = {
pattern: '#,##0.00 ¤',
decimal_sep: ',',
group_sep: '.',
symbol: '€',
};
> krokus.formatCurrency(10000, formatPattern);
10.000,00 €
import krokus from 'krokus';
const formatPattern = {
pattern: '#,##0.00 ¤',
decimal_sep: ',',
group_sep: '.',
symbol: '€',
};
> krokus.parseCurrency('10.000,00 €', formatPattern);
10000
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' }
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
});
};
yarn
yarn test
yarn
yarn run compile
bundle install
rake update