Files
xen-orchestra/@vates/predicates/.USAGE.md
2022-10-20 12:47:02 +02:00

1.2 KiB

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