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.
$ npm install --save throwif
const throwif = require('throwif');
throwif(str, '!== string');
//=> TypeError: Expected a string
throwif(500, '!<=', 99);
//=> Error: 500 !<= 99
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.
Type: string|number|object|function|symbol
This is the item you want to evaluate for type, equality, etc.
Type: String
Format: <equality-operator> <type>
Use this as a shorthand for the typeof
operator.
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');
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.
'==='
'!=='
'>'
'!>'
'>='
'!>='
'<'
'!<'
'<='
'!<='
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
-
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.
- detonate Go boom! with a clean, compact syntax for your javascript type checking & error throwing.
MIT © Michael Wuergler