node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org »

selective

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

npm install selective

Append one of the following to each option to specify a requirement for that parameter:

* Represents an optional parameter.
# Represents a group (if one field from a group is in req.query then require the entire group).

var selective = require('selective');
 
var params = {
  name: 'bradley',
  email: 'bradley@example.com',
  random: 'random param'
}
 
selective.select(params, ['#name', '#email', '#password', '*location', 'phone'], function(err, selected){
  if(err) console.log(err)
  else console.log(selected);
});

Will output:

[ { field: 'password', type: 'Missing Field' },  // 'password' is part of a group with a param sent (name).
  { field: 'phone', type: 'Missing Field' },     // 'phone' is a required field.
  { field: 'random', type: 'Invalid Field' } ]   // 'random' is an undefined option.  
  
  // An error was not thrown for location as it is an optional field.

Run the tests make test

Build Status