babel-plugin-transform-jsbi-to-bigint

    1.4.0 • Public • Published

    babel-plugin-transform-jsbi-to-bigint Build status

    Compile JSBI code that works in today’s environments to native BigInt code.

    Example

    Input using JSBI:

    import JSBI from 'jsbi';
    
    const a = JSBI.BigInt(Number.MAX_SAFE_INTEGER);
    const b = JSBI.BigInt('42');
    
    JSBI.add(a, b);
    JSBI.subtract(a, b);
    JSBI.multiply(a, b);
    JSBI.divide(a, b);
    JSBI.remainder(a, b);
    JSBI.exponentiate(a, b);
    JSBI.leftShift(a, b);
    JSBI.signedRightShift(a, b);
    JSBI.bitwiseAnd(a, b);
    JSBI.bitwiseOr(a, b);
    JSBI.bitwiseXor(a, b);
    
    JSBI.unaryMinus(a);
    JSBI.bitwiseNot(a);
    
    JSBI.equal(a, b);
    JSBI.notEqual(a, b);
    JSBI.lessThan(a, b);
    JSBI.lessThanOrEqual(a, b);
    JSBI.greaterThan(a, b);
    JSBI.greaterThanOrEqual(a, b);
    
    JSBI.EQ(a, b);
    JSBI.NE(a, b);
    JSBI.LT(a, b);
    JSBI.LE(a, b);
    JSBI.GT(a, b);
    JSBI.GE(a, b);
    
    a.toString();
    JSBI.toNumber(a);
    a instanceof JSBI;
    
    JSBI.asIntN(64, JSBI.BigInt('42'));
    JSBI.asUintN(64, JSBI.BigInt('42'));

    Transpiled output using native BigInts:

    const a = BigInt(Number.MAX_SAFE_INTEGER);
    const b = 42n;
    
    a + b;
    a - b;
    a * b;
    a / b;
    a % b;
    a ** b;
    a << b;
    a >> b;
    a & b;
    a | b;
    a ^ b;
    
    -a;
    ~a;
    
    a === b;
    a !== b;
    a < b;
    a <= b;
    a > b;
    a >= b;
    
    a == b;
    a != b;
    a < b;
    a <= b;
    a > b;
    a >= b;
    
    a.toString();
    Number(a);
    typeof a === 'bigint';
    
    BigInt.asIntN(64, 42n);
    BigInt.asUintN(64, 42n);

    See the JSBI documentation for more information.

    Installation

    $ npm install babel-plugin-transform-jsbi-to-bigint

    Usage

    Via .babelrc (recommended)

    .babelrc

    {
      "plugins": ["transform-jsbi-to-bigint"]
    }

    Via CLI

    $ babel --plugins transform-jsbi-to-bigint script.js

    Via Node.js API

    require('@babel/core').transform(code, {
      'plugins': ['transform-jsbi-to-bigint']
    });

    For maintainers

    How to publish a new release

    1. On the main branch, bump the version number in package.json:

      npm version patch -m 'Release v%s'

      Instead of patch, use minor or major as needed.

      Note that this produces a Git commit + tag.

    2. Push the release commit and tag:

      git push

      Our CI then automatically publishes the new release to npm.

    Install

    npm i babel-plugin-transform-jsbi-to-bigint

    Homepage

    babeljs.io/

    DownloadsWeekly Downloads

    977

    Version

    1.4.0

    License

    Apache-2.0

    Unpacked Size

    22.6 kB

    Total Files

    4

    Last publish

    Collaborators

    • mathias
    • jakob.kummerow
    • google-wombot