arguguard
Strict argument validation with testable errors
Install
Install with npm
$ npm i arguguard --save-dev
Usage
arguguard takes three arguments.
arguguard(label, [description1, description2, ...], arguments)
- A string label such as
myFunction()
that will be used in error reporting - An array of descriptions. Each description can either be one of 4 things
- A lower case string (ex.
"number"
or"boolean"
) in which atypeof
check will be performed - An upper case string (ex.
"Object"
or"MyClass"
) in which ainstanceof
check will be performed - An
[]
(ex."[]number"
or"[]MyClass"
) in which case the top level argument must be an array, and every instance of that array must pass either atypeof
orinstanceof
check - An instance of the
Validator
class (require('arguguard/lib/Validator')
)
- A lower case string (ex.
- The arguments to test.
var arguguard = var Validator = var aboveThreeValidator = 'AboveThree' { return number > 3 } { } >> Arguguard:User:ArgumentsLengthError: argumentslength should be "4" received "0" >> Arguguard:User:ArgumentsLengthError: argumentslength should be "4" received "5" >> Arguguard:User:ArgumentTypeError: arguments0 type should be "number" received "string" >> Arguguard:User:ArgumentInstanceError: arguments1 >> Arguguard:User:ArgumentInstanceError: myFunction() arguments[2] constructor should be "Array", received "MyClass" myFunction(1, myClass, [myClass, MyClass], 4)>> Arguguard:User:ArgumentInstanceError: myFunction() arguments[2][1] constructor should be "MyClass", received "Function" myFunction(1, myClass, [myClass, myClass], 3)>> Arguguard:User:ValidationError:AboveThree: myFunction() arguments[3] should be "above 3", received "3" myFunction(1, myClass, [myClass, myClass], 4)>> ✓
Api Errors
The arguguard
api is defensively programmed and will throw errors if called with the wrong arguments
>> Arguguard:Api:ArgumentsLengthError: argumentslength should be "3" received "2" >> ✓
Settings
Disable (Get a speed boost)
arguguardoptionsdisabled = true
Allow for Synonymous Constructors (such as when you have two versions of a dependency)
arguguardoptionsallowSynonymousConstructors = true
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Author
License
Copyright © 2017 Licensed under the MIT license.
This file was generated by readme-generator on January 21, 2017.