node-verifier
Usage
var Verifier = ; // init the rules for verifyvar myValueVerifier = 'type number' 'min_length 1' 'min_value 5';// equalvar myValueVerifier = 'type "number"' 'min_length "1"' 'min_value "5"';// equalvar myValueVerifier = type: 'number' min_length: 1 min_value: 5; // final - verify!myValueVerifier;
Predefined Rules:
You can verify any rule without verifier object
var Verifier = ;var RuleType = VerifierRule; var var rule = 'object'; rule;
You can create your own rules.
There is one required method check (value, params, done)
. It give 3 arguments:
value
- value that need check.
params
- params that you set in constructor.
done
- callback. First argument is validation error (Verifier.Rule.ValidationError
). Second argument is result for error. if you set true then generate ValidationError automatically.
There is one optional function prepareParams(params)
for obtain the fail-fast paradigm. (it call in constructor). if you throw the error - error will arrive in main loop
var Verifier = ; var UserExistsRule = VerifierRule; VerifierRule; var myValidator = 'type object' 'userExists'; myValidator;
You can extend any exists rules
var Verifier = ;var RuleType = VerifierRule; var MyRuleType = RuleType; // register new ruleVerifierRule;
each
For array item validation.
params - rules for verify.
var myValueVerifier = each: 'type number' 'min_length 1' 'min_value 5'; myValueVerifier; myValueVerifier;
no params
check the email format by https://www.npmjs.org/package/email-validator
empty
no params
check value on false, 0, "", null, undefined, [], {}
eq
result of _.isEqual (lodash)
var myVerifier = 'eq 5';// equalvar myVerifier = eq: 5 ; myVerifier; // invalidmyVerifier; // invalidmyVerifier; // valid
exact_length
for string and arrays
param - number
var myVerifier = 'exact_length 5';// equalvar myVerifier = exact_length: 5 ; myVerifier; // invalidmyVerifier; // valid
format
check value on RegExp match
param - regExp (string)
var myVerifier = 'format ^[a-zA-Z][a-zA-Z0-9_.-]*@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$';// equalvar myVerifier = format: /^[a-zA-Z][a-zA-Z0-9_.-]*@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/); myVerifier; // validmyVerifier; // invalid
max_length
for string and arrays
var myVerifier = 'max_length 3';myVerifier; // invalidmyVerifier; // validmyVerifier; // validmyVerifier; // validmyVerifier; // valid (convert to String)myVerifier; // invalid
min_length
for string and arrays
var myVerifier = 'min_length 3';myVerifier; // invalidmyVerifier; // invalidmyVerifier; // validmyVerifier; // validmyVerifier; // valid (convert to String)myVerifier; // invalid
max_value
check number
var myVerifier = 'max_value 3';myVerifier; // validmyVerifier; // valid (convert to float)
min_value
check number.
param - number
var myVerifier = 'min_value 3';myVerifier;
not
params - rule(s) for negation
var myVerifier = not: 'required' 'type number' 'eq 3' ;myVerifier;
required
check this value on undefined only.
params not need.
var myVerifier = required: true;// equalvar myVerifier = 'required'; myVerifier;
type
check on type by Object.prototype.toString.call(value).
param - type name without '[Object' and ']' in lower case
var myVerifier = type: 'object';// equalvar myVerifier = 'type object'; myVerifier;
any
True if any verification branch is valid.
var myVerifier = any: 'type string' contains: "hello" "world" // branch 1 'type number' // branch 2 ;// Equalvar myVerifier = any: branch1: 'type string' contains: "hello" "world" branch2: 'type number' // branch 2 ; myVerifier;
contains
True if any item of haystack array is equal with value
var myVerifier = contains: 1 2 3 4;myVerifier;