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