(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, redirectedReference)
| 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); |
no test coverage detected