UNPKG

@amaui/ui-react

Version:
66 lines (65 loc) 2.65 kB
import { TIsType, IOptions as IIsOptions } from '@amaui/utils/is'; import { TIsValidType, IOptions as IIsValidOptions } from '@amaui/utils/isValid'; export interface IValidateOptions { message?: string; uriDecode?: boolean; parse?: boolean; } export interface IValidateModelValueIs { type?: TIsType; options?: IIsOptions; } export interface IValidateModelValueIsValid { type?: TIsValidType; options?: IIsValidOptions; } export interface IValidateModelValueMethodOptions { form: IForm; property: string; object: IValidateModelValue; options: IValidateOptions; } export type IValidateModelValueMethod = (value: any, options: IValidateModelValueMethodOptions) => Promise<any> | any; export type IValidateModelValueValidations = 'required' | 'is' | 'isValid' | 'of' | 'ofValid' | 'equal' | 'notEqual' | 'equalDeep' | 'notEqualDeep' | 'some' | 'in' | 'every' | 'properties' | 'notProperties' | 'min' | 'max' | 'length' | 'method'; export type IValidateModelMessages = { [p in IValidateModelValueValidations]?: string; }; export interface IValidateModelValue { name: string; value?: any; message?: string; messages?: IValidateModelMessages; required?: boolean; is?: TIsType | TIsType[] | IValidateModelValueIs | IValidateModelValueIs[]; isValid?: TIsValidType | TIsValidType[] | IValidateModelValueIsValid | IValidateModelValueIsValid[]; of?: TIsType | TIsType[] | IValidateModelValueIs | IValidateModelValueIs[]; ofValid?: TIsValidType | TIsValidType[] | IValidateModelValueIsValid | IValidateModelValueIsValid[]; equal?: any; notEqual?: any; equalDeep?: any; notEqualDeep?: any; some?: any[]; in?: any[]; every?: any[]; properties?: string[]; notProperties?: string[]; min?: number; max?: number; length?: number; method?: IValidateModelValueMethod | IValidateModelValueMethod[]; touched?: boolean; error?: string; capitalize?: boolean; propertyNameUpdate?: (value: any) => string; } export type IUseFormValues = Record<string, IValidateModelValue>; export interface IForm { value: any; values: IUseFormValues; valid: boolean; } export type IValidateValidation = (property: IValidateModelValue, form: IForm) => void | Error | Promise<void | Error>; export type IValidateVales = Record<string, IValidateModelValue>; export declare const onValidateError: (options: IValidateOptions, model: IValidateModelValue, message?: any) => never; declare const validate: (model: IValidateModelValue, property: string, form: IForm, options_?: IValidateOptions) => Promise<void>; export default validate;