From 2d0defe5f9299fc9fef23797f359f77e035f1715 Mon Sep 17 00:00:00 2001 From: ArnabChatterjee20k Date: Thu, 9 Apr 2026 17:14:18 +0530 Subject: [PATCH] updated the type --- .../table-[table]/+layout.svelte | 4 +-- .../table-[table]/rows/edit.svelte | 2 +- .../table-[table]/rows/editRelated.svelte | 10 ++----- .../table-[table]/rows/store.ts | 29 +++++++++---------- .../table-[table]/spreadsheet.svelte | 2 +- 5 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte index 9492c22cd..16a088f97 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte @@ -346,7 +346,7 @@ databaseId: page.params.database, tableId: page.params.table, rowId: row.$id, - data: buildPayload(columns, row as Record) + data: buildPayload(columns, row) }) ) ); @@ -358,7 +358,7 @@ await tablesSDK.createRows({ databaseId: page.params.database, tableId: page.params.table, - rows: rows.map((row) => buildPayload(columns, row as Record)) + rows: rows.map((row) => buildPayload(columns, row)) }); } diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte index a440ba96f..58a723129 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte @@ -143,7 +143,7 @@ if (!row || !work) return; try { - const payload = buildPayload(table.fields, $work as Record); + const payload = buildPayload(table.fields, $work); await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({ databaseId: table.databaseId, diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte index af0afde35..67a0ce0b0 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte @@ -258,10 +258,7 @@ const work = workData.get(rowId); const workValue = get(work); - const payload = buildPayload( - relatedTable.fields, - workValue as Record - ); + const payload = buildPayload(relatedTable.fields, workValue); await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({ databaseId, tableId: relatedTable.$id, @@ -280,10 +277,7 @@ if (!work) return; const workValue = get(work); - const payload = buildPayload( - relatedTable.fields, - workValue as Record - ); + const payload = buildPayload(relatedTable.fields, workValue); return sdk .forProject(page.params.region, page.params.project) .tablesDB.updateRow({ diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts index 94017945d..b38649c3a 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts @@ -4,6 +4,12 @@ import type { Attributes, Columns } from '../store'; import { type Models, Query } from '@appwrite.io/console'; import type { Entity, Field } from '$database/(entity)'; +type RowPrimitive = string | number | bigint | boolean | null | undefined; +interface RowObject { + [key: string]: RowValue; +} +type RowValue = RowPrimitive | RowValue[] | RowObject; + export function isRelationshipToMany(field: Field) { if (!field) return false; if (!isRelationship(field)) return false; @@ -52,28 +58,19 @@ export function isSpatialType( return spatialTypes.includes(field.type.toLowerCase()); } -function castBigIntValue(value: unknown): unknown { +function castBigIntValue(value: RowValue): RowValue { if (value === null || value === undefined || value === '') { return value; } - if (typeof value === 'bigint') { - return value; - } - - try { - console.log({ value }); - return BigInt(value as string | number | boolean); - } catch { - return value; - } + return String(value); } -export function buildPayload( +export function buildPayload>( fields: Field[] | undefined, - row: Record -): Record { - const payload = structuredClone(row); + row: T +): T { + const payload = structuredClone(row) as Record; for (const field of fields ?? []) { if (field.type !== 'bigint') { @@ -90,7 +87,7 @@ export function buildPayload( payload[field.key] = castBigIntValue(value); } - return payload; + return payload as T; } /** diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte index 6b9992c16..36eae918f 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte @@ -646,7 +646,7 @@ async function updateRowContents(row: Models.Row) { try { - const payload = buildPayload(table.fields, row as Record); + const payload = buildPayload(table.fields, row); await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({ databaseId,