UNPKG

@calf/common

Version:
223 lines (222 loc) 6.09 kB
import { ICustomValidationFn } from "../interfaces/custom-validation-fn.interface"; import { Boundaries } from "../enums/boundaries.enum"; /** * Validation result * @description Object being handled between function calls */ export declare class ValidationResult<TData, TMessage = string> { data?: TData; isValid: boolean; errors: TMessage[]; warnings: TMessage[]; messages: TMessage[]; /** * Constructor * @param data */ constructor(data?: TData); /** * Add error * @param error */ addError(error: TMessage): void; /** * Add error * @param error */ addUniqueError(error: TMessage): void; /** * Add warning * @param warning */ addUniqueWarning(warning: TMessage): void; /** * Add warning * @param warning */ addWarning(warning: TMessage): void; /** * Add message * @param message */ addMessage(message: TMessage): void; /** * Add message * @param message */ addUniqueMessage(message: TMessage): void; /** * Append validations * @param validations */ append(...validations: ValidationResult<any, TMessage>[]): boolean; /** * Append unique validations * @param validations */ appendUnique(...validations: ValidationResult<any, TMessage>[]): boolean; /** * Append as warnings * @param validations * @description Append validations and converts its * errors to warnings. Does not modify validation flag */ appendAsWarnings(...validations: ValidationResult<any, TMessage>[]): boolean; /** * Validate * @description Validate using custom validation function * @param fn * @param error * @returns */ validate(fn: ICustomValidationFn<TData>, error: TMessage): boolean; /** * Is true * @param selector * @param error */ isTrue(selector: (d: TData) => boolean, error: TMessage): boolean; /** * Is false * @param selector * @param error */ isFalse(selector: (d: TData) => boolean, error: TMessage): boolean; /** * Must * @param expression * @param error */ must(expression: boolean, error: TMessage): boolean; /** * Is defined * @param selector * @param error */ isDefined(selector: (d: TData) => any, error: TMessage): boolean; /** * Is not empty * @param selector * @param error */ isNotEmpty(selector: (d: TData) => string | any[], error: TMessage): boolean; /** * Is defined and not empty * @param selector * @param error */ isDefinedAndNotEmpty(selector: (d: TData) => string | any[], error: TMessage): boolean; /** * Contains * @param selector * @param value * @param error */ contains<TValue>(selector: (d: TData) => string | TValue[], value: TValue, error: TMessage): boolean; /** * Starts with * @param selector * @param substring * @param error */ startsWith(selector: (d: TData) => string, substring: string, error: TMessage): boolean; /** * Ends with * @param selector * @param substring * @param error */ endsWith(selector: (d: TData) => string, substring: string, error: TMessage): boolean; /** * Is of length * @param selector * @param length * @param error */ isOfLength(selector: (d: TData) => string | any[], length: number, error: TMessage): boolean; /** * Is longer * @param selector * @param length * @param error */ isLonger(selector: (d: TData) => string | any[], length: number, error: TMessage): boolean; /** * Is shorter * @param selector * @param length * @param error */ isShorter(selector: (d: TData) => string | any[], length: number, error: TMessage): boolean; /** * Is longer or of length * @param selector * @param length * @param error */ isLongerOrOfLength(selector: (d: TData) => string | any[], length: number, error: TMessage): boolean; /** * Is shorter or of length * @param selector * @param length * @param error */ isShorterOfLength(selector: (d: TData) => string | any[], length: number, error: TMessage): boolean; /** * Is equal * @param selector * @param value * @param error */ isEqual<V>(selector: (d: TData) => V, value: V, error: TMessage): boolean; /** * Is greater * @param selector * @param value * @param error */ isGreater(selector: (d: TData) => number, value: number, error: TMessage): boolean; /** * Is between * @param selector * @param start * @param boundaries * @param end * @param error */ isBetween(selector: (d: TData) => number, min: number, max: number, boundaries: Boundaries, error: TMessage): boolean; /** * Is greater or equal * @param selector * @param value * @param error */ isGreaterOrEqual(selector: (d: TData) => number, value: number, error: TMessage): boolean; /** * Is lesser * @param selector * @param value * @param error */ isLesser(selector: (d: TData) => number, value: number, error: TMessage): boolean; /** * Is lesser or equal * @param selector * @param value * @param error */ isLesserOrEqual(selector: (d: TData) => number, value: number, error: TMessage): boolean; /** * Is match * @param selector * @param regexp * @param error */ isMatch(selector: (d: TData) => string, regexp: RegExp, error: TMessage): boolean; /** * Process result * @param result * @param message */ private processResult; }