| * Copyright(c) 2015 Douglas Christopher Wilson |
| * Determine if there are Node.js pipe-like data listeners. |
| function hasPipeDataListeners(stream) { |
| var listeners = stream.listeners('data') |
| for (var i = 0; i < listeners.length; i++) { |
| if (listeners[i].name === 'ondata') { |
| * Unpipe a stream from all destinations. |
| function unpipe(stream) { |
| throw new TypeError('argument stream is required') |
| if (typeof stream.unpipe === 'function') { |
| if (!hasPipeDataListeners(stream)) { |
| var listeners = stream.listeners('close') |
| for (var i = 0; i < listeners.length; i++) { |
| if (listener.name !== 'cleanup' && listener.name !== 'onclose') { |