| import _curry1 from "./internal/_curry1.js"; |
| import curryN from "./curryN.js"; |
| import max from "./max.js"; |
| import pluck from "./pluck.js"; |
| import reduce from "./reduce.js"; |
| /** |
| * Takes a list of predicates and returns a predicate that returns true for a |
| * given list of arguments if every one of the provided predicates is satisfied |
| * by those arguments. |
| * |
| * The function returned is a curried function whose arity matches that of the |
| * highest-arity predicate. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.9.0 |
| * @category Logic |
| * @sig [(*... -> Boolean)] -> (*... -> Boolean) |
| * @param {Array} predicates An array of predicates to check |
| * @return {Function} The combined predicate |
| * @see R.anyPass |
| * @example |
| * |
| * const isQueen = R.propEq('rank', 'Q'); |
| * const isSpade = R.propEq('suit', '♠︎'); |
| * const isQueenOfSpades = R.allPass([isQueen, isSpade]); |
| * |
| * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false |
| * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true |
| */ |
| |
| var allPass = |
| /*#__PURE__*/ |
| _curry1(function allPass(preds) { |
| return curryN(reduce(max, 0, pluck('length', preds)), function () { |
| var idx = 0; |
| var len = preds.length; |
| |
| while (idx < len) { |
| if (!preds[idx].apply(this, arguments)) { |
| return false; |
| } |
| |
| idx += 1; |
| } |
| |
| return true; |
| }); |
| }); |
| |
| export default allPass; |