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

Function getTargetOfImportClause

test/fixtures/snapshot/typescript.js:50484–50521  ·  view source on GitHub ↗
(node, dontResolveAlias)

Source from the content-addressed store, hash-verified

50482 return typeof file.externalModuleIndicator !== "object" && !resolveExportByName(moduleSymbol, ts.escapeLeadingUnderscores("__esModule"), /*sourceNode*/ undefined, dontResolveAlias);
50483 }
50484 function getTargetOfImportClause(node, dontResolveAlias) {
50485 var _a;
50486 var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);
50487 if (moduleSymbol) {
50488 var exportDefaultSymbol = void 0;
50489 if (ts.isShorthandAmbientModuleSymbol(moduleSymbol)) {
50490 exportDefaultSymbol = moduleSymbol;
50491 }
50492 else {
50493 exportDefaultSymbol = resolveExportByName(moduleSymbol, "default" /* InternalSymbolName.Default */, node, dontResolveAlias);
50494 }
50495 var file = (_a = moduleSymbol.declarations) === null || _a === void 0 ? void 0 : _a.find(ts.isSourceFile);
50496 var hasDefaultOnly = isOnlyImportedAsDefault(node.parent.moduleSpecifier);
50497 var hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, node.parent.moduleSpecifier);
50498 if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {
50499 if (hasExportAssignmentSymbol(moduleSymbol)) {
50500 var compilerOptionName = moduleKind >= ts.ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop";
50501 var exportEqualsSymbol = moduleSymbol.exports.get("export=" /* InternalSymbolName.ExportEquals */);
50502 var exportAssignment = exportEqualsSymbol.valueDeclaration;
50503 var err = error(node.name, ts.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);
50504 if (exportAssignment) {
50505 ts.addRelatedInfo(err, ts.createDiagnosticForNode(exportAssignment, ts.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag, compilerOptionName));
50506 }
50507 }
50508 else {
50509 reportNonDefaultExport(moduleSymbol, node);
50510 }
50511 }
50512 else if (hasSyntheticDefault || hasDefaultOnly) {
50513 // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present
50514 var resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);
50515 markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false);
50516 return resolved;
50517 }
50518 markSymbolOfAliasDeclarationIfTypeOnly(node, exportDefaultSymbol, /*finalTarget*/ undefined, /*overwriteTypeOnly*/ false);
50519 return exportDefaultSymbol;
50520 }
50521 }
50522 function reportNonDefaultExport(moduleSymbol, node) {
50523 var _a, _b, _c;
50524 if ((_a = moduleSymbol.exports) === null || _a === void 0 ? void 0 : _a.has(node.symbol.escapedName)) {

Callers 1

Calls 13

resolveExportByNameFunction · 0.85
isOnlyImportedAsDefaultFunction · 0.85
canHaveSyntheticDefaultFunction · 0.85
symbolToStringFunction · 0.85
reportNonDefaultExportFunction · 0.85
resolveSymbolFunction · 0.85
errorFunction · 0.70
findMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…