Validator framework for object validation

Downloads in past


471.1.17 years ago12 years agoMinified + gzip package size for validity in KB


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.


npm install --save validity

Run Tests

npm test


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 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