| var _curry1 = |
| /*#__PURE__*/ |
| require("./internal/_curry1"); |
| |
| var curryN = |
| /*#__PURE__*/ |
| require("./curryN"); |
| |
| var max = |
| /*#__PURE__*/ |
| require("./max"); |
| |
| var pluck = |
| /*#__PURE__*/ |
| require("./pluck"); |
| |
| var reduce = |
| /*#__PURE__*/ |
| require("./reduce"); |
| /** |
| * 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; |
| }); |
| }); |
| |
| module.exports = allPass; |