A Javascript object validator for custom validations
Documentation: Abolish Documentation
Playground: Abolish Playground
const {Abolish} = require('abolish');
const abolish = new Abolish();
// Use abolish email validator
const EmailValidator = require('abolish/validators/string/email');
abolish.addValidator(EmailValidator);
// Add Custom Validtor
abolish.addValidator({
name: 'addProtocol',
validator: (url, option, {modifier}) => {
// Check if url does not have required protocol
if (url.substring(0, option.length) !== option) {
// Add protocol
modifier.setThis(`${option}://${url}`)
}
return true
}
});
// Object to validate
const form = {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'wildstream.ng'
};
const [error, validated] = abolish.validate(form, {
$: 'required|typeOf:string', // $ or '*' is considered as wildcard
email: 'isEmail',
username: '*',
age: 'typeOf:number|max:20',
url: 'addProtocol:http'
});
console.log({form, validation: {error, validated}});
{
form: {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'wildstream.ng'
},
validation: {
error: null,
validated: {
email: '[email protected]',
username: 'john_doe',
age: 18,
url: 'http://wildstream.ng'
}
}
}