UNPKG

@re-flex/form-validator

Version:

Re-flex UTILS _> form-validator

106 lines (105 loc) 4.81 kB
declare type ObjectValueTypes = null | undefined | number | string | Date | bigint | boolean | Symbol; interface AnyObject { [k: string]: ObjectValueTypes | AnyObject | AnyObject[]; } declare type classOptions = { nullable: boolean; required: boolean; }; declare type Matcher = { message?: string; type: "number" | "string" | "boolean" | "date" | "object" | "array"; checker: <T>(e: T) => boolean; }[]; interface ClassDefaultChain { nullable: (e: boolean) => CorePrototypes; required: (e: boolean) => CorePrototypes; validate: (e: ObjectValueTypes | AnyObject | AnyObject[]) => string | null; } declare class CorePrototypes { constructor(); options: classOptions; matcher: Matcher; nullable: (value?: boolean) => { validate: (value: any) => string; }; required: (value?: boolean) => { validate: (value: any) => string; }; validate(value: any): string; defaultChain: () => ClassDefaultChain; } interface StringBase { email: (message: string, customRegexp?: RegExp) => ClassDefaultChain; password: (message: string, customRegexp?: RegExp) => ClassDefaultChain; phone: (message: string, customRegexp?: RegExp) => ClassDefaultChain; creditCard: (message: string, customRegexp?: RegExp) => ClassDefaultChain; url: (message: string, customRegexp?: RegExp) => ClassDefaultChain; match: (message: string, customRegexp?: RegExp) => ClassDefaultChain; BindRegexpHook: (regexp: RegExp) => (message: string) => ClassDefaultChain; } declare class StringBase extends CorePrototypes implements StringBase { customRegexp?: RegExp; constructor(customRegexp?: RegExp); BindRegexpHook(regexp: RegExp): (message?: string) => ClassDefaultChain; email: (message: string, customRegexp?: RegExp) => ClassDefaultChain; password: (message: string, customRegexp?: RegExp) => ClassDefaultChain; phone: (message: string, customRegexp?: RegExp) => ClassDefaultChain; creditCard: (message: string, customRegexp?: RegExp) => ClassDefaultChain; url: (message: string, customRegexp?: RegExp) => ClassDefaultChain; match: (message: string, customRegexp?: RegExp) => ClassDefaultChain; } interface NumberBase { email: (message: string, customRegexp?: RegExp) => ClassDefaultChain; password: (message: string, customRegexp?: RegExp) => ClassDefaultChain; phone: (message: string, customRegexp?: RegExp) => ClassDefaultChain; creditCard: (message: string, customRegexp?: RegExp) => ClassDefaultChain; url: (message: string, customRegexp?: RegExp) => ClassDefaultChain; match: (message: string, customRegexp?: RegExp) => ClassDefaultChain; BindRegexpHook: (regexp: RegExp) => (message: string, customRegexp?: RegExp) => ClassDefaultChain; } declare class NumberBase extends CorePrototypes implements NumberBase { private maxMin?; constructor(maxMin?: number); BindNumberHook: (checkFunc: (e: any, maxMin?: number) => boolean) => (message?: string) => ClassDefaultChain; positive: (message?: string) => ClassDefaultChain; negative: (message?: string) => ClassDefaultChain; max: (message?: string) => ClassDefaultChain; min: (message?: string) => ClassDefaultChain; float: (message?: string) => ClassDefaultChain; integer: (message?: string) => ClassDefaultChain; safeInteger: (message?: string) => ClassDefaultChain; bigInteger: (message?: string) => ClassDefaultChain; } interface DateBase { max: (message: string, customRegexp?: RegExp) => ClassDefaultChain; min: (message: string, customRegexp?: RegExp) => ClassDefaultChain; BindRegexpHook: (checkFunc: (e: any, maxMin?: Date) => boolean) => (message: string) => ClassDefaultChain; } declare class DateBase extends CorePrototypes implements DateBase { private maxMin?; constructor(maxMin?: Date); BindDateHook: (checkFunc: (e: any, maxMin?: Date) => boolean) => (message?: string) => ClassDefaultChain; max: (message: string, customRegexp?: RegExp) => ClassDefaultChain; min: (message: string, customRegexp?: RegExp) => ClassDefaultChain; } interface BooleanBase { } declare class BooleanBase extends CorePrototypes implements BooleanBase { constructor(message?: string); } interface ObjectBase<T> { } declare class ObjectBase<T> extends CorePrototypes implements ObjectBase<T> { rules?: T; each?: false; message: string; constructor(rules?: T, each?: false, message?: string); init: () => this; } export declare const string: () => StringBase; export declare const number: (maxMin?: number) => NumberBase; export declare const date: () => DateBase; export declare const boolean: (msg?: string) => BooleanBase; export declare const object: <T>(rules?: T, message?: string, each?: false) => ObjectBase<T>; export {};