allege
v2.0.1
Published
Make complex conditionals easier to read and write
Maintainers
Readme
Allege
Make complex conditionals easier to read and write.
Introduction
Sometimes, if statements can get very complex. For example:
if (foo.bar === 'value_a' || foo.bar === 'value_b' || foo.bar === 'value_c' || foo.bar === 'value_d' || foo.bar === 'value_e') {
// do something
}With Allege, you can simplify your if like so:
if (allege.that(foo.bar).isIn(
'value_a',
'value_b',
'value_c',
'value_d',
'value_e'
)) {
// do something
}API & Methods
Allege exposes different functions based on what you're trying to compare.
Single Input Commands
To use these methods, call allege.that() with just a single argument,
like so: allege.that(foo). Then, these methods will be available:
isIn(possibility1, ..., possibilityN) -> boolean
Determines whether foo is referentially equal (===) to any of the possibility items.
allege.that(5).isIn(1, 2, 3, 4, 5, 6);
// --> true
allege.that('hi').isIn('hello', 'good morning', 'sup');
// --> falseisNotIn(possibility1, ..., possibilityN) -> boolean
Determines whether foo is referentially unequal (!==) to all of the possibility items.
allege.that(5).isNotIn(1, 2, 3, 4);
// --> true
allege.that(5).isNotIn(1, 2, 3, 4, 5);
// --> falseMultiple Input Commands
To use these methods, call allege.these() with more than one argument,
like so: allege.these(foo, bar, baz, quux). Then, these methods will be available:
areAll(possibility) -> boolean
Determines whether all inputs are referentially equal (===) to the possibility item.
allege.these(5, 5, 5, 5).areAll(5);
// --> true
allege.these(5, 4, 5, 4).areAll(4);
// --> falseareAllNot(possibility) -> boolean
Determines whether all inputs are referentially unequal (!==) to the possibility item.
allege.these(5, 5, 5, 5).areAllNot(4);
// --> true
allege.these(5, 5, 5, 5).areAllNot(5);
// --> falseInstallation
Grab this module from npm with the following command:
yarn add allegeThen you can use it in your project like so:
import allege from 'allege';
if (allege.that(5).isNotIn(1,2,3)) {
// do something
}
// or:
import { that, these } from 'allege';
if (that(5).isNotIn(1,2,3)) {
// do something
}Versioning
This module follows SemVer.
License
MIT. See the LICENSE file for more details.
Testing
You can execute the existing test suite by running the following in your terminal:
yarn install
yarn testBuilding From Source
The code that resides in the index.js file is transpiled from an ES6 source. The original source
files reside in the src/ directory. These can be built with the following command:
yarn build