UNPKG

next-typesafe-path

Version:
25 lines (24 loc) 2.47 kB
import { z } from 'zod'; export type ParamBuilder = { stringOr: (defaultValue?: string) => z.ZodType<string>; numberOr: (defaultValue?: number) => z.ZodType<number>; booleanOr: (defaultValue?: boolean) => z.ZodType<boolean>; enumOr: <T extends [string, ...string[]]>(values: readonly [...T], defaultValue: T[number]) => z.ZodType<T[number]>; or: <T>(schema: z.ZodType<T>, defaultValue: T) => z.ZodType<T>; dateOr: (defaultValue: Date) => z.ZodType<Date>; listOr: <T>(type: z.ZodType<T>, separator?: string) => z.ZodType<T[]>; optional: <T>(schema: z.ZodType<T>) => z.ZodOptional<z.ZodType<T>>; arrayOr: (defaultValue?: string[]) => z.ZodType<string[]>; parse: { number: () => z.ZodNumber; string: () => z.ZodString; boolean: () => z.ZodBoolean; }; custom: <T>(schema: z.ZodType<T>, validator: (value: T) => boolean, errorMessage: string) => z.ZodType<T>; }; export declare const defineSearchParams: <T extends Record<string, z.ZodType>>(builder: (p: ParamBuilder) => T) => z.ZodObject<T, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>; export declare const createSearchParams: <T extends Record<string, z.ZodType>>(builder: (p: ParamBuilder) => T) => z.ZodObject<T, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>; export declare const createGlobalSearchParams: <T extends Record<string, z.ZodType>>(builder: (p: ParamBuilder) => T) => z.ZodObject<T, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<T>, any>[k]; } : never, z.baseObjectInputType<T> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<T>[k_1]; } : never>; export declare const parseSearchParams: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, input: URLSearchParams | Record<string, unknown>, options?: { passthrough?: boolean; }) => z.infer<T>;