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

Function transformImportDeclaration

test/fixtures/snapshot/typescript.js:108652–108683  ·  view source on GitHub ↗
(decl)

Source from the content-addressed store, hash-verified

108650 }
108651 }
108652 function transformImportDeclaration(decl) {
108653 if (!decl.importClause) {
108654 // import "mod" - possibly needed for side effects? (global interface patches, module augmentations, etc)
108655 return factory.updateImportDeclaration(decl,
108656 /*decorators*/ undefined, decl.modifiers, decl.importClause, rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause));
108657 }
108658 // The `importClause` visibility corresponds to the default's visibility.
108659 var visibleDefaultBinding = decl.importClause && decl.importClause.name && resolver.isDeclarationVisible(decl.importClause) ? decl.importClause.name : undefined;
108660 if (!decl.importClause.namedBindings) {
108661 // No named bindings (either namespace or list), meaning the import is just default or should be elided
108662 return visibleDefaultBinding && factory.updateImportDeclaration(decl, /*decorators*/ undefined, decl.modifiers, factory.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding,
108663 /*namedBindings*/ undefined), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause));
108664 }
108665 if (decl.importClause.namedBindings.kind === 268 /* SyntaxKind.NamespaceImport */) {
108666 // Namespace import (optionally with visible default)
108667 var namedBindings = resolver.isDeclarationVisible(decl.importClause.namedBindings) ? decl.importClause.namedBindings : /*namedBindings*/ undefined;
108668 return visibleDefaultBinding || namedBindings ? factory.updateImportDeclaration(decl, /*decorators*/ undefined, decl.modifiers, factory.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding, namedBindings), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause)) : undefined;
108669 }
108670 // Named imports (optionally with visible default)
108671 var bindingList = ts.mapDefined(decl.importClause.namedBindings.elements, function (b) { return resolver.isDeclarationVisible(b) ? b : undefined; });
108672 if ((bindingList && bindingList.length) || visibleDefaultBinding) {
108673 return factory.updateImportDeclaration(decl,
108674 /*decorators*/ undefined, decl.modifiers, factory.updateImportClause(decl.importClause, decl.importClause.isTypeOnly, visibleDefaultBinding, bindingList && bindingList.length ? factory.updateNamedImports(decl.importClause.namedBindings, bindingList) : undefined), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause));
108675 }
108676 // Augmentation of export depends on import
108677 if (resolver.isImportRequiredByAugmentation(decl)) {
108678 return factory.updateImportDeclaration(decl,
108679 /*decorators*/ undefined, decl.modifiers,
108680 /*importClause*/ undefined, rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClauseInNightly(decl.assertClause));
108681 }
108682 // Nothing visible
108683 }
108684 function getResolutionModeOverrideForClauseInNightly(assertClause) {
108685 var mode = ts.getResolutionModeOverrideForClause(assertClause);
108686 if (mode !== undefined) {

Callers 1

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…