custom-validator

0.0.1 • Public • Published

Custom Validator

Friendly object validation using https://github.com/chriso/validator.js. Its extended for async validation.

Requires:

Instalation

Node

npm install custom-validator

Browser

Only manual at the moment, copy files of dist foolder into your project.

Usage

TODO: Explain validator a bit more.

Here is an example that runs on node.js.On browser, you have CustomValidator global object with the same methods as the required object in node.js

For more details, you can look test/test.js file.

var validateMultiple = require('custom-validator').validateMultiple;
 
 
// Populate array of validators
var validators = [
  {
    message: 'Alphanumeric',
    validator: 'isAlphanumeric',
    attr: 'username'
  },
  {
    message: 'Must be between 8 and 12 length',
    validator: 'isLength',
    args: [8, 12],
    attr: 'username'
  },
  {
    message: 'Valid email',
    validator: 'isEmail',
    attr: 'email'
  },
  {
    message: 'Unique email',
    attr: 'email',
    validator: function(email, next){
      // Well... you can make a real async call here, like an AJAX request or Mongo query
      if(email == 'example@example.com')
        next(false);
      else
        next(true);
      }
  }
]
 
// Create a validator object
var validator = validateMultiple(validators);
 
// Create a callback that will be executed after validation
var callback = function(isValid, status){
 
  // Check if the object is valid
  if(isValid == true){
    console.log('The user is valid!');
  } else {
    console.log('Invalid user :(')
  }
 
  // Check the status for each attribute
  console.log(status.username.valid);
  console.log(status.email.valid);
 
  // Check the status of each validation
  console.log(status.username[0].message); // Alphanumeric
  console.log(status.username[0].valid);
 
  console.log(status.username[1].message); // Must be between 8 and 12 length
  console.log(status.username[1].valid);
 
}
 
// Validate
validator({ username: 'abdc1234', email: 'user@example.com' }, callback); // valid
validator({ username: 'abdc1234', email: 'example@example.com' }, callback); // fails on email

Package Sidebar

Install

npm i custom-validator

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • muzk