summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/utils/fileUtils.test.ts5
-rw-r--r--packages/core/src/utils/fileUtils.ts8
2 files changed, 12 insertions, 1 deletions
diff --git a/packages/core/src/utils/fileUtils.test.ts b/packages/core/src/utils/fileUtils.test.ts
index 0455b6e1..c1381e85 100644
--- a/packages/core/src/utils/fileUtils.test.ts
+++ b/packages/core/src/utils/fileUtils.test.ts
@@ -196,6 +196,11 @@ describe('fileUtils', () => {
vi.restoreAllMocks(); // Restore spies on actualNodeFs
});
+ it('should detect typescript type by extension (ts)', () => {
+ expect(detectFileType('file.ts')).toBe('text');
+ expect(detectFileType('file.test.ts')).toBe('text');
+ });
+
it('should detect image type by extension (png)', () => {
mockMimeLookup.mockReturnValueOnce('image/png');
expect(detectFileType('file.png')).toBe('image');
diff --git a/packages/core/src/utils/fileUtils.ts b/packages/core/src/utils/fileUtils.ts
index 5a05d513..72f29436 100644
--- a/packages/core/src/utils/fileUtils.ts
+++ b/packages/core/src/utils/fileUtils.ts
@@ -100,8 +100,14 @@ export function detectFileType(
filePath: string,
): 'text' | 'image' | 'pdf' | 'audio' | 'video' | 'binary' {
const ext = path.extname(filePath).toLowerCase();
- const lookedUpMimeType = mime.lookup(filePath); // Returns false if not found, or the mime type string
+ // The mimetype for "ts" is MPEG transport stream (a video format) but we want
+ // to assume these are typescript files instead.
+ if (ext === '.ts') {
+ return 'text';
+ }
+
+ const lookedUpMimeType = mime.lookup(filePath); // Returns false if not found, or the mime type string
if (lookedUpMimeType) {
if (lookedUpMimeType.startsWith('image/')) {
return 'image';