allege
v2.0.1
Published
Make complex conditionals easier to read and write
Downloads
85
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');
// --> false
isNotIn(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);
// --> false
Multiple 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 input
s are referentially equal (===
) to the possibility
item.
allege.these(5, 5, 5, 5).areAll(5);
// --> true
allege.these(5, 4, 5, 4).areAll(4);
// --> false
areAllNot(possibility) -> boolean
Determines whether all input
s are referentially unequal (!==
) to the possibility
item.
allege.these(5, 5, 5, 5).areAllNot(4);
// --> true
allege.these(5, 5, 5, 5).areAllNot(5);
// --> false
Installation
Grab this module from npm
with the following command:
yarn add allege
Then 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 test
Building 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