Sha256: 69cd57b5cdd08c42410ebc0d92235e334f1fb985e6eb2dcfb1c692db674411bd

Contents?: true

Size: 1.09 KB

Versions: 112

Compression:

Stored size: 1.09 KB

Contents

/*!
 * 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)
  }
}

Version data entries

112 entries across 110 versions & 20 rubygems

Version Path
rapid_stack-0.2.0 templates/frontend/node_modules/unpipe/index.js
rapid_stack-0.1.1 templates/FrontEnd/node_modules/unpipe/index.js
rapid_stack-0.1.0 templates/FrontEnd/node_modules/unpipe/index.js
sumomo-0.10.8 data/sumomo/api_modules/node_modules/unpipe/index.js
optimacms-0.1.61 spec/dummy/node_modules/unpipe/index.js
sumomo-0.10.4 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.10.3 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.10.2 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.10.1 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.10.0 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.9.0 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.8.22 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.8.21 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.8.20 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.8.17 data/sumomo/api_modules/node_modules/unpipe/index.js
sumomo-0.8.16 data/sumomo/api_modules/node_modules/unpipe/index.js
disco_app-0.18.0 test/dummy/node_modules/unpipe/index.js
disco_app-0.18.2 test/dummy/node_modules/unpipe/index.js
sumomo-0.8.15 data/sumomo/api_modules/node_modules/unpipe/index.js
disco_app-0.16.1 test/dummy/node_modules/unpipe/index.js