mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
updated the type
This commit is contained in:
1 parent
9374df048e
commit
2d0defe5f9
5 files changed
+19
-28
No files matched your search
+2
-2
@@ -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))
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+2
-8
@@ -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({
|
||||
|
||||
+13
-16
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user