streams
Version:
A lazy streams library for functional composition in JavaScript.
39 lines • 2.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const iterator_stream_1 = require("../../iterator-stream");
iterator_stream_1.IteratorStream.prototype.tee = function () {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const self = this;
const buffers = new Set();
function next() {
const buffer = [];
buffers.add(buffer);
function* tee() {
try {
while (true) {
if (buffer.length === 0) {
const next = self.next();
buffers.forEach((buffer) => buffer.push(next));
}
const item = buffer.shift();
if (item.done) {
return item.value;
}
yield item.value;
}
}
finally {
buffers.delete(buffer);
if (buffers.size === 0) {
self.return?.();
}
}
}
return { value: new iterator_stream_1.IteratorStream(tee()) };
}
function* iteratorTee() {
yield* { [Symbol.iterator]: () => ({ next }) };
}
return iteratorTee();
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdG9ycy9zeW5jL3RlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJEQUF1RDtBQVF2RCxnQ0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUc7SUFDN0IsNERBQTREO0lBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztJQUVsQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztJQUUxRCxTQUFTLElBQUk7UUFDWCxNQUFNLE1BQU0sR0FBRyxFQUFvQyxDQUFDO1FBRXBELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEIsUUFBUSxDQUFDLENBQUMsR0FBRztZQUNYLElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksRUFBRSxDQUFDO29CQUNaLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUN6QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2pELENBQUM7b0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRyxDQUFDO29CQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3BCLENBQUM7b0JBQ0QsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxnQ0FBYyxDQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQUMsV0FBVztRQUNuQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sV0FBVyxFQUFFLENBQUM7QUFDdkIsQ0FBQyxDQUFDIn0=