its
Its 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:
its(expression [, errorType] [, messageTemplate [, messageArgs...]])
for throwing custom errorsits.defined(expression [, messageTemplate [, messageArgs...]])
for throwing reference errorsits.range(expression [, messageTemplate [, messageArgs...]])
for throwing range errorsits.type(expression [, messageTemplate [, messageArgs...]])
for throwing type errorsits.undefined(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.null(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.boolean(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.array(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.object(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.func(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.args(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.string(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.number(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.date(obj [, messageTemplate [, messageArgs...]])
for throwing type errorsits.regexp(obj [, messageTemplate [, messageArgs...]])
for throwing type 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 passits; // returns trueits; // returns trueits; //returns trueits; // returns "anything"itstypetypeof "something" === "string"; // returns trueits; // returns true; // returns true; // throws true // Things that shouldn't passits; // throws ReferenceErroritstypetypeof "something" === "number"; // throws TypeErrorits; // throws RangeError; // throws Error; // throws ReferenceError // Messagesits; // throws ReferenceError with a message of "This doesn't look right."its; // throws ReferenceError with a message of "This doesn't look right."its; // throws ReferenceError with a message of "This doesn't look right." // What real use may look likevar { its; its; its; its; return number1 + number2;}; ; // returns 30; // throws RangeError; // throws TypeError
Developing
its uses grunt to build.
grunt
- Builds the standard and minified version of precondition in the dist foldergrunt test
- Builds precondition and runs unit tests (requires PhantomJS)