babel-plugin-transform-currency-operators
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", ['./path/to/custom/currency']]
}
License
MIT