mirror of
https://github.com/aljazceru/opencode.git
synced 2026-02-07 00:54:31 +01:00
15 lines
329 B
TypeScript
15 lines
329 B
TypeScript
import { z } from "zod"
|
|
|
|
export function fn<T extends z.ZodType, Result>(
|
|
schema: T,
|
|
cb: (input: z.output<T>) => Result,
|
|
) {
|
|
const result = (input: z.input<T>) => {
|
|
const parsed = schema.parse(input)
|
|
return cb(parsed)
|
|
}
|
|
result.force = (input: z.input<T>) => cb(input)
|
|
result.schema = schema
|
|
return result
|
|
}
|