Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Stream utilities with support for stream resets.
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test/lib
.gitignore
.jshintrc
LICENSE
README.md
package.json
stream-utils.js

README.md

stream-utils

Stream utilities with support for stream resets.

exports

  • ThroughStream([write], [end], [reset]) - creates a new "through" Streams which readable and writable that acts based on the given write, end, and reset handler functions.
  • DuplexStream(writable, readable) - combines a writable stream and a readable stream into a duplexed Stream.
  • Pipeline(stream1, stream2, ...) - creates a new Stream that sends data to all of the given Streams.

Examples

Here's a simple and somewhat contrived example of how you might use the through stream helper to apply a math operation.

var su = require("stream-utils"),
    through = su.ThroughStream;

var inputs = [1, 2, 3],
  outputs = [],
  doubler = through(function(val){  // on data queue doubled value
    this.queue(val * 2);
  })
    .on("data", function(val2){  // on data push into outputs
      outputs.push(val2);
    });

inputs.forEach(doubler.write);

// --> outputs is: [2, 4, 6]

Why?

I needed a set of Stream utilities that would make it easier to build and reuse chains of complex Object stream mutators. Originally I used the event-stream package but I ran into a few issues with my use cases that drove me to roll my own solution based on what I had learned from that code.

License

MIT / Apache2

Something went wrong with that request. Please try again.