import { z } from "zod" export function fn(schema: T, cb: (input: z.infer) => Result) { const result = (input: z.infer) => { let parsed try { parsed = schema.parse(input) } catch (e) { console.trace("schema validation failure stack trace:") if (e instanceof z.ZodError) { console.error("schema validation issues:", JSON.stringify(e.issues, null, 2)) } throw e } return cb(parsed) } result.force = (input: z.infer) => cb(input) result.schema = schema return result }