@calf/common
Version:
Common module of Calf framework.
203 lines (202 loc) • 5.62 kB
TypeScript
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 warning
* @param warning
*/
addWarning(warning: TMessage): void;
/**
* Add message
* @param message
*/
addMessage(message: TMessage): void;
/**
* Append validations
* @param validations
*/
append(...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;
}