| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- 'use strict'
 
- const DuplexStream = require('readable-stream').Duplex
 
- const inherits = require('inherits')
 
- const BufferList = require('./BufferList')
 
- function BufferListStream (callback) {
 
-   if (!(this instanceof BufferListStream)) {
 
-     return new BufferListStream(callback)
 
-   }
 
-   if (typeof callback === 'function') {
 
-     this._callback = callback
 
-     const piper = function piper (err) {
 
-       if (this._callback) {
 
-         this._callback(err)
 
-         this._callback = null
 
-       }
 
-     }.bind(this)
 
-     this.on('pipe', function onPipe (src) {
 
-       src.on('error', piper)
 
-     })
 
-     this.on('unpipe', function onUnpipe (src) {
 
-       src.removeListener('error', piper)
 
-     })
 
-     callback = null
 
-   }
 
-   BufferList._init.call(this, callback)
 
-   DuplexStream.call(this)
 
- }
 
- inherits(BufferListStream, DuplexStream)
 
- Object.assign(BufferListStream.prototype, BufferList.prototype)
 
- BufferListStream.prototype._new = function _new (callback) {
 
-   return new BufferListStream(callback)
 
- }
 
- BufferListStream.prototype._write = function _write (buf, encoding, callback) {
 
-   this._appendBuffer(buf)
 
-   if (typeof callback === 'function') {
 
-     callback()
 
-   }
 
- }
 
- BufferListStream.prototype._read = function _read (size) {
 
-   if (!this.length) {
 
-     return this.push(null)
 
-   }
 
-   size = Math.min(size, this.length)
 
-   this.push(this.slice(0, size))
 
-   this.consume(size)
 
- }
 
- BufferListStream.prototype.end = function end (chunk) {
 
-   DuplexStream.prototype.end.call(this, chunk)
 
-   if (this._callback) {
 
-     this._callback(null, this.slice())
 
-     this._callback = null
 
-   }
 
- }
 
- BufferListStream.prototype._destroy = function _destroy (err, cb) {
 
-   this._bufs.length = 0
 
-   this.length = 0
 
-   cb(err)
 
- }
 
- BufferListStream.prototype._isBufferList = function _isBufferList (b) {
 
-   return b instanceof BufferListStream || b instanceof BufferList || BufferListStream.isBufferList(b)
 
- }
 
- BufferListStream.isBufferList = BufferList.isBufferList
 
- module.exports = BufferListStream
 
- module.exports.BufferListStream = BufferListStream
 
- module.exports.BufferList = BufferList
 
 
  |