From 58add1bc6f5f14261a301cc01861b799374c7a83 Mon Sep 17 00:00:00 2001 From: Nicolas Le Cam Date: Mon, 18 Aug 2025 18:52:09 +0200 Subject: [PATCH 1/2] fix(typescript-estree): match filenames starting with a period when using glob in allowDefaultProject Signed-off-by: Nicolas Le Cam --- .../src/useProgramFromProjectService.ts | 6 +++-- .../lib/useProgramFromProjectService.test.ts | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/packages/typescript-estree/src/useProgramFromProjectService.ts b/packages/typescript-estree/src/useProgramFromProjectService.ts index 9a046ee2c907..9a365029de02 100644 --- a/packages/typescript-estree/src/useProgramFromProjectService.ts +++ b/packages/typescript-estree/src/useProgramFromProjectService.ts @@ -1,4 +1,4 @@ -import type { ProjectServiceAndMetadata as ProjectServiceAndMetadata } from '@typescript-eslint/project-service'; +import type { ProjectServiceAndMetadata } from '@typescript-eslint/project-service'; import debug from 'debug'; import { minimatch } from 'minimatch'; @@ -316,5 +316,7 @@ function filePathMatchedBy( filePath: string, allowDefaultProject: string[] | undefined, ): boolean { - return !!allowDefaultProject?.some(pattern => minimatch(filePath, pattern)); + return !!allowDefaultProject?.some(pattern => + minimatch(filePath, pattern, { dot: true }), + ); } diff --git a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts index e07add99d30e..90c608a7e1e2 100644 --- a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts +++ b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts @@ -624,4 +624,31 @@ If you absolutely need more files included, set parserOptions.projectService.max )}\`) is non-standard. It should be added to your existing \`parserOptions.extraFileExtensions\`.`, ); }); + + it('matchs filenames starting with a period', () => { + const { service } = createMockProjectService(); + + const filePath = `.prettierrc.js`; + + const program = { getSourceFile: vi.fn() }; + + mockGetProgram.mockReturnValueOnce(program); + + service.openClientFile.mockReturnValueOnce({ + configFileName: 'tsconfig.json', + }); + mockCreateProjectProgram.mockReturnValueOnce(program); + + const actual = useProgramFromProjectService( + createProjectServiceSettings({ + allowDefaultProject: ['*.js'], + service, + }), + { ...mockParseSettings, filePath }, + false, + new Set(), + ); + + expect(actual).toBe(program); + }); }); From a1fb6cfbba5f22a0c1944ddbb59e9ce64d4cfb5e Mon Sep 17 00:00:00 2001 From: Nicolas Le Cam Date: Wed, 3 Sep 2025 18:55:28 +0200 Subject: [PATCH 2/2] Update packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Josh Goldberg ✨ --- .../tests/lib/useProgramFromProjectService.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts index 90c608a7e1e2..48e62e1c39b6 100644 --- a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts +++ b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts @@ -625,7 +625,7 @@ If you absolutely need more files included, set parserOptions.projectService.max ); }); - it('matchs filenames starting with a period', () => { + it('matches filenames starting with a period', () => { const { service } = createMockProjectService(); const filePath = `.prettierrc.js`;