Validate arguments, declarative.
npm install validate-arguments
The code itself depends on lodash
, and will propably run just fine in the browser using require.js
.
This module levarages some of the validation methods from lodash
, but by offering you a declaritive syntax and nice error strings:
- array
- boolean
- date
- element
- empty
- finite
- function
- null
- number
- object
- plainObject
- regexp
- string
And adds the following additional ones:
- whole ( An integer )
- real ( A real number that isn't NaN )
- natural ( Positive integer )
- primitive ( 'number', 'boolean', 'string' )
When passing a constructor (function) as an isa
, an instanceof
check is done.
var Validate = require('validate-arguments');
function doSomething(withNamedArguments) {
var args = Validate.named(arguments, {
number: 'whole',
name: 'string'
callback: 'function'
options: {
isa: 'plainObject',
optional: true
},
validation: Validate // performs an instanceof
});
if (!args.isValid()) {
throw args.errorString();
}
// continue safely
}
Look at the test cases for more examples.
Node that validations may be nested:
var args = Validate.named(arguments, {
address: {
primary: {
street: 'string',
housenumber: 'number'
}
},
});
Returns a validationObject
for further inspection. named
should be a non-empty plain Object
, containing all the keys documented in the validationSpec
.
The validationSpec
should be an object, where the keys match the desired input. You may use the form { thing: 'string' }
over { thing: { isa: 'string' } }
.
When passed an arguments
object instead of a plain object, the first key of the arguments is used.
Validate positional arguments, either an array or arguments object. Spec may be provided as an array in the second argument, or a variable number of arguments.
Validate arguments, freeform.
If the second argument contains a string, it is treated as a positional argument with one element.
Both validateObject
and validatePositional
return a validationObject
with the following methods:
- isValid: A boolean indication the validness
- errors: An array containing positions or keys of invalid arguments
- get: Retrieve values from the original input, array index or key
- values: Return an array of values ( not that usable )
- errorString: An error string explaining what went wrong (verbosely)
cd validate-arguments-js
npm install
npm test