UNPKG

streams

Version:

A lazy streams library for functional composition in JavaScript.

41 lines 3.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const async_iterator_stream_1 = require("../../async-iterator-stream"); async_iterator_stream_1.AsyncIteratorStream.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); async function* tee() { try { while (true) { if (buffer.length === 0) { const next = await 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) { await self.return?.(); } } } return { value: new async_iterator_stream_1.AsyncIteratorStream(tee()) }; } function* asyncIteratorTee() { yield* { [Symbol.iterator]: () => ({ next }), }; } return asyncIteratorTee(); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZXJhdG9ycy9hc3luYy90ZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1RUFBa0U7QUFRbEUsMkNBQW1CLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRztJQUdsQyw0REFBNEQ7SUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBRWxCLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFrQyxDQUFDO0lBRTFELFNBQVMsSUFBSTtRQUNYLE1BQU0sTUFBTSxHQUFHLEVBQW9DLENBQUM7UUFFcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQixLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUc7WUFDakIsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxFQUFFLENBQUM7b0JBQ1osSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO29CQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUcsQ0FBQztvQkFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNwQixDQUFDO29CQUNELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUM7b0JBQVMsQ0FBQztnQkFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSwyQ0FBbUIsQ0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFDLGdCQUFnQjtRQUN4QixLQUFLLENBQUMsQ0FBQztZQUNMLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sZ0JBQWdCLEVBQUUsQ0FBQztBQUM1QixDQUFDLENBQUMifQ==