UNPKG

remix-params-helper

Version:

This package makes it simple to use Zod with standard URLSearchParams and FormData which are typically used in Remix apps.

49 lines (48 loc) 1.72 kB
import { z, ZodType } from 'zod'; export declare function getParams<T extends ZodType<any, any, any>>(params: URLSearchParams | FormData | Record<string, string | undefined>, schema: T): { success: false; data: undefined; errors: { [key: string]: string; }; } | { success: true; data: z.TypeOf<T>; errors: undefined; }; export declare function getSearchParams<T extends ZodType<any, any, any>>(request: Pick<Request, 'url'>, schema: T): { success: false; data: undefined; errors: { [key: string]: string; }; } | { success: true; data: z.TypeOf<T>; errors: undefined; }; export declare function getFormData<T extends ZodType<any, any, any>>(request: Pick<Request, 'formData'>, schema: T): Promise<{ success: false; data: undefined; errors: { [key: string]: string; }; } | { success: true; data: z.TypeOf<T>; errors: undefined; }>; export declare function getParamsOrFail<T extends ZodType<any, any, any>>(params: URLSearchParams | FormData | Record<string, string | undefined>, schema: T): z.TypeOf<T>; export declare function getSearchParamsOrFail<T extends ZodType<any, any, any>>(request: Pick<Request, 'url'>, schema: T): z.TypeOf<T>; export declare function getFormDataOrFail<T extends ZodType<any, any, any>>(request: Pick<Request, 'formData'>, schema: T): Promise<z.TypeOf<T>>; export declare type InputPropType = { name: string; type: string; required?: boolean; min?: number; max?: number; minLength?: number; maxLength?: number; pattern?: string; }; export declare function useFormInputProps(schema: any, options?: any): (key: string, options?: any) => InputPropType;