2.0.0 • Published 7 years ago
vlad v2.0.0
vlad
A simple asynchronous JSON validator with a chainable syntax.
npm install vlad
Example
Object Validation
var validate = vlad.promise({
email: vlad.string,
location: vlad({
long: vlad.number.required.within(-180, 180),
lat: vlad.number.required.within(-90, 90)
}),
tags: vlad.array.of(vlad.string.within(3, 10))
});
validate(validObject).then(function(value) {
/*{
email: "me@example.com",
location: {
long: 70.235,
lat: 60.234
},
tags: ['foo', 'bar']
}*/
});
validate(invalidObject).catch(function(err) {
/* GroupValidationError {
message: "Invalid object.",
fields: {
email: FieldValidationError {message: '...'},
location: GroupValidationError {
message: 'Invalid object.',
fields: {
long: FieldValidationError {message: '...'}
}
},
tags: ArrayValidationError {
message: 'Invalid array.',
fields: [
undefined,
FieldValidationError {message: '...'},
undefined
]
}
}
}*/
});
Express Middleware
router.post('/',
vlad.middleware('body', {
email: vlad.string.required.pattern(/.*@.*/)
}),
function(req, res) {
res.send(200);
}
);
router.use(function(err, req, res, next) {
if (err instanceof vlad.ValidationError) {
res.status(400).send(err.toJSON());
} else {
res.sendStatus(500);
}
});
Subvalidators
var validate = vlad({
field: vlad.string.required
});
validate({ field: 'hello world' }).then( /* handle */ );
validate.field('hello world').then( /* handle */ )
API Reference
2.0.0
7 years ago
1.3.4
7 years ago
1.3.2
7 years ago
1.3.1
7 years ago
1.3.0
7 years ago
1.2.0
8 years ago
1.1.0
8 years ago
1.0.2
8 years ago
1.0.1
8 years ago
1.0.0
8 years ago
0.19.1
8 years ago
0.19.0
8 years ago
0.18.0
8 years ago
0.17.0
8 years ago
0.16.1
9 years ago
0.16.0
9 years ago
0.15.0
9 years ago
0.14.0
9 years ago
0.13.0
9 years ago
0.12.1
9 years ago
0.12.0
9 years ago
0.11.0
9 years ago
0.10.0
9 years ago
0.9.2
9 years ago
0.9.1
9 years ago
0.9.0
9 years ago
0.8.0
9 years ago
0.7.0
9 years ago
0.6.0
9 years ago
0.5.3
9 years ago
0.5.2
9 years ago
0.4.1
9 years ago
0.3.1
9 years ago
0.3.0
9 years ago