UNPKG

@jasmith79/sequable

Version:

Library functions for working with generators

26 lines (25 loc) 750 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.filter = void 0; const sequable_js_1 = require("./sequable.js"); /** * Filters the items of the given Iterator, Iterable, or generator function * using the supplied predicate function. * * @param pred The predicate function. * @param sequable The Iterator, Iterable, or generator function sequence * to filter. */ function* filter(pred, seq) { const iter = (0, sequable_js_1.toIterator)(seq); let { value, done } = iter.next(); while (!done) { if (pred(value)) { yield value; } ({ value, done } = iter.next()); } if (value !== undefined && pred(value)) return value; } exports.filter = filter;