streams
Version:
A lazy streams library for functional composition in JavaScript.
18 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const iterator_stream_1 = require("../../iterator-stream");
const as_iterable_1 = require("../../util/as-iterable");
iterator_stream_1.IteratorStream.prototype.traverseBreadth = function (getChildren) {
function* traverseBreadthOperator(it) {
const queue = [it];
let item;
while ((item = queue.shift()) !== undefined) {
for (const node of item) {
yield node;
queue.push((0, as_iterable_1.asIterable)(getChildren(node)));
}
}
}
return new iterator_stream_1.IteratorStream(traverseBreadthOperator(this));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhdmVyc2UtYnJlYWR0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRvcnMvc3luYy90cmF2ZXJzZS1icmVhZHRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkRBQXVEO0FBQ3ZELHdEQUFvRDtBQVVwRCxnQ0FBYyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsVUFDekMsV0FBb0U7SUFFcEUsUUFBUSxDQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBZTtRQUMvQyxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBa0IsQ0FBQztRQUNwQyxJQUFJLElBQTZCLENBQUM7UUFDbEMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksQ0FBQztnQkFDWCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsd0JBQVUsRUFBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxnQ0FBYyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDIn0=