0.0.2 • Published 8 years ago

j-validator v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
8 years ago

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.