From 4ec096c47ef3c1c8c6458734bca97e160467123a Mon Sep 17 00:00:00 2001 From: Sam Der Date: Sat, 13 Jan 2024 17:42:17 -0800 Subject: [PATCH] update: sponsor zod validation schema (#214) --- .../(home)/sections/Sponsors/getSponsors.ts | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/site/src/app/(main)/(home)/sections/Sponsors/getSponsors.ts b/apps/site/src/app/(main)/(home)/sections/Sponsors/getSponsors.ts index 6f773a5e..1828279d 100644 --- a/apps/site/src/app/(main)/(home)/sections/Sponsors/getSponsors.ts +++ b/apps/site/src/app/(main)/(home)/sections/Sponsors/getSponsors.ts @@ -3,17 +3,24 @@ import { cache } from "react"; import { client } from "@/lib/sanity/client"; import { SanityDocument, SanityImageReference } from "@/lib/sanity/types"; +export const Sponsor = z.object({ + _type: z.literal("sponsor"), + _key: z.string(), + name: z.string(), + url: z.string().url().optional(), + tier: z.union([ + z.literal("platinum"), + z.literal("gold"), + z.literal("bronze"), + z.literal("silver"), + z.literal("sponsored-prize"), + z.literal("in-kind"), + ]), + logo: SanityImageReference, +}); + const Sponsors = SanityDocument.extend({ - sponsors: z.array( - z.object({ - _type: z.literal("sponsor"), - _key: z.string(), - name: z.string(), - url: z.string().url().optional(), - tier: z.union([z.literal("bronze"), z.literal("silver")]), - logo: SanityImageReference, - }), - ), + sponsors: z.array(Sponsor), }); export const getSponsors = cache(async () => {