UNPKG

streams

Version:

A lazy streams library for functional composition in JavaScript.

39 lines 2.93 kB
"use strict"; 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=