UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

39 lines (38 loc) 1.17 kB
import { purry } from './purry'; import { _toLazyIndexed } from './_toLazyIndexed'; import { _toSingle } from './_toSingle'; export function findIndex() { return purry(_findIndex(false), arguments, findIndex.lazy); } 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(_findIndex(true), arguments, findIndex.lazyIndexed); } findIndex.indexed = indexed; findIndex.lazy = _toSingle(_lazy(false)); findIndex.lazyIndexed = _toSingle(_toLazyIndexed(_lazy(true))); })(findIndex || (findIndex = {}));