diff --git a/packages/types/extensions.d.ts b/packages/types/extensions.d.ts index a60dcff7b..84c95b732 100644 --- a/packages/types/extensions.d.ts +++ b/packages/types/extensions.d.ts @@ -3,6 +3,7 @@ import { EngineDriver } from './engines'; export interface FileFormatDefinition { storageType: string; extension: string; + extensions?: string[]; name: string; readerFunc?: string; writerFunc?: string; diff --git a/packages/web/src/utility/openElectronFile.ts b/packages/web/src/utility/openElectronFile.ts index 5586df52c..16b996b4f 100644 --- a/packages/web/src/utility/openElectronFile.ts +++ b/packages/web/src/utility/openElectronFile.ts @@ -57,7 +57,7 @@ function openElectronJsonLinesFile(filePath, parsed) { openNewTab({ title: parsed.name, tooltip: filePath, - icon: 'img sql-file', + icon: 'img archive', tabComponent: 'ArchiveFileTab', props: { jslid: `file://${filePath}`, diff --git a/packages/web/src/utility/uploadFiles.ts b/packages/web/src/utility/uploadFiles.ts index 6530e21b4..ae669bd81 100644 --- a/packages/web/src/utility/uploadFiles.ts +++ b/packages/web/src/utility/uploadFiles.ts @@ -7,6 +7,7 @@ import { findFileFormat } from '../plugins/fileformats'; import { showModal } from '../modals/modalTools'; import ImportExportModal from '../modals/ImportExportModal.svelte'; import ErrorMessageModal from '../modals/ErrorMessageModal.svelte'; +import openNewTab from './openNewTab'; let uploadListener; @@ -53,8 +54,21 @@ export default function uploadFiles(files) { fileData.shortName = file.name; + if (file.name.endsWith('.jsonl') || file.name.endsWith('.ndjson')) { + openNewTab({ + title: fileData.shortName, + icon: 'img archive', + tabComponent: 'ArchiveFileTab', + props: { + jslid: `file://${fileData.filePath}`, + }, + }); + return; + } + for (const format of ext.fileFormats) { if (file.name.endsWith('.' + format.extension)) { + // || format.extensions?.find(ext => file.name.endsWith('.' + ext)) fileData.shortName = file.name.slice(0, -format.extension.length - 1); fileData.storageType = format.storageType; }