| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | /*! * destroy * Copyright(c) 2014 Jonathan Ong * MIT Licensed */'use strict'/** * Module dependencies. * @private */var ReadStream = require('fs').ReadStreamvar Stream = require('stream')/** * Module exports. * @public */module.exports = destroy/** * Destroy a stream. * * @param {object} stream * @public */function destroy(stream) {  if (stream instanceof ReadStream) {    return destroyReadStream(stream)  }  if (!(stream instanceof Stream)) {    return stream  }  if (typeof stream.destroy === 'function') {    stream.destroy()  }  return stream}/** * Destroy a ReadStream. * * @param {object} stream * @private */function destroyReadStream(stream) {  stream.destroy()  if (typeof stream.close === 'function') {    // node.js core bug work-around    stream.on('open', onOpenClose)  }  return stream}/** * On open handler to close stream. * @private */function onOpenClose() {  if (typeof this.fd === 'number') {    // actually close down the fd    this.close()  }}
 |