node package manager

Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…

merge-stream

Create a stream that emits events from multiple other streams

merge-stream

Merge (interleave) a bunch of streams.

var stream1 = new Stream();
var stream2 = new Stream();
 
var merged = mergeStream(stream1, stream2);
 
var stream3 = new Stream();
merged.add(stream3);
merged.isEmpty();
//=> false 

This is adapted from event-stream separated into a new module, using Streams3.

merged.add

A method to dynamically add more sources to the stream.

merged.isEmpty

A method that tells you if the merged stream is empty.

When a stream is "empty" (aka. no sources were added), it could not be returned to a gulp task.

So, we could do something like this:

stream = require('merge-stream')();
// Something like a loop to add some streams to the merge stream 
// stream.add(streamA); 
// stream.add(streamB); 
return stream.isEmpty() ? null : stream;

MIT