Transform ES module into a simple IIFE.
import
statements are resolved to global variables.export
statements are exported as a global variable.
There are more samples under test/cases
folder.
const {parse} = require("acorn");
const {transform} = require("es-iife");
const code = `
import foo from "./foo.js";
const main = (value) => return foo(value);
export default main;
`;
const result = transform({
code,
parse,
name: "doFoo",
resolveGlobal: (name) => {
if (name === "./foo.js") {
return "FOO";
}
}
})
console.log(result.code);
/* ->
var doFoo = (function () {
const main = (value) => return FOO(value);
return main;
})();
*/
This module exports following members.
transform
: A function which can convert ES module synax into an IIFE.
transform({
code: String,
parse?: Function,
ast?: Object,
sourcemap?: Boolean = false,
strict?: Boolean = false,
resolveGlobal?: (importPath: String) => globalVariableName: String,
name?: String
}) => {code: String, map?: SourceMap}
Arguments:
code
- the JavaScript source code that would be transformed.parse
- a parser function which can parse JavaScript code into ESTree.ast
- AST object. If undefined then useparse(code)
.sourcemap
- if true then generate the sourcemap.strict
- adduse strict
directive.resolveGlobal
- a function receiving an import path and return a global variable name.name
- The variable name that exports will be assigned to.
Returns:
code
- the code after transformed.map
- The source map object generated bymagicString.generateMap
. Ifsourcemap
is false then the map is null.
-
0.2.2 (Feb 18, 2021)
- Add:
strict
option.
- Add:
-
0.2.1 (Oct 29, 2020)
- Fix: object shorthand issue.
- Bump dependencies. Fix for-loop issue.
-
0.2.0 (Aug 14, 2019)
- Change: define default export with
var
.
- Change: define default export with
-
0.1.1 (Aug 28, 2018)
- Fix: export from statements.
-
0.1.0 (Aug 28, 2018)
- Initial release.