acceptance

Validate dynamic parameters against a predefined schema

Validate parameters from an object (such as express's req.query) and return any errors based on a schema defined.

npm install acceptance

Any parameters not defined in the schema will be discarded in the output a.accepted

var accept = require('acceptance').accept;
 
var schema = {
  name: {
    required: true,
    validation: { regex: /^[a-zA-Z0-9]+$/, message: 'Not alpha numeric' }
  },
  phone: {
    required: false,
    validation: { regex: /^-?[0-9]+$/, message: 'Not a valid integer' }
  },
  location: {
    required: true,
    validation: false
  }
}
 
var params = { name: 'bradley', phone: '012345hello', random: 'a random param' };
 
var a = accept(params, schema);
if(a.errors) {
  console.log(a.errors);
}
else {
  console.log(a.accepted);
}

Will output:

[ { field: 'phone', message: 'Not a valid integer' }, // Invalid match with regex
  { field: 'location', message: 'Missing Field' } ]   // Not present in the params given

Run the tests make test