/es-iife

Transform ES module into a simple IIFE

Primary LanguageJavaScriptMIT LicenseMIT

es-iife

Build Status codecov install size

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

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;
})();
*/

API reference

This module exports following members.

  • transform: A function which can convert ES module synax into an IIFE.

transform

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

Returns:

  • code - the code after transformed.
  • map - The source map object generated by magicString.generateMap. If sourcemap is false then the map is null.

Changelog

  • 0.2.2 (Feb 18, 2021)

    • Add: strict option.
  • 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.
  • 0.1.1 (Aug 28, 2018)

    • Fix: export from statements.
  • 0.1.0 (Aug 28, 2018)

    • Initial release.