String validation (validator.js) and custom validators using promises
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); });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.
$ npm testMIT