ts-prime
Version:
A utility library for JavaScript and Typescript.
31 lines (30 loc) • 943 B
JavaScript
import { purry } from './purry';
import { _toLazyIndexed } from './_toLazyIndexed';
import { _toSingle } from './_toSingle';
export function find() {
return purry(_find(false), arguments, find.lazy);
}
var _find = function (indexed) { return function (array, fn) {
if (indexed) {
return array.find(fn);
}
return array.find(function (x) { return fn(x); });
}; };
var _lazy = function (indexed) { return function (fn) {
return function (value, index, array) {
var valid = indexed ? fn(value, index, array) : fn(value);
return {
done: valid,
hasNext: valid,
next: value,
};
};
}; };
(function (find) {
function indexed() {
return purry(_find(true), arguments, find.lazyIndexed);
}
find.indexed = indexed;
find.lazy = _toSingle(_lazy(false));
find.lazyIndexed = _toSingle(_toLazyIndexed(_lazy(true)));
})(find || (find = {}));