summaryrefslogtreecommitdiff
path: root/packages/core
diff options
context:
space:
mode:
authorYash Velagapudi <[email protected]>2025-08-05 23:15:53 -0700
committerGitHub <[email protected]>2025-08-06 06:15:53 +0000
commit8b1d5a2e3c84e488d90184e7da856cf1130ea5ef (patch)
tree7a6dcf4ce80c54ee6a2ece273c698902cbd1d456 /packages/core
parenta0990380b5f96cc826bd8be50b12e8d034d0eccd (diff)
fix(core): Treat .mts files as TypeScript modules instead of video files (#5492)
Co-authored-by: Jacob Richman <[email protected]>
Diffstat (limited to 'packages/core')
-rw-r--r--packages/core/src/utils/fileUtils.test.ts6
-rw-r--r--packages/core/src/utils/fileUtils.ts7
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';
}