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