appwrite-utils
Version:
`appwrite-utils` is a comprehensive TypeScript library designed to streamline the development process for Appwrite projects. It provides a suite of utilities and helper functions that facilitate data manipulation, schema management, and seamless integrati
58 lines (53 loc) • 1.74 kB
text/typescript
import { z } from "zod";
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
extendZodWithOpenApi(z);
export const AuthUserSchema = z
.object({
$id: z
.string()
.openapi({ description: "The unique identifier for the user" }),
$createdAt: z
.string()
.optional()
.openapi({ description: "Creation timestamp" }),
$updatedAt: z
.string()
.optional()
.openapi({ description: "Update timestamp" }),
name: z.string().nullish().openapi({ description: "The user's name" }),
email: z
.string()
.nullish()
.openapi({ description: "The user's email address" }),
phone: z
.string()
.nullish()
.openapi({ description: "The user's phone number" }),
prefs: z.record(z.string()).optional().default({}).openapi({
description: "User preferences, key-value pairs up to 16KB in size",
}),
labels: z
.array(z.string())
.optional()
.default([])
.openapi({ description: "User labels" }),
password: z.string().optional().openapi({
description:
"Optional password, also used for the user to update their own account",
}),
})
.openapi("AuthUser");
export type AuthUser = z.infer<typeof AuthUserSchema>;
export const AuthUserCreateSchema = AuthUserSchema.omit({
$id: true,
})
.extend({
userId: z.string().optional().openapi({
description: "Optional user ID, auto generated if not provided",
}),
password: z.string().optional().openapi({
description: "Optional password",
}),
})
.openapi("AuthUserCreate");
export type AuthUserCreate = z.infer<typeof AuthUserCreateSchema>;