An experimental babel plugin for transforming currency.js operators.
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) { ... }
With npm:
npm install --save-dev babel-plugin-transform-currency-operators
With yarn:
yarn install babel-plugin-transform-currency-operators --dev
.babelrc
{
"plugins": ["transform-currency-operators"]
}
babel --plugins transform-currency-operators
require("babel-core").transform("code", {
plugins: ["transform-currency-operators"]
});
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 });
}
{
"plugins": ["transform-currency-operators", { customCurrency: './path/to/custom/currency' }]
}