MCPcopy Index your code
hub / github.com/nodejs/node / toDynamicImport

Function toDynamicImport

lib/repl.js:251–270  ·  view source on GitHub ↗
(codeLine)

Source from the content-addressed store, hash-verified

249
250// Converts static import statement to dynamic import statement
251const toDynamicImport = (codeLine) => {
252 let dynamicImportStatement = '';
253 const ast = acornParse(codeLine, { __proto__: null, sourceType: 'module', ecmaVersion: 'latest' });
254 acornWalk.ancestor(ast, {
255 ImportDeclaration(node) {
256 const awaitDynamicImport = `await import(${JSONStringify(node.source.value)});`;
257 if (node.specifiers.length === 0) {
258 dynamicImportStatement += awaitDynamicImport;
259 } else if (node.specifiers.length === 1 && node.specifiers[0].type === 'ImportNamespaceSpecifier') {
260 dynamicImportStatement += `const ${node.specifiers[0].local.name} = ${awaitDynamicImport}`;
261 } else {
262 const importNames = ArrayPrototypeJoin(ArrayPrototypeMap(node.specifiers, ({ local, imported }) =>
263 (local.name === imported?.name ? local.name : `${imported?.name ?? 'default'}: ${local.name}`),
264 ), ', ');
265 dynamicImportStatement += `const { ${importNames} } = ${awaitDynamicImport}`;
266 }
267 },
268 });
269 return dynamicImportStatement;
270};
271
272class Recoverable extends SyntaxError {
273 constructor(err) {

Callers 1

_handleErrorMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…