zod-to-appwrite
Version:
Generate Appwrite database collections from Zod schemas
29 lines (28 loc) • 779 B
TypeScript
import { Databases } from "node-appwrite";
import { ZodObject } from "zod";
export interface ZodToAppwriteOptions {
databases: Databases;
databaseId: string;
collectionId: string;
collectionName: string;
permissions?: Array<{
permission: string;
role: string;
}>;
logLevel?: "silent" | "info" | "verbose";
enumSizeLimit?: number;
stringDefaultSize?: number;
skipExisting?: boolean;
}
export interface AttributeCreationResult {
created: string[];
skipped: string[];
failed: string[];
}
export interface CollectionCreationResult {
success: boolean;
collectionId: string;
result?: AttributeCreationResult;
error?: string;
}
export type InferZodSchema<T> = T extends ZodObject<infer U> ? U : never;