@vates/predicates

1.1.0 • Public • Published

@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

Package Sidebar

Install

npm i @vates/predicates

Weekly Downloads

3

Version

1.1.0

License

ISC

Unpacked Size

4.84 kB

Total Files

3

Last publish

Collaborators

  • b-nollet
  • arnogues
  • florent.beauchamp
  • mathieura
  • enishowk
  • tgoettelmann
  • julien-f
  • marsaud
  • olivierlambert
  • pdonias