0.0.2 • Published 8 years ago
j-validator v0.0.2
J-Validator
npm install j-validator
validates a given json object against a given property.
var property={
key1: 1,
key2: {
_:'1&&noExtraKey',
subKey1: 0,
subKey2: 1
},
key3: 'isArray',
key4: '0||isFunc',
key5: function(currentNode,currentProperty,originalObject){
return true;
}
};
validate(obj,property);// returns true||false only
validateDeep(obj,property);//returns a list of validation messages
addValidator(name,function(currentNode,currentProperty,originalObject){
})// register a frequently used method, which will be considered as if it was built-in.
list of built-in validate method available are
- 0, null
- 1, not null
- isArray
- isFunc
- isNum
- isString
- isBoolean
- notEmptyStr
- noExtraKey // returns false if corresponding validator property does not present
Sample input
import {addValidator,validateDeep} from 'j-validator';
addValidator('m',function(node){
return false;
})
var o={
key1:1,
key2:{
key2sub1:'asd',
key2sub2:true
},
key3:null,
key4:'undesired'
};
var v={
_:'noExtraKey',
key1:'m&&isNum',
key2:{
_:'1',
key2sub1:'isString&&1',
key2sub2:'isBoolean'
},
key3:'(isString&&isNum)||0'
};
validateDeep(o,v);
//outputs below
{"result":false,
"msg":[
{"path":"_","validates":"noExtraKey","value":{"key1":1,"key2":{"key2sub1":"asd","key2sub2":true},"key3":null,"key4":"undesired"},"level":"ERROR","info":"method validation failed"},
{"path":"_.key1","validates":"m","value":1,"level":"ERROR","info":"method validation failed"},
{"path":"_.key3","validates":"isString","value":null,"level":"ERROR","info":"method validation failed"}
]
}
WRITTEN in ES6 syntax, use babel-loader to translate in case of es5 environment.