• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import module from 'module';
2
3export function getFormat(url, context, defaultGetFormat) {
4  if (module.builtinModules.includes(url)) {
5    return {
6      format: 'dynamic'
7    };
8  }
9  return defaultGetFormat(url, context, defaultGetFormat);
10}
11
12export function dynamicInstantiate(url) {
13  const builtinInstance = module._load(url);
14  const builtinExports = ['default', ...Object.keys(builtinInstance)];
15  return {
16    exports: builtinExports,
17    execute: exports => {
18      for (let name of builtinExports)
19        exports[name].set(builtinInstance[name]);
20      exports.default.set(builtinInstance);
21    }
22  };
23}
24