From 839fcc484d4ae2ee728aac8a31af160938122e77 Mon Sep 17 00:00:00 2001 From: liurenfeng94-ops <279598012+liurenfeng94-ops@users.noreply.github.com> Date: Tue, 28 Jul 2026 23:17:49 +0800 Subject: [PATCH] Include mts and cts files in realtime metrics --- src/index.ts | 8 +------- src/testFiles.ts | 9 +++++++++ test/test-files.test.ts | 27 +++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 src/testFiles.ts create mode 100644 test/test-files.test.ts diff --git a/src/index.ts b/src/index.ts index ced41cc..8dce36c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,6 +15,7 @@ import { initDiagnostics } from './traceDiagnostics' import { initWebviewPanel } from './webview' import { initStatusBar } from './statusBar' import { initAppState } from './appState' +import { getTestFileNames } from './testFiles' let ts: typeof import('typescript') let tsPath: string @@ -67,13 +68,6 @@ export function deactivate() {} // Large portions of the following code have been taken from // https://github.com/microsoft/DefinitelyTyped-tools/blob/41ba894ba571e55fa91ef0bb0d44d6eb6d201943/packages/perf -function getTestFileNames(fileNames: readonly string[]) { - return fileNames.filter((name) => { - const ext = path.extname(name) - return (ext === ts.Extension.Ts || ext === ts.Extension.Tsx) && !name.endsWith(ts.Extension.Dts) - }) -} - function getIdentifiers(sourceFile: SourceFile) { const { allIdentifiers } = getCurrentConfig() const identifiers: Node[] = [] diff --git a/src/testFiles.ts b/src/testFiles.ts new file mode 100644 index 0000000..dad3469 --- /dev/null +++ b/src/testFiles.ts @@ -0,0 +1,9 @@ +const testFileExtensions = ['.ts', '.tsx', '.mts', '.cts'] as const +const declarationFilePattern = /\.d\.(?:cts|mts|ts)$/i + +export function getTestFileNames(fileNames: readonly string[]) { + return fileNames.filter(name => + testFileExtensions.some(ext => name.endsWith(ext)) + && !declarationFilePattern.test(name), + ) +} diff --git a/test/test-files.test.ts b/test/test-files.test.ts new file mode 100644 index 0000000..b5a9255 --- /dev/null +++ b/test/test-files.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest' +import { getTestFileNames } from '../src/testFiles' + +describe('getTestFileNames', () => { + it('includes TypeScript source module extensions', () => { + expect(getTestFileNames([ + 'src/a.ts', + 'src/b.tsx', + 'src/c.mts', + 'src/d.cts', + ])).toEqual([ + 'src/a.ts', + 'src/b.tsx', + 'src/c.mts', + 'src/d.cts', + ]) + }) + + it('excludes declaration files and non-TypeScript files', () => { + expect(getTestFileNames([ + 'src/a.d.ts', + 'src/b.d.mts', + 'src/c.d.cts', + 'src/d.js', + ])).toEqual([]) + }) +})