Transform ES module into a simple IIFE.
npm install es-iifees-iife
=======



Transform ES module into a simple IIFE.
Features
--------
* import statements are resolved to global variables.
* export statements are exported as a global variable.
There are more samples under test/cases folder.
Usage
-----
``js
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;
})();
*/
transform
API reference
-------------
This module exports following members.
* : A function which can convert ES module synax into an IIFE.
`
$3
js
`
transform({
code: String,
parse?: Function,
ast?: Object,
sourcemap?: Boolean = false,
strict?: Boolean = false,
resolveGlobal?: (importPath: String) => globalVariableName: String,
name?: String
}) => {code: String, map?: SourceMap}
code
Arguments:
* - 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 use parse(code).
sourcemap
* - if true then generate the sourcemap.
strict
* - add use 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.
code
Returns:
* - the code after transformed.
map
* - The source map object generated by magicString.generateMap. If sourcemap is false then the map is null.
strict
Changelog
---------
* 0.2.2 (Feb 18, 2021)
- Add: option.
var`.
* 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
* 0.1.1 (Aug 28, 2018)
- Fix: export from statements.
* 0.1.0 (Aug 28, 2018)
- Initial release.