3.0.0 • Published 9 years ago

stream-forward v3.0.0

Weekly downloads
276
License
MIT
Repository
-
Last release
9 years ago

stream-forward

Forward events to the next stream in the pipeline.

Use

$ npm install --save stream-forward
var streamForward = require('stream-forward');

Example

var streamForward = require('stream-forward');
var request = require('request');

var opts = {
  events: ['response']
};

streamForward(request('http://yahoo.com'), opts)
  .pipe(process.stdout)
  .on('response', function (response) {
    // `response` from the request stream.
  });

Note: don't neglect proper event handling on the individual parts of your stream.

This is just a convenience when you have to manually listen and re-emit events across a middleman/spy pipe. Consider the following example:

var fs = require('fs');

function getRequestStream(reqOpts) {
  var opts = {
    events: ['complete']
  };

  return streamForward(request(reqOpts), opts)
    .pipe(fs.createWriteStream('./request-cache'));
}

getRequestStream('http://yahoo.com')
  .on('complete', function () {
    // Without `stream-forward`, this couldn't emit.
  });

stream = streamForward(stream, options);

stream

Type: Stream

The source stream to spy on. This is returned from the function to allow chaining.

options

Optional. Configuration options.

options.continuous

Type: Boolean Default: false

If true, when a new stream is attached to stream, it will receive the events emitted by the original.

Disabled (default)
var sourceStream = request('http://yahoo.com');
var through = require('through2');

streamForward(sourceStream)
  .pipe(through())
  .on('complete', function () {
    // Called.
  })
  .pipe(through())
  .on('complete', function () {
    // Not called.
  });
Enabled
var sourceStream = request('http://yahoo.com');
var through = require('through2');

streamForward(sourceStream, { continuous: true })
  .pipe(through())
  .on('complete', function () {
    // Called.
  })
  .pipe(through())
  .on('complete', function () {
    // Called.
  });

options.events

Type: Array

Event names to re-emit on attached streams.

3.0.0

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.0

9 years ago