Home > Mobile >  rewrite require to import statement
rewrite require to import statement

Time:05-02

I am trying to use https://www.npmjs.com/package/json-bigint with native BigInt support. In CommonJS I'd do:

var JSONbigNative = require('json-bigint')({ useNativeBigInt: true });

What is the ES6 syntax equivalent? This is not working:

import  * as JSONBigIntWrapper from 'json-bigint';
const JSONBigInt = JSONBigIntWrapper({useNativeBigInt: true});

as it complains that JSONBigIntWrapper is not a function.

What are the generic rules for rewriting rewrite to import?

CodePudding user response:

With ES6 imports, importing * is not the equivalent of what require() does.

What you are looking to get is the default module export, as shown in the code below

import whatever_you_want_the_default_to_be_named, {} from 'json-bigint'

CodePudding user response:

You can rely on using the default keyword when importing the default export from a module.

import {default as _JBI} from 'json-bigint';
const JSONBigNative = _JBI({useNativeBigInt: true});

This is also the only syntax which works when using dynamic import syntax:

const {default: _JBI} = await import('json-bigint');
const JSONbigNative = _JBI({useNativeBigInt: true});
  • Related