| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | var stream = require('readable-stream')var inherits = require('inherits')var SIGNAL_FLUSH =(Buffer.from && Buffer.from !== Uint8Array.from)  ? Buffer.from([0])  : new Buffer([0])module.exports = WriteStreamfunction WriteStream (opts, write, flush) {  if (!(this instanceof WriteStream)) return new WriteStream(opts, write, flush)  if (typeof opts === 'function') {    flush = write    write = opts    opts = {}  }  stream.Writable.call(this, opts)  this.destroyed = false  this._worker = write || null  this._flush = flush || null}inherits(WriteStream, stream.Writable)WriteStream.obj = function (opts, worker, flush) {  if (typeof opts === 'function') return WriteStream.obj(null, opts, worker)  if (!opts) opts = {}  opts.objectMode = true  return new WriteStream(opts, worker, flush)}WriteStream.prototype._write = function (data, enc, cb) {  if (SIGNAL_FLUSH === data) this._flush(cb)  else this._worker(data, enc, cb)}WriteStream.prototype.end = function (data, enc, cb) {  if (!this._flush) return stream.Writable.prototype.end.apply(this, arguments)  if (typeof data === 'function') return this.end(null, null, data)  if (typeof enc === 'function') return this.end(data, null, enc)  if (data) this.write(data)  if (!this._writableState.ending) this.write(SIGNAL_FLUSH)  return stream.Writable.prototype.end.call(this, cb)}WriteStream.prototype.destroy = function (err) {  if (this.destroyed) return  this.destroyed = true  if (err) this.emit('error', err)  this.emit('close')}
 |