UNPKG

@faivform/zod

Version:

Adapter to use Zod with @tuentyfaiv/svelte-form

21 lines (20 loc) 1.13 kB
/// <reference types="svelte" /> import { Adapter } from "@tuentyfaiv/svelte-form"; import { ZodObject } from "zod"; import type { Writable } from "svelte/store"; import type { DataErrors } from "@tuentyfaiv/svelte-form"; import type { ZodRawShape, infer as ZodInfer } from "zod"; import type { ZodAdapterConfig } from "./zod.types.js"; declare class ZodAdapter<Schema extends ZodObject<ZodRawShape>, Data extends ZodInfer<Schema> = ZodInfer<Schema>> extends Adapter<Data> { #private; constructor(config: ZodAdapterConfig<Schema>); initial: () => { fields: Data; errors: DataErrors<Data>; }; validate: <T = Data>(data: T) => Promise<void>; field: (field: keyof Data, value: Data[keyof Data], errors: Writable<DataErrors<Data>>) => Promise<void>; errors: (error: unknown, errors: Writable<DataErrors<Data>>, handle?: ((error: unknown) => (void | Promise<void>)) | undefined) => Promise<void>; } export declare function adapter<Schema extends ZodObject<ZodRawShape>, Data extends ZodInfer<Schema> = ZodInfer<Schema>>(schema: Schema): ZodAdapter<Schema, ZodInfer<Schema>>; export {};