You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! * 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) } }
|