@amaui/ui-react
Version:
UI for React
66 lines (65 loc) • 2.65 kB
TypeScript
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;