svelidate
Version:
Simple and lightweight form validation for Svelte with no dependencies
20 lines (19 loc) • 975 B
TypeScript
import type { SvelidateInputType } from "../../html";
import type { UnknownSvelidateForm } from "../core/output";
export declare type JsValidator<T = unknown> = (value: T, form: UnknownSvelidateForm) => string | undefined;
export declare type JsValidatorPredicate<T = unknown> = (value: T, form: UnknownSvelidateForm) => boolean;
export declare type HtmlValidator = {
required?: boolean;
pattern?: string;
minLength?: number;
maxLength?: number;
min?: number | string;
max?: number | string;
accept?: string;
};
export declare type HtmlValidatorMapper<T extends SvelidateInputType = SvelidateInputType> = (inputType: T | undefined, form: UnknownSvelidateForm) => HtmlValidator;
export declare type ValidatorWrapper<T = unknown, I extends SvelidateInputType = SvelidateInputType> = Readonly<{
js: JsValidator<T>;
html: HtmlValidatorMapper<I>;
}>;
export declare type ValidatorGetterParam = (svelidateForm: UnknownSvelidateForm) => unknown;