updated the type

This commit is contained in:
ArnabChatterjee20k committed 2026-04-09 17:14:18 +05:30
1 parent 9374df048e
commit 2d0defe5f9
5 files changed
+19 -28

No files matched your search

@@ -346,7 +346,7 @@
databaseId: page.params.database,
tableId: page.params.table,
rowId: row.$id,
data: buildPayload(columns, row as Record<string, unknown>)
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<string, unknown>))
rows: rows.map((row) => buildPayload(columns, row))
});
}
@@ -143,7 +143,7 @@
if (!row || !work) return;
try {
const payload = buildPayload(table.fields, $work as Record<string, unknown>);
const payload = buildPayload(table.fields, $work);
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
databaseId: table.databaseId,
@@ -258,10 +258,7 @@
const work = workData.get(rowId);
const workValue = get(work);
const payload = buildPayload(
relatedTable.fields,
workValue as Record<string, unknown>
);
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<string, unknown>
);
const payload = buildPayload(relatedTable.fields, workValue);
return sdk
.forProject(page.params.region, page.params.project)
.tablesDB.updateRow({
@@ -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<T extends Record<string, RowValue>>(
fields: Field[] | undefined,
row: Record<string, unknown>
): Record<string, unknown> {
const payload = structuredClone(row);
row: T
): T {
const payload = structuredClone(row) as Record<string, RowValue>;
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;
}
/**
@@ -646,7 +646,7 @@
async function updateRowContents(row: Models.Row) {
try {
const payload = buildPayload(table.fields, row as Record<string, unknown>);
const payload = buildPayload(table.fields, row);
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
databaseId,