/currency-symbol-placements

💱 Currency Symbol placements for usage with currency.js

Primary LanguageTypeScriptMIT LicenseMIT

@brixtol/currency-placements

Currency Symbol placements for currency.js. Mappings use (ISO 4217) 3 letter currency codes and return the format pattern (!#) used by currency.js where ! is the currency symbol and # the amount.

This package is used by the Brixtol Textiles internal API when dealing with currency conversion and presentation locales pertaining to i18n logics and has been open sourced from our pnpm monorepo workspace.

Why?

We found the the vast majority of U.S commerce SaaS services were constantly getting currency symbol placements wrong. We use currency.js to convert currencies in our mithril.js applications and this package provides us with a wrapper for getting placements correct.

Install

pnpm

pnpm i @brixtol/currency-symbol-placements

npm

npm install @brixtol/currency-symbol-placements

Yarn

yarn add @brixtol/currency-symbol-placements

Usage

Pass in a currency code that is lowercase, uppercase or a mixture of both and the pattern replacement string is returned.

import currency from 'currency.js';
import { getPlacement } from '@brixtol/currency-symbols-placements';

// Currency code SEK (Swedish Krona) - Kr
const SEK = getPlacement('SEK'); // # !

// Currency code EUR (Euros) - €
const EUR = getPlacement('eur'); // !#

// Using with currency.js
currency('510.00', {
  separator: '.',
  decimal: ',',
  fromCents: true,
  pattern: SEK // returning "# !" > "510.00 kr"
}).format();

// ....

Related

Static GeoIP utility

Locale related mappings helpers:

Country code to currency code mappings:

Contributing

Contributions are welcome! Currency symbol placements are a real mixed bag and generally do not adhere to official specifications so-to-speak. If the mapping placements are not accurate, please submit a PR with some foundations.

License

Licensed under MIT


We ♡ open source!