UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

34 lines (33 loc) 1.07 kB
import { purry } from './purry'; import { _reduceLazy } from './_reduceLazy'; import { _toLazyIndexed } from './_toLazyIndexed'; export function filter() { return purry(_filter(false), arguments, filter.lazy); } var _filter = function (indexed) { return function (array, fn) { return _reduceLazy(array, indexed ? filter.lazyIndexed(fn) : filter.lazy(fn), indexed); }; }; var _lazy = function (indexed) { return function (fn) { return function (value, index, array) { var valid = indexed ? fn(value, index, array) : fn(value); if (!!valid === true) { return { done: false, hasNext: true, next: value, }; } return { done: false, hasNext: false, }; }; }; }; (function (filter) { function indexed() { return purry(_filter(true), arguments, filter.lazyIndexed); } filter.indexed = indexed; filter.lazy = _lazy(false); filter.lazyIndexed = _toLazyIndexed(_lazy(true)); })(filter || (filter = {}));