node package manager

validity

Validator framework for object validation

validity - Validation framework

Validation helpers for validating the properties of an object.

As of version 1 all validators have been stripped out and should be required individually as needed.

Validity now only consists of three helper functions that should be used by validator authors. You won't need to include validity directly into you projects any longer unless you need to create a new validator.

npm install --save validity
npm test
 
var validity = require('validity')
  , createValidator = validity.createValidator
  , booleanToCallback = validity.booleanToCallback
  , requiredValidator
  , defaultMessageValidator
 
// The simple return boolean type validator we want to convert into a validity style 
function isEven (value) {
  return value % 2 === 0
}
 
// Create the validator converting a simple boolean validation function 
requiredValidator = createValidator(booleanToCallback(isEven))
 
// This sets the already composed validator with a default message 
defaultMessageValidator = requiredValidator('#{name} is required')
 
// Tack a composed function onto the default validator function that allows you 
// to change the default error message. 
defaultMessageValidator.setFailureMessage = requiredValidator
 
module.exports = defaultMessageValidator
 

This can be wrapped up using the createValidatorAllowingFailureMessageOverride helper.

var validity = require('validity')
  , requiredValidator = validity.createValidator(validity.booleanToCallback(isValid))
 
module.exports = validity.createValidatorAllowingFailureMessageOverride(requiredValidator, '#{name} is required')
 

The first argument of a validator callback should be null unless expected errors outside of validation occurred. Errors such as IO errors or system errors should be reported and dealt with internally. It may cause an security issue if details of such errors are returned to the user.

Validators should be built as individual npm modules so that applications can pick and choose which they use. Validators should be added to npm repo with the validity- prefix so they can be found with a quick npm search (or via the cli: npm search validity-).

Validator authors should upgrade their validators to use the helper functions from validity and allow easy overriding of failure messages.

Validators that currently exist and can be used:

* - These modules replace functionality previously found in validity pre version 1

Paul Serby follow me on twitter @serby

ISC