node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

validity

validity - Validation framework

NPM Details

build status

Validation helpers for validating the properties of an object.

Change log

Version 1

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.

Installation

npm install --save validity

Run Tests

npm test

Usage

Simple Boolean Return Validators

 
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')
 
module.exports = validity.createValidatorAllowingFailureMessageOverride(validity.booleanToCallback(isValid), '#{name} is required')
 

Unexpected Errors

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

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

Credits

Paul Serby follow me on twitter @serby

License

ISC