UNPKG

zod-joda

Version:

JS-Joda integration for Zod validation library

35 lines (34 loc) 1.3 kB
import { globalRegistry, pipe, string, transform } from "zod/v4/mini"; import { durationConfig, localDateConfig, localDateTimeConfig, localTimeConfig, zonedDateTimeConfig, } from "./core.js"; const createParseConstructor = ({ parse, invalidMessage, schemaFormat, example, }) => (params) => { const inputSchema = string().register(globalRegistry, { example: example(params) }); inputSchema._zod.toJSONSchema = () => ({ format: schemaFormat, }); return pipe(inputSchema, transform((value, context) => { try { return parse(value, params); } catch { context.issues.push({ code: "custom", message: params?.error ?? invalidMessage, input: context.value, }); return undefined; } })); }; export const duration = createParseConstructor(durationConfig); export const localDate = createParseConstructor(localDateConfig); export const localDateTime = createParseConstructor(localDateTimeConfig); export const localTime = createParseConstructor(localTimeConfig); export const zonedDateTime = createParseConstructor(zonedDateTimeConfig); export const zj = { duration, localDate, localDateTime, localTime, zonedDateTime, }; export default zj;