@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
TypeScript
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 {};