Skip to content

An experimental babel plugin for transforming currency.js operators

License

Notifications You must be signed in to change notification settings

scurker/babel-plugin-transform-currency-operators

Repository files navigation

babel-plugin-transform-currency-operators Build Status Coverage Status npm

An experimental babel plugin for transforming currency.js operators.

Example

In

import currency from 'currency.js';

var currency1 = currency(1.23);
var currency2 = currency1 + 4.56;
var currency3 = currency2 - 4.56;
var currency4 = currency3 * 2;
var currency5 = currency4 / 4;
var currency6 = currency1 + currency2;

var MultiDecimal = value => currency(value, { decimals: 3 });
var currency7 = MultiDecimal(1.234) + 5.678;

if(currency1 < currency2) { ... }
if(currency1 > currency2) { ... }
if(currency1 === 1.23) { ... }

Out

import currency from 'currency.js';

var currency1 = currency(1.23);
var currency2 = currency1.add(4.56);
var currency3 = currency2.subtract(4.56);
var currency4 = currency3.multiply(2);
var currency5 = currency4.divide(4);
var currency6 = currency1.add(currency2);

var MultiDecimal = value => currency(value, { decimals: 3 });
var currency7 = MultiDecimal(1.234).add(5.678);

if(currency1.value < currency2.value) { ... }
if(currency1.value > currency2.value) { ... }
if(currency1.value === 1.23) { ... }

Installation

With npm:

npm install --save-dev babel-plugin-transform-currency-operators

With yarn:

yarn install babel-plugin-transform-currency-operators --dev

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["transform-currency-operators"]
}

Via CLI

babel --plugins transform-currency-operators

Via Node API

require("babel-core").transform("code", {
  plugins: ["transform-currency-operators"]
});

Advanced Usage

If you have a need to customize and export currency settings as a module, you can include the path to your currency (relative from the root of your project) in your .babelrc plugin configuration to transform those imported module's operator along with any currency.js imports:

File in your project: path/to/custom/currency.js

import currency from 'currency.js';

export default function myCustomCurrencyDefaults(value) {
  return currency(value, { symbol: '€', ...otherOptions });
}

.babelrc

{
  "plugins": ["transform-currency-operators", { customCurrency: './path/to/custom/currency' }]
}

License

MIT

About

An experimental babel plugin for transforming currency.js operators

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published