1 line
8.5 KiB
JSON
1 line
8.5 KiB
JSON
{"ast":null,"code":"// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js"],"names":["eos","once","callback","called","apply","arguments","_require$codes","require","codes","ERR_MISSING_ARGS","ERR_STREAM_DESTROYED","noop","err","isRequest","stream","setHeader","abort","destroyer","reading","writing","closed","on","undefined","readable","writable","destroyed","destroy","call","fn","pipe","from","to","popCallback","streams","length","pop","pipeline","_len","Array","_key","isArray","error","destroys","map","i","forEach","reduce","module","exports"],"mappings":"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","sourcesContent":["// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;"]},"metadata":{},"sourceType":"script"} |