Skip to content

String validation and sanitization (validator.js) using promises

License

Notifications You must be signed in to change notification settings

NGPixel/validator-as-promised

Repository files navigation

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

About

String validation and sanitization (validator.js) using promises

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published