Skip to content

💱 Currency Symbol placements for usage with currency.js

License

Notifications You must be signed in to change notification settings

BRIXTOL/currency-symbol-placements

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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