Utilities to compose predicates
npm install @vates/predicates !License  
> Utilities to compose predicates
Installation of the npm package:
```
> npm install --save @vates/predicates
undefined predicates are ignored and undefined is returned if all predicates are undefined, this permits the most efficient composition:
`js
const compositePredicate = not(every(undefined, some(not(predicate2), undefined)))
// ends up as
const compositePredicate = predicate2
`
Predicates can also be passed wrapped in an array:
`js`
const compositePredicate = every([predicate1, some([predicate2, predicate3])])
this and all arguments are passed to the nested predicates.
> Returns a predicate that returns true iff every predicate returns true.
`js
const isBetween3And7 = every(
n => n >= 3,
n => n <= 7
)
isBetween3And10(0)
// → false
isBetween3And10(5)
// → true
isBetween3And10(10)
// → false
`
> Returns a predicate that returns the negation of the predicate.
`js
const isEven = n => n % 2 === 0
const isOdd = not(isEven)
isOdd(1)
// true
isOdd(2)
// false
`
> Returns a predicate that returns true iff some predicate returns true.
`js
const isAliceOrBob = some(
name => name === 'Alice',
name => name === 'Bob'
)
isAliceOrBob('Alice')
// → true
isAliceOrBob('Bob')
// → true
isAliceOrBob('Oscar')
// → false
``
Contributions are _very_ welcomed, either on the documentation or on
the code.
You may:
- report any issue
you've encountered;
- fork and create a pull request.