throwif

0.0.3 • Public • Published

throwif

Super-compact syntax for your type checking and error throwing.

Build Status Coverage Status

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 the typeofStr.

    // 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

Package Sidebar

Install

npm i throwif

Weekly Downloads

1

Version

0.0.3

License

MIT

Last publish

Collaborators

  • radiovisual