UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

31 lines (30 loc) 943 B
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 = {}));