fork-stream
Fork a stream in multiple directions according to a function
Last updated 11 years ago by deoxxa .
BSD · Repository · Bugs · Original npm · Tarball · package.json
$ npm install fork-stream 
SYNC missed versions from official npm registry.

fork-stream build status

Fork a stream in multiple directions according to a function.

Overview

fork-stream basically gives you conditional branching for streams. You supply the logic, fork-stream supplies the streaming.

Super Quickstart

Code:

var ForkStream = require("fork-stream");

var fork = new ForkStream({
  classifier: function classify(e, done) {
    return done(null, e.match(/[aeiou]/));
  },
});

fork.a.pipe(console.log.bind(console, "vowels:"));
fork.b.pipe(console.log.bind(console, "no vowels:"));

fork.write("hello");
fork.write("zxcbzz");
fork.write("ooooooo");

fork.end();

Output:

vowels: hello
no vowels: zxcbzz
vowels: ooooooo

Installation

Available via npm:

$ npm install fork-stream

Or via git:

$ git clone git://github.com/deoxxa/fork-stream.git node_modules/fork-stream

API

constructor

Creates a new fork-stream.

new ForkStream(options);
var fork = new ForkStream({
  highWaterMark: 5,
  classifier: function(e, done) {
    return done(null, !!e);
  },
});
  • options - regular stream options, and a classifier property that fork-stream will use to decide what output stream to send your object down.

Example

Also see example.js.

var ForkStream = require("fork-stream");

var fork = new ForkStream({
  classifier: function classify(e, done) {
    return done(null, e >= 5);
  },
});

fork.a.on("data", console.log.bind(null, "a"));
fork.b.on("data", console.log.bind(null, "b"));

for (var i=0;i<20;++i) {
  fork.write(Math.round(Math.random() * 10));
}

Output:

b 1
a 6
a 9
a 10
a 7
a 5
b 2
b 4
a 8
b 3
a 5
b 4
a 7
a 8
b 1
a 6
b 2
b 0
a 5
b 1

License

3-clause BSD. A copy is included with the source.

Contact

Current Tags

  • 0.0.4                                ...           latest (11 years ago)

4 Versions

  • 0.0.4                                ...           11 years ago
  • 0.0.3                                ...           11 years ago
  • 0.0.2                                ...           11 years ago
  • 0.0.1                                ...           11 years ago
Maintainers (1)
Downloads
Total 5
Today 1
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (2)
Dependents (2)

© 2010 - cnpmjs.org x YWFE | Home | YWFE