f-utility
Version:
functional utilities
60 lines (48 loc) • 1.67 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.every = exports.some = exports.which = exports.__which = undefined;
var _some = require("fast.js/array/some");
var _some2 = _interopRequireDefault(_some);
var _every = require("fast.js/array/every");
var _every2 = _interopRequireDefault(_every);
var _katsuCurry = require("katsu-curry");
var _flip = require("./flip");
var _triplet = require("./triplet");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var keys = Object.keys;
var __which = exports.__which = function __which(compare, fn, o) {
// allows us to pass functions to compare first
var arecomp = (0, _flip.flip)(compare);
return (0, _triplet.triplet)(Array.isArray, arecomp(fn), (0, _katsuCurry.pipe)(keys, arecomp(function (key) {
return fn(o[key], key);
})), o);
};
var which = exports.which = (0, _katsuCurry.curry)(__which);
/**
* array.some(fn) but curried and lazy
* @method some
* @param {function} predicate
* @param {Array} iterable
* @returns {boolean}
* @public
* @example
* import {some} from 'f-utility'
* some((x) => x === `j`, [`j`, `k`, `l`]) // true
* some((x) => x === `z`, [`j`, `k`, `l`]) // false
*/
var some = exports.some = which(_some2["default"]);
/**
* array.every(fn) but curried and lazy
* @method every
* @param {function} predicate
* @param {Array} iterable
* @returns {boolean}
* @public
* @example
* import {isNumber, every} from 'f-utility'
* every(isNumber, [0, 1, 2, 3, 4]) // true
* every(isNumber, [0, 1, 2, 3, `four`]) // false
*/
var every = exports.every = which(_every2["default"]);
;