UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

37 lines (36 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var purry_1 = require("./purry"); var _reduceLazy_1 = require("./_reduceLazy"); var _toLazyIndexed_1 = require("./_toLazyIndexed"); function filter() { return purry_1.purry(_filter(false), arguments, filter.lazy); } exports.filter = filter; var _filter = function (indexed) { return function (array, fn) { return _reduceLazy_1._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_1.purry(_filter(true), arguments, filter.lazyIndexed); } filter.indexed = indexed; filter.lazy = _lazy(false); filter.lazyIndexed = _toLazyIndexed_1._toLazyIndexed(_lazy(true)); })(filter = exports.filter || (exports.filter = {}));