@kodepandai/node-input-validator
Version:
validation library for nodejs, inspired by laravel.
138 lines (137 loc) • 4.38 kB
TypeScript
/// <reference types="node" />
import { Langs, AttributeValidationMinimalInfo, ValidationRuleContract, ValidationRulesContract, ValidationRuleStringNotationContract, MessagesContract, NiceNamesContract, ValidatorErrorContract, ValidatorErrorsContract, ValidationRuleArrayStringNotationContract } from "./contracts";
/**
* registerRules will replace old registered rules
* @param rules validation rules
*/
export declare function registerRules(rules: any): any;
/**
* registerPostRules will replace old post validation rules
* @param rules post validation rules
*/
export declare function registerPostRules(rules: any): any;
export declare abstract class ValidatorAbstract {
private inputs;
private rules;
private customMessages;
implicitRules: Array<string>;
errors: ValidatorErrorContract | ValidatorErrorsContract;
localNiceNames: NiceNamesContract;
hasCustomMessages: boolean;
hasNestedRules: boolean;
parsedRulesCollection: ValidationRulesContract;
lang: Langs;
postRules: Array<any>;
breakWhenFailed: boolean;
shouldRelease: boolean;
implicitInputs: NodeJS.Dict<any>;
/**
* init validator
* @param inputs
* @param rules
* @param customMessages
*/
constructor(inputs?: any, rules?: ValidationRulesContract | ValidationRuleStringNotationContract | ValidationRuleArrayStringNotationContract, customMessages?: MessagesContract);
/**
* globally should break/bail on failed validation or not
* @param {boolean} sure
*/
static bailable(sure: boolean): void;
/**
* enable/disable multiple errors on current instance only
* @param {boolean} sure
*/
bail(sure: boolean): void;
/**
* release attribute from rules validation
*/
release(): void;
/**
* check is instance is bailable or not
* @returns {boolean}
*/
isBailable(): boolean;
/**
* allows a custom rule to be added as an implicit rule for the instance only
* @param {String} ruleName
*/
addImplicitRule(ruleName: string): void;
addRules(rules?: ValidationRulesContract | ValidationRuleStringNotationContract | ValidationRuleArrayStringNotationContract): void;
postRuleApply(rule: any): Promise<any>;
/**
* add post rule
*
* post rule is applied to whole input and is used to check constraints
* across multiple fields
*
* @param {*} rule
*/
addPostRule(rule: any): void;
/**
* add set of post rules
*
* @param {string[]} postRulesObj
*/
addPostRules(postRulesObj: any): void;
/**
* parse provided rules and inputs
*/
parse(): void;
parseRules(): void;
fillMissingAttributes(key: string): void;
parseInputs(): void;
/**
* apply this set of filters to inputs
* @param filters set of filters
*/
applyFilters(filters: any): void;
/**
* apply post validation rules
* @param rules post rules
*/
applyPostRules(rules: any): void;
/**
* validate inputs againest rules
*/
validate(inputs?: any): Promise<boolean>;
/**
* apply rules on attribute
* @param attrName attribute name
* @param attrRules attribute rules
*/
validateAttribute(attrName: string, attrRules: Array<ValidationRuleContract>): Promise<void>;
/**
* this will create error object for attribute
* @param params info object
*/
createAttributeError(params: AttributeValidationMinimalInfo): void;
/**
* this will return parsed error message as per rule or input
* @param params object with attr and rule name, value, args
*/
createAttributeErrorMessage(params: AttributeValidationMinimalInfo, useDefaultMessage?: boolean): string;
/**
* get attribute value by its name
* @param attr attribute name
*/
attributeValue(attr: string): any;
/**
* check if attribute has value
* @param attr attribute name
*/
doAttributeHasValue(attr: string): boolean;
/**
* does attribute present in given inputs
* @param attr attribute name
*/
isAttributePresent(attr: string): boolean;
/**
* does we have any dirty/failed input
*/
hasErrors(): boolean;
/**
* get validation errors
*/
getErrors(): any;
niceNames(niceNames: NiceNamesContract): void;
}