UNPKG

stromjs

Version:

Dependency-free streams utils for Node.js

44 lines (43 loc) 1.43 kB
"use strict"; exports.__esModule = true; exports.merge = void 0; var stream_1 = require("stream"); function merge() { var streams = []; for (var _i = 0; _i < arguments.length; _i++) { streams[_i] = arguments[_i]; } var isStarted = false; var streamEndedCount = 0; return new stream_1.Readable({ objectMode: true, read: function () { var _this = this; if (streamEndedCount >= streams.length) { this.push(null); } else if (!isStarted) { isStarted = true; streams.forEach(function (stream) { return stream .on("data", function (chunk) { if (!_this.push(chunk)) { streams.forEach(function (s) { return s.pause(); }); } }) .on("error", function (err) { return _this.emit("error", err); }) .on("end", function () { streamEndedCount++; if (streamEndedCount === streams.length) { _this.push(null); } }); }); } else { streams.forEach(function (s) { return s.resume(); }); } } }); } exports.merge = merge;