fn.ts 329 B

1234567891011121314
  1. import { z } from "zod"
  2. export function fn<T extends z.ZodType, Result>(
  3. schema: T,
  4. cb: (input: z.output<T>) => Result,
  5. ) {
  6. const result = (input: z.input<T>) => {
  7. const parsed = schema.parse(input)
  8. return cb(parsed)
  9. }
  10. result.force = (input: z.input<T>) => cb(input)
  11. result.schema = schema
  12. return result
  13. }