@faivform/yup
Version:
Adapter to use Yup with @tuentyfaiv/svelte-form
21 lines (20 loc) • 1.13 kB
TypeScript
/// <reference types="svelte" />
import { Adapter } from "@tuentyfaiv/svelte-form";
import { ObjectSchema } from "yup";
import type { DataErrors } from "@tuentyfaiv/svelte-form";
import type { Writable } from "svelte/store";
import type { AnyObject, InferType } from "yup";
import type { YupAdapterConfig } from "./yup.types.js";
declare class YupAdapter<Schema extends ObjectSchema<AnyObject>, Data extends InferType<Schema> = InferType<Schema>> extends Adapter<Data> {
#private;
constructor(config: YupAdapterConfig<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 ObjectSchema<AnyObject>, Data extends InferType<Schema> = InferType<Schema>>(schema: Schema): YupAdapter<Schema, InferType<Schema>>;
export {};