zod-invertible
Version:
declare zod schemas that can be inverted to format from output to input
16 lines • 1.37 kB
TypeScript
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.ts.map