From 55d8136f5b4a1f5d52ade8cc61bd920481a02d81 Mon Sep 17 00:00:00 2001 From: hagiwara Date: Thu, 9 May 2024 17:51:19 +0900 Subject: [PATCH] Add support for importing tsv files --- graphql-server/schema.gql | 1 + graphql-server/src/tables/table.enum.ts | 1 + graphql-server/src/tables/upload.resolver.ts | 3 +++ .../pageComponents/FileUploadPage/Steps/Upload/useDropZone.ts | 4 +++- web/gen/graphql-types.tsx | 3 ++- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/graphql-server/schema.gql b/graphql-server/schema.gql index 6cf3b9df..a148d525 100644 --- a/graphql-server/schema.gql +++ b/graphql-server/schema.gql @@ -358,6 +358,7 @@ enum ImportOperation { enum FileType { Csv Psv + Tsv } """The `Upload` scalar type represents a file upload.""" diff --git a/graphql-server/src/tables/table.enum.ts b/graphql-server/src/tables/table.enum.ts index 4e9d7d9a..4f1ce083 100644 --- a/graphql-server/src/tables/table.enum.ts +++ b/graphql-server/src/tables/table.enum.ts @@ -12,6 +12,7 @@ registerEnumType(ImportOperation, { name: "ImportOperation" }); export enum FileType { Csv, Psv, + Tsv, // Xlsx, // Json, // Sql, diff --git a/graphql-server/src/tables/upload.resolver.ts b/graphql-server/src/tables/upload.resolver.ts index 56cf4e19..2b41f944 100644 --- a/graphql-server/src/tables/upload.resolver.ts +++ b/graphql-server/src/tables/upload.resolver.ts @@ -132,5 +132,8 @@ function getDelim(ft: FileType): string { if (ft === FileType.Psv) { return "|"; } + if (ft === FileType.Tsv) { + return "\t"; + } return ","; } diff --git a/web/components/pageComponents/FileUploadPage/Steps/Upload/useDropZone.ts b/web/components/pageComponents/FileUploadPage/Steps/Upload/useDropZone.ts index 85eb45db..b8ec8c4c 100644 --- a/web/components/pageComponents/FileUploadPage/Steps/Upload/useDropZone.ts +++ b/web/components/pageComponents/FileUploadPage/Steps/Upload/useDropZone.ts @@ -10,7 +10,7 @@ const oneMB = 1024 * 1024; const numMB = 400; const maxFileSize = numMB * oneMB; // ~ 150MB -export const validTypes = ["csv", "psv"]; +export const validTypes = ["csv", "psv", "tsv"]; type ReturnType = { dragOver: (e: DragEvent) => void; @@ -119,6 +119,8 @@ function toFileType(extension: string): FileType { return FileType.Csv; case "psv": return FileType.Psv; + case "tsv": + return FileType.Tsv; default: throw new Error("invalid file type"); } diff --git a/web/gen/graphql-types.tsx b/web/gen/graphql-types.tsx index e9e63f46..be9bfd90 100644 --- a/web/gen/graphql-types.tsx +++ b/web/gen/graphql-types.tsx @@ -179,7 +179,8 @@ export type DoltWriter = { export enum FileType { Csv = 'Csv', - Psv = 'Psv' + Psv = 'Psv', + Tsv = 'Tsv' } export type ForeignKey = {