ts-prime
Version:
A utility library for JavaScript and Typescript.
42 lines (41 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var purry_1 = require("./purry");
var _toLazyIndexed_1 = require("./_toLazyIndexed");
var _toSingle_1 = require("./_toSingle");
function findIndex() {
return purry_1.purry(_findIndex(false), arguments, findIndex.lazy);
}
exports.findIndex = findIndex;
var _findIndex = function (indexed) { return function (array, fn) {
if (indexed) {
return array.findIndex(fn);
}
return array.findIndex(function (x) { return fn(x); });
}; };
var _lazy = function (indexed) { return function (fn) {
var i = 0;
return function (value, index, array) {
var valid = indexed ? fn(value, index, array) : fn(value);
if (valid) {
return {
done: true,
hasNext: true,
next: i,
};
}
i++;
return {
done: false,
hasNext: false,
};
};
}; };
(function (findIndex) {
function indexed() {
return purry_1.purry(_findIndex(true), arguments, findIndex.lazyIndexed);
}
findIndex.indexed = indexed;
findIndex.lazy = _toSingle_1._toSingle(_lazy(false));
findIndex.lazyIndexed = _toSingle_1._toSingle(_toLazyIndexed_1._toLazyIndexed(_lazy(true)));
})(findIndex = exports.findIndex || (exports.findIndex = {}));