{"ast":null,"code":"var util = require('util');\n\nvar Stream = require('stream').Stream;\n\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\n\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\n\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function (options) {\n var combinedStream = new this();\n options = options || {};\n\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function (stream) {\n return typeof stream !== 'function' && typeof stream !== 'string' && typeof stream !== 'boolean' && typeof stream !== 'number' && !Buffer.isBuffer(stream);\n};\n\nCombinedStream.prototype.append = function (stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n\n return this;\n};\n\nCombinedStream.prototype.pipe = function (dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function () {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n\n try {\n do {\n this._pendingNext = false;\n\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function () {\n var stream = this._streams.shift();\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n\n return;\n }\n\n var getStream = stream;\n getStream(function (stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function (stream) {\n this._currentStream = stream;\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {\n end: false\n });\n return;\n }\n\n var value = stream;\n this.write(value);\n\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function (stream) {\n var self = this;\n stream.on('error', function (err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function (data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function () {\n if (!this.pauseStreams) {\n return;\n }\n\n if (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function () {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n\n this._getNext();\n }\n\n if (this.pauseStreams && this._currentStream && typeof this._currentStream.resume == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function () {\n this._reset();\n\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function () {\n this._reset();\n\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function () {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function () {\n this._updateDataSize();\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message = 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function () {\n this.dataSize = 0;\n var self = this;\n\n this._streams.forEach(function (stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function (err) {\n this._reset();\n\n this.emit('error', err);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/combined-stream/lib/combined_stream.js"],"names":["util","require","Stream","DelayedStream","module","exports","CombinedStream","writable","readable","dataSize","maxDataSize","pauseStreams","_released","_streams","_currentStream","_insideLoop","_pendingNext","inherits","create","options","combinedStream","option","isStreamLike","stream","Buffer","isBuffer","prototype","append","newStream","Infinity","pauseStream","on","_checkDataSize","bind","_handleErrors","pause","push","pipe","dest","call","resume","_getNext","_realGetNext","shift","end","_pipeNext","getStream","value","write","self","err","_emitError","data","emit","_reset","destroy","_updateDataSize","message","Error","forEach"],"mappings":"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","sourcesContent":["var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n"]},"metadata":{},"sourceType":"script"}