From 3b2040a16f1ecf7c1547c2eb6b9263b08e9acd0e Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 10 Feb 2024 11:12:43 -0500 Subject: [PATCH 1/3] feat(typescript-estree): add debug logs for useProgramFromProjectService --- .../src/useProgramFromProjectService.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/typescript-estree/src/useProgramFromProjectService.ts b/packages/typescript-estree/src/useProgramFromProjectService.ts index d49acd55e095..cef828cba773 100644 --- a/packages/typescript-estree/src/useProgramFromProjectService.ts +++ b/packages/typescript-estree/src/useProgramFromProjectService.ts @@ -1,3 +1,4 @@ +import debug from 'debug'; import { minimatch } from 'minimatch'; import { createProjectProgram } from './create-program/createProjectProgram'; @@ -9,12 +10,17 @@ import { } from './create-program/shared'; import type { MutableParseSettings } from './parseSettings'; +const log = debug( + 'typescript-eslint:typescript-estree:useProgramFromProjectService', +); + export function useProgramFromProjectService( { allowDefaultProjectForFiles, service }: ProjectServiceSettings, parseSettings: Readonly, hasFullTypeInformation: boolean, ): ASTAndDefiniteProgram | undefined { const filePath = getCanonicalFileName(parseSettings.filePath); + log('Opening project service file for: %s', filePath); const opened = service.openClientFile( ensureAbsolutePath(filePath, service.host.getCurrentDirectory()), @@ -23,6 +29,8 @@ export function useProgramFromProjectService( parseSettings.tsconfigRootDir, ); + log('Opened project service file: %o', opened); + if (hasFullTypeInformation) { if (opened.configFileName) { if (filePathMatchedBy(filePath, allowDefaultProjectForFiles)) { @@ -44,9 +52,12 @@ export function useProgramFromProjectService( .getProgram(); if (!program) { + log('Could not find project service program for: %s', filePath); return undefined; } + log('Found project service program for: %s', filePath); + return createProjectProgram(parseSettings, [program]); } From f1d5d45e79367babdc8455437b14a499edde221c Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 12 Feb 2024 12:35:53 -0500 Subject: [PATCH 2/3] Added a bit more around filePathMatchedBy --- .../typescript-estree/src/useProgramFromProjectService.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/typescript-estree/src/useProgramFromProjectService.ts b/packages/typescript-estree/src/useProgramFromProjectService.ts index cef828cba773..9b5788208707 100644 --- a/packages/typescript-estree/src/useProgramFromProjectService.ts +++ b/packages/typescript-estree/src/useProgramFromProjectService.ts @@ -32,6 +32,11 @@ export function useProgramFromProjectService( log('Opened project service file: %o', opened); if (hasFullTypeInformation) { + log( + 'Project service type information enabled; checking for file path match on: %o', + allowDefaultProjectForFiles, + ); + if (opened.configFileName) { if (filePathMatchedBy(filePath, allowDefaultProjectForFiles)) { throw new Error( @@ -45,6 +50,8 @@ export function useProgramFromProjectService( } } + log('Retrieving scripti nfo and then program for: %s', filePath); + const scriptInfo = service.getScriptInfo(filePath); const program = service .getDefaultProjectForFile(scriptInfo!.fileName, true)! From 9927577567904feb1841be3a4ed2a23d6164db38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?= Date: Tue, 20 Feb 2024 12:55:20 -0500 Subject: [PATCH 3/3] Update packages/typescript-estree/src/useProgramFromProjectService.ts --- packages/typescript-estree/src/useProgramFromProjectService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/typescript-estree/src/useProgramFromProjectService.ts b/packages/typescript-estree/src/useProgramFromProjectService.ts index 9b5788208707..a05acf3aa67e 100644 --- a/packages/typescript-estree/src/useProgramFromProjectService.ts +++ b/packages/typescript-estree/src/useProgramFromProjectService.ts @@ -50,7 +50,7 @@ export function useProgramFromProjectService( } } - log('Retrieving scripti nfo and then program for: %s', filePath); + log('Retrieving script info and then program for: %s', filePath); const scriptInfo = service.getScriptInfo(filePath); const program = service