# babel-plugin-transform-jsbi-to-bigint

1.4.0 • Public • Published

# babel-plugin-transform-jsbi-to-bigint

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.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);

## 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.

babeljs.io/

4,344

1.4.0

Apache-2.0

22.6 kB

4