UNPKG

@explita/daily-toolset-form

Version:

A lightweight form toolkit for React built with developer ergonomics in mind. Includes a flexible Form component, useForm, useField, and useFormContext hooks for managing form state and validation with ease. Designed to simplify complex forms while remain

24 lines (23 loc) 1.05 kB
import { z, ZodObject } from "zod"; type ValidationResponse<T> = { success: true; data: T; } | { success: false; errors: Partial<Record<keyof T, string>>; message: string; data: T; }; /** * Validates form data against a Zod schema. * * @param {Schema} validationSchema - The Zod schema to validate the form data against. * @param {FormData | Record<string, unknown> | undefined} formData - The form data to validate. * @returns {Promise<ValidationResponse<z.infer<Schema>>>} - A promise that resolves to a validation response. * * @throws {Error} Throws an error if a valid Zod schema or valid FormData is not provided, * or if an unexpected error occurs during validation. */ export declare function validateForm<Schema extends ZodObject>(validationSchema: Schema, formData: FormData | Record<string, unknown> | undefined): Promise<ValidationResponse<z.infer<Schema>>>; export declare function extractFieldErrors<T extends z.ZodObject>(error: z.ZodError, schema: T): Partial<Record<keyof z.infer<T>, string>>; export {};