silvie
Version:
Typescript Back-end Framework
26 lines (25 loc) • 897 B
TypeScript
export type TRuleHandler = (value: any, ...params: any[]) => boolean;
export type TRuleMessenger = (result: any) => string | [];
export type TRule = {
name: string;
handler: TRuleHandler;
messenger?: TRuleMessenger;
params: any[];
};
export default class Validator {
data: Record<string, any> | any[];
rules: Record<string, TRule[]>;
messages: Record<string, string | string[]>;
errors: Record<string, any>;
hasErrors: boolean;
generateNestedErrors: boolean;
static findData(data: any, path: string[], traversed?: string[]): {
path: string[];
value: any;
}[];
private static parseRules;
private placeErrorMessage;
private executeRules;
validate(): void;
constructor(data: Record<string, any> | any[], rules: Record<string, string>, messages?: Record<string, string | string[]>, generateNestedErrors?: boolean);
}