From 3d5ad975ec8378cfe7aef7c49ae1635a6fda5449 Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Thu, 25 May 2023 22:10:31 -0700 Subject: [PATCH] Updating auth and zod schemas. --- src/lib/components/signin.svelte | 82 ++++++++++++++ src/lib/components/signup.svelte | 181 +++++++++++++++---------------- src/lib/zodValidation.ts | 78 +++++++++++++ 3 files changed, 250 insertions(+), 91 deletions(-) diff --git a/src/lib/components/signin.svelte b/src/lib/components/signin.svelte index e69de29..4ac41d8 100644 --- a/src/lib/components/signin.svelte +++ b/src/lib/components/signin.svelte @@ -0,0 +1,82 @@ + + +
+ + {#if $errors._errors} + + {/if} +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/src/lib/components/signup.svelte b/src/lib/components/signup.svelte index 7914324..4b99527 100644 --- a/src/lib/components/signup.svelte +++ b/src/lib/components/signup.svelte @@ -1,6 +1,5 @@ -
-

Signup user

- - - - - - - + +

Signup user

+ + + + + + + - or Cancel -
+ or Cancel + diff --git a/src/lib/zodValidation.ts b/src/lib/zodValidation.ts index edb461c..050fcb8 100644 --- a/src/lib/zodValidation.ts +++ b/src/lib/zodValidation.ts @@ -136,6 +136,8 @@ export const search_result_schema = z.object({ fields: z.string() }); +export type SearchResultSchema = typeof search_result_schema; + export const game_schema = z.object({ id: z.string(), handle: z.string(), @@ -158,6 +160,82 @@ export const game_schema = z.object({ playtime: z.string() }); +export const category_schema = z.object({ + id: z.string(), + name: z.string() +}); + +export const mechanics_schema = z.object({ + id: z.string(), + name: z.string(), + description: z.string().optional() +}); + +const gameSchema = z.object({ + id: z.string(), + name: z.string(), + description: z.string().optional(), + year_published: z.number().optional(), + min_players: z.number().optional(), + max_players: z.number().optional(), + min_playtime: z.number().optional(), + max_playtime: z.number().optional(), + min_age: z.number().optional(), + image_url: z.string().optional(), + thumb_url: z.string().optional(), + url: z.string().optional(), + rules_url: z.string().optional(), + weight_amount: z.number().optional(), + weight_units: z.enum(['Medium', 'Heavy']).optional(), + categories: z.array(category_schema).optional(), + mechanics: z.array(mechanics_schema).optional(), + designers: z + .array( + z.object({ + id: z.string(), + name: z.string() + }) + ) + .optional(), + publishers: z + .array( + z.object({ + id: z.string(), + name: z.string() + }) + ) + .optional(), + artists: z + .array( + z.object({ + id: z.string(), + name: z.string() + }) + ) + .optional(), + names: z.array(z.string()).optional(), + expansions: z + .array( + z.object({ + id: z.string(), + name: z.string(), + year_published: z.number().optional() + }) + ) + .optional(), + primary_publisher: z + .object({ + id: z.string(), + name: z.string() + }) + .optional() +}); + +const searchResultSchema = z.object({ + games: z.array(gameSchema), + count: z.number() +}); + // export const game_raw_schema_json = zodToJsonSchema(game_schema, { // $refStrategy: 'none', // });