0.1.3 • Published 8 years ago
cjs-hoist v0.1.3
cjs-hoist
Transform CommonJS module, hoisting require and exports statements to top-level.
Usage
const {parse} = require("acorn");
const {transform} = require("cjs-hoist");
const {code} = transform({
parse,
code: `
if (foo) {
const bar = require("bar");
}
`
});
/* code -> `
const _require_bar_ = require("bar");
if (foo) {
const bar = _require_bar_;
}
`API reference
This module exports following members.
transform: A function which can convert CJS module synax into ES module syntax.
transform(options?: object): TransformResult object
options has following members:
parse: function. A parser function which can parse JavaScript code into ESTree.code: string. The JavaScript source code.sourceMap?: boolean. If true then generate the source map. Default:falseignoreDynamicRequire?: boolean. If true then the dynamic require (i.e.Promise.resolve(require("..."))) is ignored. Default:true
The result object has following members:
code: string. The result JavaScript code.map?: object. The source map object generated bymagicString.generateMap.isTouched: boolean. If false then the code isn't changed.
Changelog
0.1.3 (Apr 26, 2018)
- Dependency change: drop estraverse, ecma-variable-scope; add estree-walker, rollup-pluginutils, is-reference.
0.1.2 (Apr 26, 2018)
- Fix: require-in-module.
0.1.1 (Apr 26, 2018)
- Add:
isTouchedprop.
- Add:
0.1.0 (Apr 26, 2018)
- Initial release.