@kodepandai/node-input-validator
Version:
validation library for nodejs, inspired by laravel.
87 lines (86 loc) • 2.13 kB
TypeScript
/// <reference types="node" />
/**
* validation error object interface
*/
export interface ValidatorErrorAttributeContract {
message: string;
rule: string;
}
/**
* validation errors array interface
*/
export interface ValidatorErrorContract {
[key: string]: ValidatorErrorAttributeContract;
}
export interface ValidatorErrorsContract {
[key: string]: Array<ValidatorErrorAttributeContract>;
}
/**
* validation rule interface
* each validation rule should implement this interface
*/
export interface ValidationRuleContract {
name: string;
handler: Function;
args?: any;
nullable?: boolean;
}
/**
* set of validation rules interface
*/
export interface ValidationRulesContract {
[key: string]: Array<ValidationRuleContract>;
}
/**
* set of string notation validation rules
*/
export interface ValidationRuleStringNotationContract {
[key: string]: string;
}
export interface ValidationRuleArrayStringNotationContract {
[key: string]: Array<string>;
}
/**
* set of methods that rules may need
*/
export interface ValidatorContract {
/**
* get attribute value
* @param attrName attribute name
*/
attributeValue(attrName: string): any;
createAttributeError(params: AttributeValidationMinimalInfo): void;
isAttributePresent(attrName: string): boolean;
release(): boolean;
}
/**
* custom attributes interface
*/
export interface NiceNamesContract {
[key: string]: string;
}
export declare type MessageProviderFuncation = (...args: any) => string;
/**
* messages interface
*/
export interface MessagesContract {
[key: string]: string | MessageProviderFuncation | NodeJS.Dict<string>;
}
export interface MessagesDictContract {
$niceNames: NodeJS.Dict<string>;
$custom: NodeJS.Dict<string>;
$default: string;
[key: string]: string | MessageProviderFuncation | NodeJS.Dict<string>;
}
export interface AttributeValidationMinimalInfo {
attrName: string;
ruleName: string;
attrValue?: any;
ruleArgs?: any;
}
export declare enum Langs {
en_US = "en_US",
pb = "pb",
fa = "fa",
pt_BR = "pt_BR"
}