From 370fb95b215ee9c092950cb17efa7a2858e57598 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 20 May 2025 13:46:32 -0700 Subject: [PATCH] Look for source of dts file only if dts is not from node_modules unless we have project references in node_modules --- src/compiler/program.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 48d8d07f1641e..932d8a80e88bb 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1717,6 +1717,7 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro let projectReferenceRedirects: Map | undefined; let mapFromFileToProjectReferenceRedirects: Map | undefined; let mapFromToProjectReferenceRedirectSource: Map | undefined; + let hasResolvedReferencencesInNodeModules = false; const useSourceOfProjectReferenceRedirect = !!host.useSourceOfProjectReferenceRedirect?.() && !options.disableSourceOfProjectReferenceRedirect; @@ -3823,6 +3824,7 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro function getSourceOfProjectReferenceRedirect(path: Path) { if (!isDeclarationFileName(path)) return undefined; + if (!hasResolvedReferencencesInNodeModules && pathContainsNodeModules(path)) return undefined; if (mapFromToProjectReferenceRedirectSource === undefined) { mapFromToProjectReferenceRedirectSource = new Map(); forEachResolvedProjectReference(resolvedRef => { @@ -4140,6 +4142,9 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro sourceFile.path = sourceFilePath; sourceFile.resolvedPath = sourceFilePath; sourceFile.originalFileName = refPath; + if (!hasResolvedReferencencesInNodeModules && (pathContainsNodeModules(sourceFile.resolvedPath) || pathContainsNodeModules(sourceFile.path))) { + hasResolvedReferencencesInNodeModules = true; + } const resolvedRef: ResolvedProjectReference = { commandLine, sourceFile }; projectReferenceRedirects.set(sourceFilePath, resolvedRef);