moltres-utils
Version:
Utils for Moltres apps
57 lines (47 loc) • 1.88 kB
JavaScript
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _anyAtIndex = _interopRequireDefault(require("./anyAtIndex"));
var _curry = _interopRequireDefault(require("../common/curry"));
var _defn = _interopRequireDefault(require("../common/defn"));
var _isArrayLike = _interopRequireDefault(require("../lang/isArrayLike"));
var _keys = _interopRequireDefault(require("./keys"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Returns `true` if at least one of elements of the collection match the predicate, `false` otherwise.
*
* Dispatches to the `any` method of the collection argument, if present.
*
* Supports async predicates. If a predicate returns a Promise than the entire method will upgrade to async and return a Promise.
*
* @function
* @since v0.0.3
* @category data
* @sig (a -> Boolean) -> [a] -> Boolean
* @param {Function} fn The predicate function.
* @param {*} collection The collection to consider.
* @returns {Boolean} `true` if the predicate is satisfied by at least one element, `false` otherwise.
* @example
*
* const lessThan0 = flip(lt)(0)
* const lessThan2 = flip(lt)(2)
* any(lessThan0)([1, 2]) //=> false
* any(lessThan2)([1, 2]) //=> true
* any(lessThan2)({ a: 1, b: 2 }) //=> true
*
* await any(async (value) => lessThan2(value), [1, 2]) //=> true
*/
var any = (0, _curry.default)((0, _defn.default)('any', function (fn, collection) {
if ((0, _isArrayLike.default)(collection)) {
return (0, _anyAtIndex.default)(fn, 0, collection);
}
return (0, _anyAtIndex.default)(function (key) {
return fn(collection[key], key);
}, 0, (0, _keys.default)(collection));
}));
var _default = any;
exports.default = _default;
//# sourceMappingURL=any.js.map
;