precondition
Precondition is a utility to simplify common precondition or state checking. It's useful for signaling to calling methods when they've made invalid calls to a method.
Usage
There are four available functions:
precondition.checkDefined(expression [, messageTemplate [, messageArgs...]])
for throwing reference errorsprecondition.checkType(expression [, messageTemplate [, messageArgs...]])
for throwing type errorsprecondition.checkRange(expression [, messageTemplate [, messageArgs...]])
for throwing range errorsprecondition.check(expression [, errorType] [, messageTemplate [, messageArgs...]])
for throwing custom errors
expression
is a boolean value which determines whether the precondition will throw an error or not.
messageTemplate
is a message with 0 or more '%s' placeholders for message arguments
messageArgs
is a variable argument (0 or more) to fill the placeholders in the message template
errorType
is used for throwing custom error objects. These objects should inherit from Error
.
Examples
// Things that should passprecondition; // returns "anything"precondition; // returns trueprecondition; // returns trueprecondition; // returns trueprecondition; // throws true // Things that shouldn't passprecondition; // throws ReferenceErrorprecondition; // throws TypeErrorprecondition; // throws RangeErrorprecondition; // throws Errorprecondition; // throws ReferenceError // Messagesprecondition; // throws ReferenceError with a message of "This doesn't look right."precondition; // throws ReferenceError with a message of "This doesn't look right."precondition; // throws ReferenceError with a message of "This doesn't look right." // What real use may look likevar { precondition; precondition; return number1 + number2;}; ; // returns 30; // throws RangeError
Developing
precondition uses grunt to build.
grunt
- Builds the standard and minified version of precondition in the build foldergrunt test
- Builds precondition and runs unit tests (requires PhantomJS)