Openstatus www.openstatus.dev
at main 29 lines 624 B view raw
1import { z } from "@hono/zod-openapi"; 2import { ZodError } from "zod"; 3 4export const isoDate = z.preprocess((val) => { 5 try { 6 if (val) { 7 return new Date(String(val)).toISOString(); 8 } 9 return new Date().toISOString(); 10 } catch (_e) { 11 throw new ZodError([ 12 { 13 code: "invalid_type", 14 message: "Invalid date", 15 expected: "string", 16 path: [], 17 }, 18 ]); 19 } 20}, z.string()); 21 22export function isNumberArray<T>( 23 monitors: number[] | T[], 24): monitors is number[] { 25 return ( 26 Array.isArray(monitors) && 27 monitors.every((item) => typeof item === "number") 28 ); 29}