react-rooks
Version:
Store management for React and React Native with simple hooks !
9 lines (8 loc) • 950 B
TypeScript
import { z, ZodObject, ZodDefault, ZodTypeAny, ZodNullable, ZodOptional, ZodEffects } from "zod";
import { RookStore, StoreRead } from "./type";
export type ZodDefinedType = ZodDefault<ZodTypeAny> | ZodNullable<ZodTypeAny> | ZodOptional<ZodTypeAny>;
export type RookZodStore = RookStore<ZodDefinedType | ZodEffects<ZodDefinedType>>;
export declare const createZodRook: <Schema extends ZodObject<RookZodStore> | ZodEffects<ZodObject<RookZodStore>>, Store extends z.input<Schema>>(schema: Schema, { storeReducer: customStoreReducer, onValidationError, }?: {
storeReducer?: (values: Partial<Store>, currentStore: StoreRead<Store>) => Store;
onValidationError?: (error: z.ZodError, values: StoreRead<Store>, currentStore: StoreRead<Store>) => void;
}) => [import("./type").RookComponent, <StoreKey extends Extract<keyof Store, string> | undefined = undefined>(key?: StoreKey | undefined) => import("./type").UseStoreHookReturn<Store, StoreKey>];