| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | /*! * unpipe * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */'use strict'/** * Module exports. * @public */module.exports = unpipe/** * Determine if there are Node.js pipe-like data listeners. * @private */function hasPipeDataListeners(stream) {  var listeners = stream.listeners('data')  for (var i = 0; i < listeners.length; i++) {    if (listeners[i].name === 'ondata') {      return true    }  }  return false}/** * Unpipe a stream from all destinations. * * @param {object} stream * @public */function unpipe(stream) {  if (!stream) {    throw new TypeError('argument stream is required')  }  if (typeof stream.unpipe === 'function') {    // new-style    stream.unpipe()    return  }  // Node.js 0.8 hack  if (!hasPipeDataListeners(stream)) {    return  }  var listener  var listeners = stream.listeners('close')  for (var i = 0; i < listeners.length; i++) {    listener = listeners[i]    if (listener.name !== 'cleanup' && listener.name !== 'onclose') {      continue    }    // invoke the listener    listener.call(stream)  }}
 |