From 8b1d5a2e3c84e488d90184e7da856cf1130ea5ef Mon Sep 17 00:00:00 2001 From: Yash Velagapudi <46730550+yashv6655@users.noreply.github.com> Date: Tue, 5 Aug 2025 23:15:53 -0700 Subject: [PATCH] fix(core): Treat .mts files as TypeScript modules instead of video files (#5492) Co-authored-by: Jacob Richman --- packages/core/src/utils/fileUtils.test.ts | 6 +++++- packages/core/src/utils/fileUtils.ts | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/core/src/utils/fileUtils.test.ts b/packages/core/src/utils/fileUtils.test.ts index bcdf3fe7..fb6b6820 100644 --- a/packages/core/src/utils/fileUtils.test.ts +++ b/packages/core/src/utils/fileUtils.test.ts @@ -196,9 +196,13 @@ describe('fileUtils', () => { vi.restoreAllMocks(); // Restore spies on actualNodeFs }); - it('should detect typescript type by extension (ts)', async () => { + it('should detect typescript type by extension (ts, mts, cts, tsx)', async () => { expect(await detectFileType('file.ts')).toBe('text'); expect(await detectFileType('file.test.ts')).toBe('text'); + expect(await detectFileType('file.mts')).toBe('text'); + expect(await detectFileType('vite.config.mts')).toBe('text'); + expect(await detectFileType('file.cts')).toBe('text'); + expect(await detectFileType('component.tsx')).toBe('text'); }); it('should detect image type by extension (png)', async () => { diff --git a/packages/core/src/utils/fileUtils.ts b/packages/core/src/utils/fileUtils.ts index 96f4b36c..a153d205 100644 --- a/packages/core/src/utils/fileUtils.ts +++ b/packages/core/src/utils/fileUtils.ts @@ -122,9 +122,10 @@ export async function detectFileType( ): Promise<'text' | 'image' | 'pdf' | 'audio' | 'video' | 'binary' | 'svg'> { const ext = path.extname(filePath).toLowerCase(); - // The mimetype for "ts" is MPEG transport stream (a video format) but we want - // to assume these are typescript files instead. - if (ext === '.ts') { + // The mimetype for various TypeScript extensions (ts, mts, cts, tsx) can be + // MPEG transport stream (a video format), but we want to assume these are + // TypeScript files instead. + if (['.ts', '.mts', '.cts'].includes(ext)) { return 'text'; }