esm-import-transformer

3.0.2 • Public • Published

esm-import-transformer

Can transform any ESM source code import URLs using an import maps object. This package works in ESM or CJS.

// Input source code:
import {html, css, LitElement} from "lit";

// Transform with an import map:
import {html, css, LitElement} from "https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js";

// Or transform to a dynamic import:
const {html, css, LitElement} = await import("lit");

// Or transform to CommonJS require:
const {html, css, LitElement} = require("lit");

Usage

// ESM
import { ImportTransformer } from "esm-import-transformer";

// or CJS
const { ImportTransformer } = await import("esm-import-transformer");

Transform with an import map

Pass in a source code string and an import maps object.

let sourceCode = `import {html, css, LitElement} from "lit";`;
let it = new ImportTransformer(sourceCode);

let importMap = {
  imports: {
    lit: "https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js"
  }
};
let outputCode = it.transformWithImportMap(importMap);
// returns: `import {html, css, LitElement} from "https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js";`

Transform to dynamic import()

let sourceCode = `import {html, css, LitElement} from "lit";`;
let it = new ImportTransformer(sourceCode);

let outputCode = it.transformToDynamicImport();
// returns: `const {html, css, LitElement} = await import("lit");`

Transform to require()

Added in v3.0.1: This method does not require that the downstream package is CommonJS, but just know that code will fail if you try to run it on a package that is not CommonJS.

let sourceCode = `import {html, css, LitElement} from "lit";`;
let it = new ImportTransformer(sourceCode);

let outputCode = it.transformToRequire();
// returns: `const {html, css, LitElement} = require("lit");`

Has imports?

Added in v3.0.2 Returns true if the code has any top level import.

let sourceCode = `import {html, css, LitElement} from "lit";`;
let it = new ImportTransformer(sourceCode);
it.hasImports(); // true
let sourceCode = `const {html, css, LitElement} = require("lit");`;
let it = new ImportTransformer(sourceCode);
it.hasImports(); // false

Installation

Available on npm

npm install esm-import-transformer

Readme

Keywords

none

Package Sidebar

Install

npm i esm-import-transformer

Weekly Downloads

2,717

Version

3.0.2

License

MIT

Unpacked Size

13.6 kB

Total Files

6

Last publish

Collaborators

  • zachleat