1.0.4 • Published 6 years ago
validator-wrapper v1.0.4
Introduction
A Nodejs wrapper of validator.js to support validation chaining and messages
Version 1.0.3
- Add
fas the alias ofpreparefunction - Add `x' as the alias of 'eval' function
Features
- Method chaining
- Batch validations with messages and additional info (tag)
- Able to call any validation method of validator.js with options
valid_wrapper.prepare("isInt", { min: 10, max: 99 }).eval('Age must be between 10 and 99')
//use alias
valid_wrapper.f("isInt", { min: 10, max: 99 }).x('Age must be between 10 and 99')Getting Started
Installation
npm install validator-wrapperUsage
var valid_wrapper = require('validator-wrapper')
var data = {
email : 'trietho@gmail.com',
email2: "bademail",
firstname: "Triet",
lastname: "",
age: 1,
password: "trietho@gmail.com",
password2: "123456",
}
//the default tag is 'danger', set options to change the default tag
valid_wrapper.options({tag: 1})
valid_wrapper.pick(data.email)
.empty('Main email must be not empty') //this message will bot be included in the validation results
.email('Main email is invalid') //this message will not be included in the validation results
.pickNext(data.email2)
.email('Second email is invalid')
.pickNext(data.firstname)
.empty('First name must be not empty') //this message will not be included in the validation results
.pickNext(data.lastname)
.length({min:3}, "Last name must has at least 3 characters")
.pickNext(data.password)
.equals(data.email, 'Password must be different from email', 'warning')
.prepare("isAlpha").eval('Password contains letters a-zA-Z only')
.diff(data.password2, 'Passwords do not match')
.pickNext(data.age)
.f("isInt", { min: 10, max: 99 }).x('Age must be between 10 and 99', 2)
.pickNext(data.notexist)
.empty('Notexist must be exist :)')
console.log(JSON.stringify(valid_wrapper.messages, null, 4))
/* ouput
[
{
"message": "Second email is invalid",
"tag": 1
},
{
"message": "Last name must has at least 3 characters",
"tag": 1
},
{
"message": "Password must be different from email",
"tag": "warning"
},
{
"message": "Password contains letters a-zA-Z only",
"tag": 1
},
{
"message": "Passwords do not match",
"tag": 1
},
{
"message": "Age must be between 10 and 99",
"tag": 2
},
{
"message": "Notexist must be exist :)",
"tag": 1
}
]
*/API references
functions
pick(content): set the first content for validating and clear existing messagespickNext(content): set the next content for validating and keep existing messageslength(options, message[, tag]): if not valid, add the message into validation resultsemail(message[,tag]): if not email, add the message into validation resultsempty(message[, tag]): if empty, add the message into validation results, and ignore other validations untilpickNextequals(target, message[, tag])diff(target, message[, tag])custom(condition, message[, tag]): if condition is true, add the message into validation resultsprepare(method, options): selecta method of validatorjsand its options that to be executed inevalmethod- Alias:
ffunction
- Alias:
eval(message[, tag]): execute themethoddefined in thepreparefunction and add the message into validation results if the returned value of validator is false- Alias:
xfunction
- Alias:
fields
messagescontains the validation resultsvalidatordirect access to validatorjs module