@re-flex/form-validator
Version:
Re-flex UTILS _> form-validator
106 lines (105 loc) • 4.81 kB
TypeScript
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 {};