From d8489a662e3d4b10292c73ab14770af3bf306621 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Mon, 17 Oct 2022 10:07:49 +0100 Subject: [PATCH] Adds a iso8601 helper function to parse a ISO Date String into a Date (#5039) --- packages/prisma/zod-utils.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts index 114387d79a..44d9202f75 100644 --- a/packages/prisma/zod-utils.ts +++ b/packages/prisma/zod-utils.ts @@ -58,6 +58,20 @@ export const recurringEventType = z }) .nullable(); +// dayjs iso parsing is very buggy - cant use :( - turns ISO string into Date object +export const iso8601 = z.string().transform((val, ctx) => { + const time = Date.parse(val); + if (!time) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Invalid ISO Date", + }); + } + const d = new Date(); + d.setTime(time); + return d; +}); + export const bookingLimitsType = z .object({ PER_DAY: z.number().optional(),