diff options
Diffstat (limited to 'node_modules/combined-stream')
-rw-r--r-- | node_modules/combined-stream/lib/combined_stream.js | 23 | ||||
-rw-r--r-- | node_modules/combined-stream/lib/defer.js | 26 | ||||
-rw-r--r-- | node_modules/combined-stream/package.json | 23 | ||||
-rw-r--r-- | node_modules/combined-stream/yarn.lock | 17 |
4 files changed, 50 insertions, 39 deletions
diff --git a/node_modules/combined-stream/lib/combined_stream.js b/node_modules/combined-stream/lib/combined_stream.js index 809b3c2e7..125f097f3 100644 --- a/node_modules/combined-stream/lib/combined_stream.js +++ b/node_modules/combined-stream/lib/combined_stream.js @@ -1,7 +1,6 @@ var util = require('util'); var Stream = require('stream').Stream; var DelayedStream = require('delayed-stream'); -var defer = require('./defer.js'); module.exports = CombinedStream; function CombinedStream() { @@ -14,6 +13,8 @@ function CombinedStream() { this._released = false; this._streams = []; this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; } util.inherits(CombinedStream, Stream); @@ -68,6 +69,24 @@ CombinedStream.prototype.pipe = function(dest, options) { CombinedStream.prototype._getNext = function() { this._currentStream = null; + + if (this._insideLoop) { + this._pendingNext = true; + return; // defer call + } + + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } +}; + +CombinedStream.prototype._realGetNext = function() { var stream = this._streams.shift(); @@ -89,7 +108,7 @@ CombinedStream.prototype._getNext = function() { this._handleErrors(stream); } - defer(this._pipeNext.bind(this, stream)); + this._pipeNext(stream); }.bind(this)); }; diff --git a/node_modules/combined-stream/lib/defer.js b/node_modules/combined-stream/lib/defer.js deleted file mode 100644 index b67110c7a..000000000 --- a/node_modules/combined-stream/lib/defer.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = defer; - -/** - * Runs provided function on next iteration of the event loop - * - * @param {function} fn - function to run - */ -function defer(fn) -{ - var nextTick = typeof setImmediate == 'function' - ? setImmediate - : ( - typeof process == 'object' && typeof process.nextTick == 'function' - ? process.nextTick - : null - ); - - if (nextTick) - { - nextTick(fn); - } - else - { - setTimeout(fn, 0); - } -} diff --git a/node_modules/combined-stream/package.json b/node_modules/combined-stream/package.json index 86c891cd4..ce92c10a0 100644 --- a/node_modules/combined-stream/package.json +++ b/node_modules/combined-stream/package.json @@ -1,28 +1,29 @@ { - "_from": "combined-stream@~1.0.5", - "_id": "combined-stream@1.0.6", + "_from": "combined-stream@~1.0.6", + "_id": "combined-stream@1.0.8", "_inBundle": false, - "_integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "_integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "_location": "/combined-stream", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "combined-stream@~1.0.5", + "raw": "combined-stream@~1.0.6", "name": "combined-stream", "escapedName": "combined-stream", - "rawSpec": "~1.0.5", + "rawSpec": "~1.0.6", "saveSpec": null, - "fetchSpec": "~1.0.5" + "fetchSpec": "~1.0.6" }, "_requiredBy": [ + "/@types/request/form-data", "/form-data", "/request" ], - "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "_shasum": "723e7df6e801ac5613113a7e445a9b69cb632818", - "_spec": "combined-stream@~1.0.5", - "_where": "/Users/rebecca/code/npm/node_modules/request", + "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "_shasum": "c3d45a8b34fd730631a110a8a2520682b31d5a7f", + "_spec": "combined-stream@~1.0.6", + "_where": "/Users/isaacs/dev/npm/cli/node_modules/request", "author": { "name": "Felix Geisendörfer", "email": "felix@debuggable.com", @@ -54,5 +55,5 @@ "scripts": { "test": "node test/run.js" }, - "version": "1.0.6" + "version": "1.0.8" } diff --git a/node_modules/combined-stream/yarn.lock b/node_modules/combined-stream/yarn.lock new file mode 100644 index 000000000..7edf41840 --- /dev/null +++ b/node_modules/combined-stream/yarn.lock @@ -0,0 +1,17 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +far@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7" + dependencies: + oop "0.0.3" + +oop@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401" |