Sha256: ab1b1a8e5c2866a7b3294e15f835ee877b66b2105e912a6223caffb084fc3a86

Contents?: true

Size: 1.93 KB

Versions: 8

Compression:

Stored size: 1.93 KB

Contents

/* */ 
module.exports = Stream;
var EE = require('events').EventEmitter;
var inherits = require('inherits');
inherits(Stream, EE);
Stream.Readable = require('readable-stream/readable');
Stream.Writable = require('readable-stream/writable');
Stream.Duplex = require('readable-stream/duplex');
Stream.Transform = require('readable-stream/transform');
Stream.PassThrough = require('readable-stream/passthrough');
Stream.Stream = Stream;
function Stream() {
  EE.call(this);
}
Stream.prototype.pipe = function(dest, options) {
  var source = this;
  function ondata(chunk) {
    if (dest.writable) {
      if (false === dest.write(chunk) && source.pause) {
        source.pause();
      }
    }
  }
  source.on('data', ondata);
  function ondrain() {
    if (source.readable && source.resume) {
      source.resume();
    }
  }
  dest.on('drain', ondrain);
  if (!dest._isStdio && (!options || options.end !== false)) {
    source.on('end', onend);
    source.on('close', onclose);
  }
  var didOnEnd = false;
  function onend() {
    if (didOnEnd)
      return;
    didOnEnd = true;
    dest.end();
  }
  function onclose() {
    if (didOnEnd)
      return;
    didOnEnd = true;
    if (typeof dest.destroy === 'function')
      dest.destroy();
  }
  function onerror(er) {
    cleanup();
    if (EE.listenerCount(this, 'error') === 0) {
      throw er;
    }
  }
  source.on('error', onerror);
  dest.on('error', onerror);
  function cleanup() {
    source.removeListener('data', ondata);
    dest.removeListener('drain', ondrain);
    source.removeListener('end', onend);
    source.removeListener('close', onclose);
    source.removeListener('error', onerror);
    dest.removeListener('error', onerror);
    source.removeListener('end', cleanup);
    source.removeListener('close', cleanup);
    dest.removeListener('close', cleanup);
  }
  source.on('end', cleanup);
  source.on('close', cleanup);
  dest.on('close', cleanup);
  dest.emit('pipe', source);
  return dest;
};

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sequenceserver-3.1.3 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-3.1.2 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-3.1.1 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-3.1.0 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-3.0.1 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-3.0 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-2.2.0 public/vendor/npm/stream-browserify@1.0.0/index.js
sequenceserver-2.1.0 public/vendor/npm/stream-browserify@1.0.0/index.js