String validation and sanitization (validator.js) using promises
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
index.js
package.json
tests.js
validator-as-promised.sublime-project

README.md

Promises/A+ logo

Validator.js for Promises

NPM version Build Status Downloads License

String validation (validator.js) and custom validators using promises

Usage

All standard validator.js methods are available.

Simply add the Async suffix to use the promise-based version. The first parameter is always the error message string which will be thrown as an error if the promise is rejected.

Method isAlphanumeric(value) becomes isAlphanumericAsync(errorMsg, value)

Example:

const validator = require('validator-as-promised');

// Synchronous method
if( validator.isAlphanumeric('abcdef') ) {
	console.log('String contains alphanumeric characters.');
}

// Asynchronous method (Promise)
validator.isAlphanumericAsync('String should contain alphanumeric characters!', 'abcdef').then((result) => {
	console.log('Success!');
}).catch((ex) => {
	console.log(ex);
});

Custom Validators

You can define your own validation functions using the built-in .custom(errorMsg, func [, args...]) method:

// Example 1
validator.custom('Should be true!', (val) => { return val === true; }, true).then((result) => {
	console.log('Value is true!');
}).catch((ex) => {
	console.log('Value was not true!');
});

// Example 2
validator.custom('First number should be lower than second number!', (num1, num2) => { return num1 < num2; }, 34, 87).then((result) => {
	console.log('Validation succeeded!');
}).catch((ex) => {
	console.log('Validation failed!');
});

The custom function should return a truthy value or a promise. Synchronous functions will be promisified automatically.

Unlike validator.js methods which only accepts string inputs, the custom validators can accept values of any type.

Tests

$ npm test

License

MIT