summaryrefslogtreecommitdiff
path: root/node_modules/merge-stream/index.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
commitd1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch)
tree60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/merge-stream/index.js
parent7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff)
added hover prefixer
Diffstat (limited to 'node_modules/merge-stream/index.js')
-rw-r--r--node_modules/merge-stream/index.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/merge-stream/index.js b/node_modules/merge-stream/index.js
new file mode 100644
index 00000000..b1a9e1a0
--- /dev/null
+++ b/node_modules/merge-stream/index.js
@@ -0,0 +1,41 @@
+'use strict';
+
+const { PassThrough } = require('stream');
+
+module.exports = function (/*streams...*/) {
+ var sources = []
+ var output = new PassThrough({objectMode: true})
+
+ output.setMaxListeners(0)
+
+ output.add = add
+ output.isEmpty = isEmpty
+
+ output.on('unpipe', remove)
+
+ Array.prototype.slice.call(arguments).forEach(add)
+
+ return output
+
+ function add (source) {
+ if (Array.isArray(source)) {
+ source.forEach(add)
+ return this
+ }
+
+ sources.push(source);
+ source.once('end', remove.bind(null, source))
+ source.once('error', output.emit.bind(output, 'error'))
+ source.pipe(output, {end: false})
+ return this
+ }
+
+ function isEmpty () {
+ return sources.length == 0;
+ }
+
+ function remove (source) {
+ sources = sources.filter(function (it) { return it !== source })
+ if (!sources.length && output.readable) { output.end() }
+ }
+}