I am using appwrite types --language ts ./types to generate the types yielding something like:
import type { Models } from 'node-appwrite';
// This file is auto-generated by the Appwrite CLI.
// You can regenerate it by running `appwrite types --language ts ./types`.
export enum Status {
DRAFT = "draft",
PUBLISHED = "published",
CANCELLED = "cancelled"
}
export type Events = Models.Row & {
title: string;
description: string | null;
startDate: string;
endDate: string;
location: string;
status: Status;
bookingLink: string | null;
imageUrl: string | null;
}
As a consequence I can use it for server actions like this:
export const getEvents = async () => {
try {
# getting session is here
const { tablesDB } = createSessionClient(session.value);
const response = await tablesDB.listRows<Events>({
databaseId: DATABASE_ID,
tableId: EVENTS_TABLE_ID,
queries: [Query.orderDesc("$createdAt")],
});
return {
success: true,
data: response.rows,
};
} catch (error) {
return {
success: false,
error: error instanceof Error ? error.message : "Unbekannter Fehler",
};
}
};
However, using <Events> is a bit confusing as a basically create one event.
So I did export type Event = Omit<Events, keyof Models.Row>;
But then I get a typerror in the server action above:
Type 'Event' does not satisfy the constraint 'Row'.
Type 'Event' is missing the following properties from type 'Row': $id, $sequence, $tableId, $databaseId, and 3 more.ts(2344)
(alias) type Event = {
title: string;
description: string | null;
startDate: string;
endDate: string;
location: string;
status: Status;
bookingLink: string | null;
imageUrl: string | null;
}
import Event
I also tried to follow https://appwrite.io/docs/products/databases/rows#type-safety, but I really don't want to manually create the types.
How did you solve this?
Recommended threads
- After assigning a domain to my Dart func...
I’ve attached the images. Could anyone please explain how this execution is being performed?
- Provider not enabled in Dotnet project
# Bug Report: Appwrite .NET SDK `CreateOAuth2Token` → `project_provider_disabled` ## Issue Using **Appwrite .NET SDK (v3.1.0)**, `CreateOAuth2Token` for Googl...
- Stuck on project restoration after inact...
Hey there! My project was paused due to inactivity today. I tried to restore it, but it's completely stuck on the restoration process. Could someone please tak...