Skip to content

Commit 2d0defe

Browse files
updated the type
1 parent 9374df0 commit 2d0defe

5 files changed

Lines changed: 19 additions & 28 deletions

File tree

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@
346346
databaseId: page.params.database,
347347
tableId: page.params.table,
348348
rowId: row.$id,
349-
data: buildPayload(columns, row as Record<string, unknown>)
349+
data: buildPayload(columns, row)
350350
})
351351
)
352352
);
@@ -358,7 +358,7 @@
358358
await tablesSDK.createRows({
359359
databaseId: page.params.database,
360360
tableId: page.params.table,
361-
rows: rows.map((row) => buildPayload(columns, row as Record<string, unknown>))
361+
rows: rows.map((row) => buildPayload(columns, row))
362362
});
363363
}
364364

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/edit.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@
143143
if (!row || !work) return;
144144
145145
try {
146-
const payload = buildPayload(table.fields, $work as Record<string, unknown>);
146+
const payload = buildPayload(table.fields, $work);
147147
148148
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
149149
databaseId: table.databaseId,

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editRelated.svelte

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,7 @@
258258
const work = workData.get(rowId);
259259
260260
const workValue = get(work);
261-
const payload = buildPayload(
262-
relatedTable.fields,
263-
workValue as Record<string, unknown>
264-
);
261+
const payload = buildPayload(relatedTable.fields, workValue);
265262
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
266263
databaseId,
267264
tableId: relatedTable.$id,
@@ -280,10 +277,7 @@
280277
if (!work) return;
281278
282279
const workValue = get(work);
283-
const payload = buildPayload(
284-
relatedTable.fields,
285-
workValue as Record<string, unknown>
286-
);
280+
const payload = buildPayload(relatedTable.fields, workValue);
287281
return sdk
288282
.forProject(page.params.region, page.params.project)
289283
.tablesDB.updateRow({

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store.ts

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ import type { Attributes, Columns } from '../store';
44
import { type Models, Query } from '@appwrite.io/console';
55
import type { Entity, Field } from '$database/(entity)';
66

7+
type RowPrimitive = string | number | bigint | boolean | null | undefined;
8+
interface RowObject {
9+
[key: string]: RowValue;
10+
}
11+
type RowValue = RowPrimitive | RowValue[] | RowObject;
12+
713
export function isRelationshipToMany(field: Field) {
814
if (!field) return false;
915
if (!isRelationship(field)) return false;
@@ -52,28 +58,19 @@ export function isSpatialType(
5258
return spatialTypes.includes(field.type.toLowerCase());
5359
}
5460

55-
function castBigIntValue(value: unknown): unknown {
61+
function castBigIntValue(value: RowValue): RowValue {
5662
if (value === null || value === undefined || value === '') {
5763
return value;
5864
}
5965

60-
if (typeof value === 'bigint') {
61-
return value;
62-
}
63-
64-
try {
65-
console.log({ value });
66-
return BigInt(value as string | number | boolean);
67-
} catch {
68-
return value;
69-
}
66+
return String(value);
7067
}
7168

72-
export function buildPayload(
69+
export function buildPayload<T extends Record<string, RowValue>>(
7370
fields: Field[] | undefined,
74-
row: Record<string, unknown>
75-
): Record<string, unknown> {
76-
const payload = structuredClone(row);
71+
row: T
72+
): T {
73+
const payload = structuredClone(row) as Record<string, RowValue>;
7774

7875
for (const field of fields ?? []) {
7976
if (field.type !== 'bigint') {
@@ -90,7 +87,7 @@ export function buildPayload(
9087
payload[field.key] = castBigIntValue(value);
9188
}
9289

93-
return payload;
90+
return payload as T;
9491
}
9592

9693
/**

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@
646646
647647
async function updateRowContents(row: Models.Row) {
648648
try {
649-
const payload = buildPayload(table.fields, row as Record<string, unknown>);
649+
const payload = buildPayload(table.fields, row);
650650
651651
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
652652
databaseId,

0 commit comments

Comments
 (0)