A collection for localization patterns
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-dev 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
  });
};
npm install
npm test
npm install
npm run compile
bundle install
rake update