throwif
v0.0.3
Published
Super-compact syntax for your type checking and throw statements.
Downloads
5
Maintainers
Readme
throwif
Super-compact syntax for your type checking and error throwing.
Note: This is currently in the experimental phase. Please report any issues and use with caution. Pull requests welcome.
Install
$ npm install --save throwif
Usage
const throwif = require('throwif');
throwif(str, '!== string');
//=> TypeError: Expected a string
throwif(500, '!<=', 99);
//=> Error: 500 !<= 99
Why?
Instead of typing this:
if (typeof str !== 'string') {
throw new TypeError('Expected a string');
}
You can just type this:
throwif(str, '!== string');
Both blocks of code do the exact same thing (they throw the exact same error, if applicable), but throwif does the same with less code, while maintaining readability.
API
throwif(target, equalityOperator|typeofString, [object]);
target
Type: string|number|object|function|symbol
This is the item you want to evaluate for type, equality, etc.
typeofString
Type: String
Format: <equality-operator> <type>
Use this as a shorthand for the typeof
operator.
typeof
Examples
const throwif = require('throwif');
const str = 'foo';
// Not Equal
throwif(str, '!== string');
throwif(str, '!== function');
throwif(str, '!== number');
throwif(str, '!== object');
throwif(str, '!== symbol');
throwif(str, '!== boolean');
throwif(str, '!== undefined');
// Equal
throwif(str, '=== string');
throwif(str, '=== function');
throwif(str, '=== number');
throwif(str, '=== object');
throwif(str, '=== symbol');
throwif(str, '=== boolean');
throwif(str, '=== undefined');
equalityOperator
Type: string
The string version of the equality operator want to use for your rule.
You can show negation with a prepended exclamation point, which is not possible with certain comparison operators in JavaScript, but throwif makes this shortcut available on all comparison and equality operators. Only use operator strings when you want to check equality and comparison, for typeof
operations (to check if an item is a certain type), use typeofString.
'==='
'!=='
'>'
'!>'
'>='
'!>='
'<'
'!<'
'<='
'!<='
Equality Examples
const throwif = require('throwif');
throwif('foo', '!==', 'bar');
//=> Error: "foo" !== "bar"
throwif(42, '===', 42);
//=> Error: 42 === 42
throwif(500, '>', 100);
//=> Error: 500 > 100
throwif(100, '!<=', 99);
//=> Error: 100 !<= 99
Known Limitations
You can't use the equality string to check for
undefined
, you must use thetypeofStr
.// not allowed throwif(str, '===', undefined); // use this instead throwif(str, '=== undefined');
To check for equality between
Symbols
, the following cast takes place:Object(Symbol()).toString();
. If you know of a better way to check equality for Symbols, please open an issue, or submit a pull request.
Related
- detonate Go boom! with a clean, compact syntax for your javascript type checking & error throwing.
License
MIT © Michael Wuergler