UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

28 lines (27 loc) 1.72 kB
export type Types = 'string' | 'number' | 'boolean' | 'int' | 'float' | 'array' | 'object' | 'date' | 'url' | 'color' | 'email'; type Range = [number, number]; type ValidatorResult = boolean | string | Error | Promise<boolean | string | Error>; export interface Rule<T = any> { required?: boolean; type?: Types; length?: number; range?: Range; strict?: boolean; enums?: T[]; message?: string; validator?(value: T, model: Record<string, any>): ValidatorResult; } type TypeOptions = Pick<Rule, 'length' | 'range' | 'strict'>; export declare function validate(rules: Rule | Rule[], value: unknown, model: Record<string, unknown>, validateAll?: boolean, defaultMsg?: string): Promise<string[]>; export declare function validateRequirement(value: any): boolean; export declare function validateEnumeration<T>(value: T | T[], options: T[]): boolean; export declare function validateType(value: unknown, type: Types, options?: TypeOptions): boolean; export declare function validateString(value: unknown, length?: number, range?: Range): boolean; export declare function validateNumber(value: unknown, strict?: boolean, length?: number, range?: Range): boolean; export declare function validateBoolean(value: unknown, strict?: boolean): boolean; export declare function validateInt(value: unknown, strict?: boolean, length?: number, range?: Range): boolean; export declare function validateFloat(value: unknown, strict?: boolean, length?: number, range?: Range): boolean; export declare function validateDate(value: unknown, strict?: boolean): boolean; export declare function validateUrl(value: unknown): boolean; export declare function validateEmail(value: unknown): boolean; export {};