index.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. module.exports = (function() {
  2. var __MODS__ = {};
  3. var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; };
  4. var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; };
  5. var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } };
  6. var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; };
  7. __DEFINE__(1682324647565, function(require, module, exports) {
  8. var once = require('once')
  9. var eos = require('end-of-stream')
  10. var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
  11. var noop = function () {}
  12. var ancient = /^v?\.0/.test(process.version)
  13. var isFn = function (fn) {
  14. return typeof fn === 'function'
  15. }
  16. var isFS = function (stream) {
  17. if (!ancient) return false // newer node version do not need to care about fs is a special way
  18. if (!fs) return false // browser
  19. return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
  20. }
  21. var isRequest = function (stream) {
  22. return stream.setHeader && isFn(stream.abort)
  23. }
  24. var destroyer = function (stream, reading, writing, callback) {
  25. callback = once(callback)
  26. var closed = false
  27. stream.on('close', function () {
  28. closed = true
  29. })
  30. eos(stream, {readable: reading, writable: writing}, function (err) {
  31. if (err) return callback(err)
  32. closed = true
  33. callback()
  34. })
  35. var destroyed = false
  36. return function (err) {
  37. if (closed) return
  38. if (destroyed) return
  39. destroyed = true
  40. if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
  41. if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
  42. if (isFn(stream.destroy)) return stream.destroy()
  43. callback(err || new Error('stream was destroyed'))
  44. }
  45. }
  46. var call = function (fn) {
  47. fn()
  48. }
  49. var pipe = function (from, to) {
  50. return from.pipe(to)
  51. }
  52. var pump = function () {
  53. var streams = Array.prototype.slice.call(arguments)
  54. var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
  55. if (Array.isArray(streams[0])) streams = streams[0]
  56. if (streams.length < 2) throw new Error('pump requires two streams per minimum')
  57. var error
  58. var destroys = streams.map(function (stream, i) {
  59. var reading = i < streams.length - 1
  60. var writing = i > 0
  61. return destroyer(stream, reading, writing, function (err) {
  62. if (!error) error = err
  63. if (err) destroys.forEach(call)
  64. if (reading) return
  65. destroys.forEach(call)
  66. callback(error)
  67. })
  68. })
  69. return streams.reduce(pipe)
  70. }
  71. module.exports = pump
  72. }, function(modId) {var map = {}; return __REQUIRE__(map[modId], modId); })
  73. return __REQUIRE__(1682324647565);
  74. })()
  75. //miniprogram-npm-outsideDeps=["once","end-of-stream","fs"]
  76. //# sourceMappingURL=index.js.map