"Do or do not. There is no try." - Yoda
A tiny validation library for your app
npm add yooda
import validator from 'yooda;
const requestBodySchema = {
name: {
type: 'string',
required: true
},
age: {
type: 'number',
required: true
}
};
const requestBody = {
name: 'Ademola Adegbuyi',
age: 23
};
try {
const validate = validator(requestBodySchema);
validate(requestBody);
} catch (err) {
// Handle error properly
}
That's it, really. If the value doesn't meet the requirement, it throws an error and you can handle it as you want.
- Domain: This is more like a plugin, to ensure some other personal requirements are met asides from the regular "required" and "type". We definitely cannot offer all kinds of edge-cases so we're giving you a buffet; Be your own boss, control the nature of the validation.
Here's how to use it:
const shouldStartWithA = value => value.startsWith('a');
// attach it to your schema
const requestBodySchema = {
name: {
type: 'string',
required: true,
domain: [shouldStartWithA]
}
};
const validate = validator(requestBodySchema);
validate(requestBody);
The convention you decide to pick is up to you. In the test files, we have an object of domains with camel case names. Whatever works best for you 😉
MIT