validate objects against a schema.
npm install --save esquema
npm test
...
var e = require('esquema');
var validateUser = e({
_id: {
type: Number,
required: true
},
name: String,
email: {
type: String,
required: true,
validator: function (value) {
return /foo/.test(value);
}
}
});
var user1 = {_id: 123, email: 'foo@bar.com', name: 'joe', foo: 'bar'};
var user2 = {email: 'foo@bar.com'};
var user3 = {_id: 456, email: 'abc@def.gh', foo: 'bar'};
var res1 = validateUser(user1);
console.log(res1); // {ok: true, errors: []}
var res2 = validateUser(user2);
console.log(res2); // {ok: false, errors: [{path: '_id', reason: 'missing required property'}]}
var res3 = validateUser(user3);
console.log(res3); // {ok: false, errors: [{path: 'email', reason: 'validation error'}]}
...
MIT