Firebase Update
This commit is contained in:
		
							
								
								
									
										8
									
								
								express-server/node_modules/pumpify/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								express-server/node_modules/pumpify/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
language: node_js
 | 
			
		||||
 | 
			
		||||
node_js:
 | 
			
		||||
  - "0.10"
 | 
			
		||||
  - "4"
 | 
			
		||||
  - "5"
 | 
			
		||||
 | 
			
		||||
sudo: false
 | 
			
		||||
							
								
								
									
										21
									
								
								express-server/node_modules/pumpify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								express-server/node_modules/pumpify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014 Mathias Buus
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in
 | 
			
		||||
all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
			
		||||
THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										56
									
								
								express-server/node_modules/pumpify/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								express-server/node_modules/pumpify/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
# pumpify
 | 
			
		||||
 | 
			
		||||
Combine an array of streams into a single duplex stream using [pump](https://github.com/mafintosh/pump) and [duplexify](https://github.com/mafintosh/duplexify).
 | 
			
		||||
If one of the streams closes/errors all streams in the pipeline will be destroyed.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
npm install pumpify
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
[](http://travis-ci.org/mafintosh/pumpify)
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
Pass the streams you want to pipe together to pumpify `pipeline = pumpify(s1, s2, s3, ...)`.
 | 
			
		||||
`pipeline` is a duplex stream that writes to the first streams and reads from the last one.
 | 
			
		||||
Streams are piped together using [pump](https://github.com/mafintosh/pump) so if one of them closes
 | 
			
		||||
all streams will be destroyed.
 | 
			
		||||
 | 
			
		||||
``` js
 | 
			
		||||
var pumpify = require('pumpify')
 | 
			
		||||
var tar = require('tar-fs')
 | 
			
		||||
var zlib = require('zlib')
 | 
			
		||||
var fs = require('fs')
 | 
			
		||||
 | 
			
		||||
var untar = pumpify(zlib.createGunzip(), tar.extract('output-folder'))
 | 
			
		||||
// you can also pass an array instead
 | 
			
		||||
// var untar = pumpify([zlib.createGunzip(), tar.extract('output-folder')])
 | 
			
		||||
 | 
			
		||||
fs.createReadStream('some-gzipped-tarball.tgz').pipe(untar)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you are pumping object streams together use `pipeline = pumpify.obj(s1, s2, ...)`.
 | 
			
		||||
Call `pipeline.destroy()` to destroy the pipeline (including the streams passed to pumpify).
 | 
			
		||||
 | 
			
		||||
### Using `setPipeline(s1, s2, ...)`
 | 
			
		||||
 | 
			
		||||
Similar to [duplexify](https://github.com/mafintosh/duplexify) you can also define the pipeline asynchronously using `setPipeline(s1, s2, ...)`
 | 
			
		||||
 | 
			
		||||
``` js
 | 
			
		||||
var untar = pumpify()
 | 
			
		||||
 | 
			
		||||
setTimeout(function() {
 | 
			
		||||
  // will start draining the input now
 | 
			
		||||
  untar.setPipeline(zlib.createGunzip(), tar.extract('output-folder'))
 | 
			
		||||
}, 1000)
 | 
			
		||||
 | 
			
		||||
fs.createReadStream('some-gzipped-tarball.tgz').pipe(untar)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
MIT
 | 
			
		||||
 | 
			
		||||
## Related
 | 
			
		||||
 | 
			
		||||
`pumpify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
 | 
			
		||||
							
								
								
									
										60
									
								
								express-server/node_modules/pumpify/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								express-server/node_modules/pumpify/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
var pump = require('pump')
 | 
			
		||||
var inherits = require('inherits')
 | 
			
		||||
var Duplexify = require('duplexify')
 | 
			
		||||
 | 
			
		||||
var toArray = function(args) {
 | 
			
		||||
  if (!args.length) return []
 | 
			
		||||
  return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var define = function(opts) {
 | 
			
		||||
  var Pumpify = function() {
 | 
			
		||||
    var streams = toArray(arguments)
 | 
			
		||||
    if (!(this instanceof Pumpify)) return new Pumpify(streams)
 | 
			
		||||
    Duplexify.call(this, null, null, opts)
 | 
			
		||||
    if (streams.length) this.setPipeline(streams)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  inherits(Pumpify, Duplexify)
 | 
			
		||||
 | 
			
		||||
  Pumpify.prototype.setPipeline = function() {
 | 
			
		||||
    var streams = toArray(arguments)
 | 
			
		||||
    var self = this
 | 
			
		||||
    var ended = false
 | 
			
		||||
    var w = streams[0]
 | 
			
		||||
    var r = streams[streams.length-1]
 | 
			
		||||
 | 
			
		||||
    r = r.readable ? r : null
 | 
			
		||||
    w = w.writable ? w : null
 | 
			
		||||
 | 
			
		||||
    var onclose = function() {
 | 
			
		||||
      streams[0].emit('error', new Error('stream was destroyed'))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.on('close', onclose)
 | 
			
		||||
    this.on('prefinish', function() {
 | 
			
		||||
      if (!ended) self.cork()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    pump(streams, function(err) {
 | 
			
		||||
      self.removeListener('close', onclose)
 | 
			
		||||
      if (err) return self.destroy(err.message === 'premature close' ? null : err)
 | 
			
		||||
      ended = true
 | 
			
		||||
      // pump ends after the last stream is not writable *but*
 | 
			
		||||
      // pumpify still forwards the readable part so we need to catch errors
 | 
			
		||||
      // still, so reenable autoDestroy in this case
 | 
			
		||||
      if (self._autoDestroy === false) self._autoDestroy = true
 | 
			
		||||
      self.uncork()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    if (this.destroyed) return onclose()
 | 
			
		||||
    this.setWritable(w)
 | 
			
		||||
    this.setReadable(r)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return Pumpify
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = define({autoDestroy:false, destroy:false})
 | 
			
		||||
module.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16})
 | 
			
		||||
module.exports.ctor = define
 | 
			
		||||
							
								
								
									
										65
									
								
								express-server/node_modules/pumpify/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								express-server/node_modules/pumpify/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
{
 | 
			
		||||
  "_from": "pumpify@^1.5.1",
 | 
			
		||||
  "_id": "pumpify@1.5.1",
 | 
			
		||||
  "_inBundle": false,
 | 
			
		||||
  "_integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
 | 
			
		||||
  "_location": "/pumpify",
 | 
			
		||||
  "_phantomChildren": {},
 | 
			
		||||
  "_requested": {
 | 
			
		||||
    "type": "range",
 | 
			
		||||
    "registry": true,
 | 
			
		||||
    "raw": "pumpify@^1.5.1",
 | 
			
		||||
    "name": "pumpify",
 | 
			
		||||
    "escapedName": "pumpify",
 | 
			
		||||
    "rawSpec": "^1.5.1",
 | 
			
		||||
    "saveSpec": null,
 | 
			
		||||
    "fetchSpec": "^1.5.1"
 | 
			
		||||
  },
 | 
			
		||||
  "_requiredBy": [
 | 
			
		||||
    "/@google-cloud/storage",
 | 
			
		||||
    "/gcs-resumable-upload"
 | 
			
		||||
  ],
 | 
			
		||||
  "_resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
 | 
			
		||||
  "_shasum": "36513be246ab27570b1a374a5ce278bfd74370ce",
 | 
			
		||||
  "_spec": "pumpify@^1.5.1",
 | 
			
		||||
  "_where": "D:\\Desktop\\Git\\Firebase\\SmartShopperFirebase\\node_modules\\@google-cloud\\storage",
 | 
			
		||||
  "author": {
 | 
			
		||||
    "name": "Mathias Buus"
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/mafintosh/pumpify/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "bundleDependencies": false,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "duplexify": "^3.6.0",
 | 
			
		||||
    "inherits": "^2.0.3",
 | 
			
		||||
    "pump": "^2.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "deprecated": false,
 | 
			
		||||
  "description": "Combine an array of streams into a single duplex stream using pump and duplexify",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "tape": "^4.8.0",
 | 
			
		||||
    "through2": "^2.0.3"
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/mafintosh/pumpify",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "pump",
 | 
			
		||||
    "duplexify",
 | 
			
		||||
    "duplex",
 | 
			
		||||
    "streams",
 | 
			
		||||
    "stream",
 | 
			
		||||
    "pipeline",
 | 
			
		||||
    "combine"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "name": "pumpify",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://github.com/mafintosh/pumpify.git"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "tape test.js"
 | 
			
		||||
  },
 | 
			
		||||
  "version": "1.5.1"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										235
									
								
								express-server/node_modules/pumpify/test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								express-server/node_modules/pumpify/test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,235 @@
 | 
			
		||||
var tape = require('tape')
 | 
			
		||||
var through = require('through2')
 | 
			
		||||
var pumpify = require('./')
 | 
			
		||||
var stream = require('stream')
 | 
			
		||||
var duplexify = require('duplexify')
 | 
			
		||||
 | 
			
		||||
tape('basic', function(t) {
 | 
			
		||||
  t.plan(3)
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify(
 | 
			
		||||
    through(function(data, enc, cb) {
 | 
			
		||||
      t.same(data.toString(), 'hello')
 | 
			
		||||
      cb(null, data.toString().toUpperCase())
 | 
			
		||||
    }),
 | 
			
		||||
    through(function(data, enc, cb) {
 | 
			
		||||
      t.same(data.toString(), 'HELLO')
 | 
			
		||||
      cb(null, data.toString().toLowerCase())
 | 
			
		||||
    })
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  pipeline.write('hello')
 | 
			
		||||
  pipeline.on('data', function(data) {
 | 
			
		||||
    t.same(data.toString(), 'hello')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('3 times', function(t) {
 | 
			
		||||
  t.plan(4)
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify(
 | 
			
		||||
    through(function(data, enc, cb) {
 | 
			
		||||
      t.same(data.toString(), 'hello')
 | 
			
		||||
      cb(null, data.toString().toUpperCase())
 | 
			
		||||
    }),
 | 
			
		||||
    through(function(data, enc, cb) {
 | 
			
		||||
      t.same(data.toString(), 'HELLO')
 | 
			
		||||
      cb(null, data.toString().toLowerCase())
 | 
			
		||||
    }),
 | 
			
		||||
    through(function(data, enc, cb) {
 | 
			
		||||
      t.same(data.toString(), 'hello')
 | 
			
		||||
      cb(null, data.toString().toUpperCase())
 | 
			
		||||
    })
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  pipeline.write('hello')
 | 
			
		||||
  pipeline.on('data', function(data) {
 | 
			
		||||
    t.same(data.toString(), 'HELLO')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('destroy', function(t) {
 | 
			
		||||
  var test = through()
 | 
			
		||||
  test.destroy = function() {
 | 
			
		||||
    t.ok(true)
 | 
			
		||||
    t.end()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify(through(), test)
 | 
			
		||||
 | 
			
		||||
  pipeline.destroy()
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('close', function(t) {
 | 
			
		||||
  var test = through()
 | 
			
		||||
  var pipeline = pumpify(through(), test)
 | 
			
		||||
 | 
			
		||||
  pipeline.on('error', function(err) {
 | 
			
		||||
    t.same(err.message, 'lol')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test.emit('error', new Error('lol'))
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('end waits for last one', function(t) {
 | 
			
		||||
  var ran = false
 | 
			
		||||
 | 
			
		||||
  var a = through()
 | 
			
		||||
  var b = through()
 | 
			
		||||
  var c = through(function(data, enc, cb) {
 | 
			
		||||
    setTimeout(function() {
 | 
			
		||||
      ran = true
 | 
			
		||||
      cb()
 | 
			
		||||
    }, 100)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify(a, b, c)
 | 
			
		||||
 | 
			
		||||
  pipeline.write('foo')
 | 
			
		||||
  pipeline.end(function() {
 | 
			
		||||
    t.ok(ran)
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  t.ok(!ran)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('always wait for finish', function(t) {
 | 
			
		||||
  var a = new stream.Readable()
 | 
			
		||||
  a._read = function() {}
 | 
			
		||||
  a.push('hello')
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify(a, through(), through())
 | 
			
		||||
  var ran = false
 | 
			
		||||
 | 
			
		||||
  pipeline.on('finish', function() {
 | 
			
		||||
    t.ok(ran)
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  setTimeout(function() {
 | 
			
		||||
    ran = true
 | 
			
		||||
    a.push(null)
 | 
			
		||||
  }, 100)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('async', function(t) {
 | 
			
		||||
  var pipeline = pumpify()
 | 
			
		||||
 | 
			
		||||
  t.plan(4)
 | 
			
		||||
 | 
			
		||||
  pipeline.write('hello')
 | 
			
		||||
  pipeline.on('data', function(data) {
 | 
			
		||||
    t.same(data.toString(), 'HELLO')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  setTimeout(function() {
 | 
			
		||||
    pipeline.setPipeline(
 | 
			
		||||
      through(function(data, enc, cb) {
 | 
			
		||||
        t.same(data.toString(), 'hello')
 | 
			
		||||
        cb(null, data.toString().toUpperCase())
 | 
			
		||||
      }),
 | 
			
		||||
      through(function(data, enc, cb) {
 | 
			
		||||
        t.same(data.toString(), 'HELLO')
 | 
			
		||||
        cb(null, data.toString().toLowerCase())
 | 
			
		||||
      }),
 | 
			
		||||
      through(function(data, enc, cb) {
 | 
			
		||||
        t.same(data.toString(), 'hello')
 | 
			
		||||
        cb(null, data.toString().toUpperCase())
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
  }, 100)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('early destroy', function(t) {
 | 
			
		||||
  var a = through()
 | 
			
		||||
  var b = through()
 | 
			
		||||
  var c = through()
 | 
			
		||||
 | 
			
		||||
  b.destroy = function() {
 | 
			
		||||
    t.ok(true)
 | 
			
		||||
    t.end()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var pipeline = pumpify()
 | 
			
		||||
 | 
			
		||||
  pipeline.destroy()
 | 
			
		||||
  setTimeout(function() {
 | 
			
		||||
    pipeline.setPipeline(a, b, c)
 | 
			
		||||
  }, 100)
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('preserves error', function (t) {
 | 
			
		||||
  var a = through()
 | 
			
		||||
  var b = through(function (data, enc, cb) {
 | 
			
		||||
    cb(new Error('stop'))
 | 
			
		||||
  })
 | 
			
		||||
  var c = through()
 | 
			
		||||
  var s = pumpify()
 | 
			
		||||
 | 
			
		||||
  s.on('error', function (err) {
 | 
			
		||||
    t.same(err.message, 'stop')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.setPipeline(a, b, c)
 | 
			
		||||
  s.resume()
 | 
			
		||||
  s.write('hi')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('preserves error again', function (t) {
 | 
			
		||||
  var ws = new stream.Writable()
 | 
			
		||||
  var rs = new stream.Readable({highWaterMark: 16})
 | 
			
		||||
 | 
			
		||||
  ws._write = function (data, enc, cb) {
 | 
			
		||||
    cb(null)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  rs._read = function () {
 | 
			
		||||
    process.nextTick(function () {
 | 
			
		||||
      rs.push('hello world')
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var pumpifyErr = pumpify(
 | 
			
		||||
    through(),
 | 
			
		||||
    through(function(chunk, _, cb) {
 | 
			
		||||
      cb(new Error('test'))
 | 
			
		||||
    }),
 | 
			
		||||
    ws
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  rs.pipe(pumpifyErr)
 | 
			
		||||
    .on('error', function (err) {
 | 
			
		||||
      t.ok(err)
 | 
			
		||||
      t.ok(err.message !== 'premature close', 'does not close with premature close')
 | 
			
		||||
      t.end()
 | 
			
		||||
    })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
tape('returns error from duplexify', function (t) {
 | 
			
		||||
  var a = through()
 | 
			
		||||
  var b = duplexify()
 | 
			
		||||
  var s = pumpify()
 | 
			
		||||
 | 
			
		||||
  s.setPipeline(a, b)
 | 
			
		||||
 | 
			
		||||
  s.on('error', function (err) {
 | 
			
		||||
    t.same(err.message, 'stop')
 | 
			
		||||
    t.end()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  s.write('data')
 | 
			
		||||
  // Test passes if `.end()` is not called
 | 
			
		||||
  s.end()
 | 
			
		||||
 | 
			
		||||
  b.setWritable(through())
 | 
			
		||||
 | 
			
		||||
  setImmediate(function () {
 | 
			
		||||
    b.destroy(new Error('stop'))
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user