1.1.0 • Published 2 years ago

@vates/predicates v1.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

@vates/predicates

Package Version License PackagePhobia Node compatibility

Utilities to compose predicates

Install

Installation of the npm package:

> npm install --save @vates/predicates

Usage

undefined predicates are ignored and undefined is returned if all predicates are undefined, this permits the most efficient composition:

const compositePredicate = not(every(undefined, some(not(predicate2), undefined)))

// ends up as

const compositePredicate = predicate2

Predicates can also be passed wrapped in an array:

const compositePredicate = every([predicate1, some([predicate2, predicate3])])

this and all arguments are passed to the nested predicates.

every(predicates)

Returns a predicate that returns true iff every predicate returns true.

const isBetween3And7 = every(
  n => n >= 3,
  n => n <= 7
)

isBetween3And10(0)
// → false

isBetween3And10(5)
// → true

isBetween3And10(10)
// → false

not(predicate)

Returns a predicate that returns the negation of the predicate.

const isEven = n => n % 2 === 0
const isOdd = not(isEven)

isOdd(1)
// true

isOdd(2)
// false

some(predicates)

Returns a predicate that returns true iff some predicate returns true.

const isAliceOrBob = some(
  name => name === 'Alice',
  name => name === 'Bob'
)

isAliceOrBob('Alice')
// → true

isAliceOrBob('Bob')
// → true

isAliceOrBob('Oscar')
// → false

Contributions

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.

License

ISC © Vates SAS