From bb302d2a02f3f848323da421bbedd460937d6a8d Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Tue, 14 Nov 2023 11:09:32 -0800 Subject: [PATCH] Do additional noDtsResolution after all external .d.ts resolutions --- src/compiler/moduleNameResolver.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index 9dfb79bda1e..bc46ffb0260 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -1804,6 +1804,7 @@ function nodeModuleNameResolverWorker( const failedLookupLocations: string[] = []; const affectingLocations: string[] = []; const moduleResolution = getEmitModuleResolutionKind(compilerOptions); + const originalConditions = conditions; conditions ??= getConditions( compilerOptions, moduleResolution === ModuleResolutionKind.Bundler || moduleResolution === ModuleResolutionKind.Node10 @@ -1866,6 +1867,20 @@ function nodeModuleNameResolverWorker( } } + if (!compilerOptions.noDtsResolution && result?.value?.isExternalLibraryImport && result.value.resolved.extension === Extension.Dts) { + resolveModuleName( + moduleName, + combinePaths(containingDirectory, "__noDtsResolution__.ts"), + { ...compilerOptions, noDtsResolution: true }, + host, + cache, + redirectedReference, + originalConditions + ? (features & NodeResolutionFeatures.EsmMode ? ModuleKind.ESNext : ModuleKind.CommonJS) + : undefined, + ); + } + return createResolvedModuleWithFailedLookupLocationsHandlingSymlink( moduleName, result?.value?.resolved,