UNPKG

zod-invertible

Version:

declare zod schemas that can be inverted to format from output to input

16 lines 1.37 kB
import z from 'zod'; export interface ZodInvertibleDef<I extends z.ZodTypeAny, O extends z.ZodTypeAny> extends z.ZodPipelineDef<z.ZodEffects<I, z.input<O>>, O> { inputSchema: I; outputSchema: O; parse: (value: z.output<I>, ctx: z.RefinementCtx) => z.input<O> | Promise<z.input<O>>; format: (value: z.output<O>, ctx: z.RefinementCtx) => z.output<I> | Promise<z.output<I>>; } export declare class ZodInvertible<I extends z.ZodTypeAny, O extends z.ZodTypeAny> extends z.ZodPipeline<z.ZodEffects<I, z.input<O>>, O> { _def: ZodInvertibleDef<I, O>; constructor(inputSchema: I, parse: (out: z.output<I>, ctx: z.RefinementCtx) => z.input<O> | Promise<z.input<O>>, outputSchema: O, format: (out: z.output<O>, ctx: z.RefinementCtx) => z.output<I> | Promise<z.output<I>>); } export declare function invertible<T extends z.ZodTypeAny, U extends z.ZodTypeAny>(schema: T, parse: (value: z.output<T>, ctx: z.RefinementCtx) => z.input<U> | Promise<z.input<U>>, outSchema: U, format: (value: z.output<U>, ctx: z.RefinementCtx) => z.output<T> | Promise<z.output<T>>): ZodInvertible<T, U>; export declare const IgnoreEffect: unique symbol; export declare function ignoreEffect<T extends z.ZodEffects<any, any, any>>(schema: T): T; export declare function invert<T extends z.ZodTypeAny>(schema: T): z.ZodType<z.input<T>, any, z.output<T>>; //# sourceMappingURL=index.d.mts.map