@faivform/zod
Version:
Adapter to use Zod with @tuentyfaiv/svelte-form
21 lines (20 loc) • 1.13 kB
TypeScript
/// <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 {};