MCPcopy Create free account
hub / github.com/nodejs/node / makeImportOrRequire

Function makeImportOrRequire

test/fixtures/snapshot/typescript.js:162254–162267  ·  view source on GitHub ↗
(defaultImport, imports, path, useEs6Imports, quotePreference)

Source from the content-addressed store, hash-verified

162252 return makeImportOrRequire(defaultImport, imports, newFileNameWithExtension, useEs6Imports, quotePreference);
162253 }
162254 function makeImportOrRequire(defaultImport, imports, path, useEs6Imports, quotePreference) {
162255 path = ts.ensurePathIsNonModuleName(path);
162256 if (useEs6Imports) {
162257 var specifiers = imports.map(function (i) { return ts.factory.createImportSpecifier(/*isTypeOnly*/ false, /*propertyName*/ undefined, ts.factory.createIdentifier(i)); });
162258 return ts.makeImportIfNecessary(defaultImport, specifiers, path, quotePreference);
162259 }
162260 else {
162261 ts.Debug.assert(!defaultImport, "No default import should exist"); // If there's a default export, it should have been an es6 module.
162262 var bindingElements = imports.map(function (i) { return ts.factory.createBindingElement(/*dotDotDotToken*/ undefined, /*propertyName*/ undefined, i); });
162263 return bindingElements.length
162264 ? makeVariableStatement(ts.factory.createObjectBindingPattern(bindingElements), /*type*/ undefined, createRequireCall(ts.factory.createStringLiteral(path)))
162265 : undefined;
162266 }
162267 }
162268 function makeVariableStatement(name, type, initializer, flags) {
162269 if (flags === void 0) { flags = 2 /* NodeFlags.Const */; }
162270 return ts.factory.createVariableStatement(/*modifiers*/ undefined, ts.factory.createVariableDeclarationList([ts.factory.createVariableDeclaration(name, /*exclamationToken*/ undefined, type, initializer)], flags));

Calls 4

makeVariableStatementFunction · 0.85
createRequireCallFunction · 0.85
assertMethod · 0.80
mapMethod · 0.65

Tested by

no test coverage detected