Skip to content

vfssantos/deno-dynamic-import

 
 

Repository files navigation

Dynamic import ponyfill

A ponyfill for using dynamic imports in contexts without, like Deno Deploy, Deno compiled executables and older browsers (see #4).

Notes

  1. The assert option does not yet work (see #3)
  2. JSX will work if configured in deno.json or deno.jsonc
  3. import.meta will be { main: false, url: '...', resolve(specifier) { return new URL(specifier, this.url).href } }.

Example

import { importModule } from "https://deno.land/x/import/mod.ts";

if (Math.random() > 0.5) {
  await importModule("./foo.ts");
} else {
  await importModule("./bar.ts");
}

This module also exports an awesome function that evaluates code from a string.

import { importString } from "https://deno.land/x/import/mod.ts";

console.log(await importString('export const foo = "bar"'));

Options

export interface ImportModuleOptions {
  /** Use of the ponyfill when native is available */
  force?: boolean;
}

export interface ImportStringOptions {
  /** URL to use as the base for imports and exports */
  base?: URL;
}

About

Ponyfill for dynamic imports

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%