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

Function nodeModuleNameResolverWorker

test/fixtures/snapshot/typescript.js:43350–43412  ·  view source on GitHub ↗
(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, redirectedReference)

Source from the content-addressed store, hash-verified

43348 }
43349 ts.nodeModuleNameResolver = nodeModuleNameResolver;
43350 function nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, redirectedReference) {
43351 var _a, _b;
43352 var traceEnabled = isTraceEnabled(compilerOptions, host);
43353 var failedLookupLocations = [];
43354 // conditions are only used by the node16/nodenext resolver - there's no priority order in the list,
43355 //it's essentially a set (priority is determined by object insertion order in the object we look at).
43356 var conditions = features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"];
43357 if (compilerOptions.noDtsResolution) {
43358 conditions.pop();
43359 }
43360 var diagnostics = [];
43361 var state = {
43362 compilerOptions: compilerOptions,
43363 host: host,
43364 traceEnabled: traceEnabled,
43365 failedLookupLocations: failedLookupLocations,
43366 packageJsonInfoCache: cache,
43367 features: features,
43368 conditions: conditions,
43369 requestContainingDirectory: containingDirectory,
43370 reportDiagnostic: function (diag) { return void diagnostics.push(diag); },
43371 };
43372 var result = ts.forEach(extensions, function (ext) { return tryResolve(ext); });
43373 return createResolvedModuleWithFailedLookupLocations((_a = result === null || result === void 0 ? void 0 : result.value) === null || _a === void 0 ? void 0 : _a.resolved, (_b = result === null || result === void 0 ? void 0 : result.value) === null || _b === void 0 ? void 0 : _b.isExternalLibraryImport, failedLookupLocations, diagnostics, state.resultFromCache);
43374 function tryResolve(extensions) {
43375 var loader = function (extensions, candidate, onlyRecordFailures, state) { return nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ true); };
43376 var resolved = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loader, state);
43377 if (resolved) {
43378 return toSearchResult({ resolved: resolved, isExternalLibraryImport: pathContainsNodeModules(resolved.path) });
43379 }
43380 if (!ts.isExternalModuleNameRelative(moduleName)) {
43381 var resolved_1;
43382 if (features & NodeResolutionFeatures.Imports && ts.startsWith(moduleName, "#")) {
43383 resolved_1 = loadModuleFromImports(extensions, moduleName, containingDirectory, state, cache, redirectedReference);
43384 }
43385 if (!resolved_1 && features & NodeResolutionFeatures.SelfName) {
43386 resolved_1 = loadModuleFromSelfNameReference(extensions, moduleName, containingDirectory, state, cache, redirectedReference);
43387 }
43388 if (!resolved_1) {
43389 if (traceEnabled) {
43390 trace(host, ts.Diagnostics.Loading_module_0_from_node_modules_folder_target_file_type_1, moduleName, Extensions[extensions]);
43391 }
43392 resolved_1 = loadModuleFromNearestNodeModulesDirectory(extensions, moduleName, containingDirectory, state, cache, redirectedReference);
43393 }
43394 if (!resolved_1)
43395 return undefined;
43396 var resolvedValue = resolved_1.value;
43397 if (!compilerOptions.preserveSymlinks && resolvedValue && !resolvedValue.originalPath) {
43398 var path = realPath(resolvedValue.path, host, traceEnabled);
43399 var originalPath = arePathsEqual(path, resolvedValue.path, host) ? undefined : resolvedValue.path;
43400 resolvedValue = __assign(__assign({}, resolvedValue), { path: path, originalPath: originalPath });
43401 }
43402 // For node_modules lookups, get the real path so that multiple accesses to an `npm link`-ed module do not create duplicate files.
43403 return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } };
43404 }
43405 else {
43406 var _a = normalizePathForCJSResolution(containingDirectory, moduleName), candidate = _a.path, parts = _a.parts;
43407 var resolved_2 = nodeLoadModuleByRelativeName(extensions, candidate, /*onlyRecordFailures*/ false, state, /*considerPackageJson*/ true);

Calls 6

isTraceEnabledFunction · 0.85
tryResolveFunction · 0.85
popMethod · 0.80
forEachMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected