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

Function resolveEntityName

test/fixtures/snapshot/typescript.js:50987–51065  ·  view source on GitHub ↗

* Resolves a qualified name and any involved aliases.

(name, meaning, ignoreErrors, dontResolveAlias, location)

Source from the content-addressed store, hash-verified

50985 * Resolves a qualified name and any involved aliases.
50986 */
50987 function resolveEntityName(name, meaning, ignoreErrors, dontResolveAlias, location) {
50988 if (ts.nodeIsMissing(name)) {
50989 return undefined;
50990 }
50991 var namespaceMeaning = 1920 /* SymbolFlags.Namespace */ | (ts.isInJSFile(name) ? meaning & 111551 /* SymbolFlags.Value */ : 0);
50992 var symbol;
50993 if (name.kind === 79 /* SyntaxKind.Identifier */) {
50994 var message = meaning === namespaceMeaning || ts.nodeIsSynthesized(name) ? ts.Diagnostics.Cannot_find_namespace_0 : getCannotFindNameDiagnosticForName(ts.getFirstIdentifier(name));
50995 var symbolFromJSPrototype = ts.isInJSFile(name) && !ts.nodeIsSynthesized(name) ? resolveEntityNameFromAssignmentDeclaration(name, meaning) : undefined;
50996 symbol = getMergedSymbol(resolveName(location || name, name.escapedText, meaning, ignoreErrors || symbolFromJSPrototype ? undefined : message, name, /*isUse*/ true, false));
50997 if (!symbol) {
50998 return getMergedSymbol(symbolFromJSPrototype);
50999 }
51000 }
51001 else if (name.kind === 161 /* SyntaxKind.QualifiedName */ || name.kind === 206 /* SyntaxKind.PropertyAccessExpression */) {
51002 var left = name.kind === 161 /* SyntaxKind.QualifiedName */ ? name.left : name.expression;
51003 var right = name.kind === 161 /* SyntaxKind.QualifiedName */ ? name.right : name.name;
51004 var namespace = resolveEntityName(left, namespaceMeaning, ignoreErrors, /*dontResolveAlias*/ false, location);
51005 if (!namespace || ts.nodeIsMissing(right)) {
51006 return undefined;
51007 }
51008 else if (namespace === unknownSymbol) {
51009 return namespace;
51010 }
51011 if (namespace.valueDeclaration &&
51012 ts.isInJSFile(namespace.valueDeclaration) &&
51013 ts.isVariableDeclaration(namespace.valueDeclaration) &&
51014 namespace.valueDeclaration.initializer &&
51015 isCommonJsRequire(namespace.valueDeclaration.initializer)) {
51016 var moduleName = namespace.valueDeclaration.initializer.arguments[0];
51017 var moduleSym = resolveExternalModuleName(moduleName, moduleName);
51018 if (moduleSym) {
51019 var resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym);
51020 if (resolvedModuleSymbol) {
51021 namespace = resolvedModuleSymbol;
51022 }
51023 }
51024 }
51025 symbol = getMergedSymbol(getSymbol(getExportsOfSymbol(namespace), right.escapedText, meaning));
51026 if (!symbol) {
51027 if (!ignoreErrors) {
51028 var namespaceName = getFullyQualifiedName(namespace);
51029 var declarationName = ts.declarationNameToString(right);
51030 var suggestionForNonexistentModule = getSuggestedSymbolForNonexistentModule(right, namespace);
51031 if (suggestionForNonexistentModule) {
51032 error(right, ts.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, namespaceName, declarationName, symbolToString(suggestionForNonexistentModule));
51033 return undefined;
51034 }
51035 var containingQualifiedName = ts.isQualifiedName(name) && getContainingQualifiedNameNode(name);
51036 var canSuggestTypeof = globalObjectType // <-- can't pull on types if global types aren't initialized yet
51037 && (meaning & 788968 /* SymbolFlags.Type */)
51038 && containingQualifiedName
51039 && !ts.isTypeOfExpression(containingQualifiedName.parent)
51040 && tryGetQualifiedNameAsValue(containingQualifiedName);
51041 if (canSuggestTypeof) {
51042 error(containingQualifiedName, ts.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, ts.entityNameToString(containingQualifiedName));
51043 return undefined;
51044 }

Calls 15

getMergedSymbolFunction · 0.85
resolveNameFunction · 0.85
isCommonJsRequireFunction · 0.85
getSymbolFunction · 0.85
getExportsOfSymbolFunction · 0.85
getFullyQualifiedNameFunction · 0.85
symbolToStringFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…