@yukinotech/babel-plugin-transform-jsbd-to-bigdecimal

0.0.2 • Public • Published

babel-plugin-transform-jsbd-to-bigdecimal

A scheme similar to JSBI, for transforming JSBD to native bigdecimal, Referring to the implementation of jsbi (https://github.com/GoogleChromeLabs/babel-plugin-transform-jsbi-to-bigint)

how to use

use as a babel plugin @yukinotech/babel-plugin-transform-jsbd-to-bigdecimal

const result = require('@babel/core').transform(code, {
  plugins: ['@yukinotech/babel-plugin-transform-jsbd-to-bigdecimal'],
  comments: false,
})

how it work

it will replace indetitor JSBD to native bigdecimal syntax

Operation native BigDecimals JSBD
Addition c = a + b c = JSBD.add(a, b)
Subtraction c = a - b c = JSBD.subtract(a, b)
Multiplication c = a * b c = JSBD.multiply(a, b)
Division with two arguments c = a / b c = JSBD.divide(a, b)
Remainder c = a % b c = JSBD.remainder(a, b)
Exponentiation c = a ** b c = JSBD.pow(a, b)
Comparison to other BigInts a === b JSBD.equal(a, b)
a !== b JSBD.notEqual(a, b)
a < b JSBD.lessThan(a, b)
a <= b JSBD.lessThanOrEqual(a, b)
a > b JSBD.greaterThan(a, b)
a >= b JSBD.greaterThanOrEqual(a, b)
c = BigDecimal.round(a,option) c = JSBD.round(a, option)
Division with three arguments c = BigDecimal.divide(a,b,roundOption) c = JSBD.divide(a, b,roundOption)

differences from bigint to bigdecimal

since bigdecimal has a roundOption, we can't just transform JSBI.add(one,two) to one + two,if there are three arguments we just transform JSBD.add(one,two,option) to Decimal.add(one,two,option)

Package Sidebar

Install

npm i @yukinotech/babel-plugin-transform-jsbd-to-bigdecimal

Weekly Downloads

1

Version

0.0.2

License

none

Unpacked Size

17.3 kB

Total Files

4

Last publish

Collaborators

  • yukinotech