ts-prime
Version:
A utility library for JavaScript and Typescript.
34 lines (33 loc) • 1.07 kB
JavaScript
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 = {}));