merge-stream
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/merge-stream package

    2.0.0 • Public • Published

    merge-stream

    Merge (interleave) a bunch of streams.

    build status

    Synopsis

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

    Description

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

    API

    mergeStream

    Type: function

    Merges an arbitrary number of streams. Returns a merged stream.

    merged.add

    A method to dynamically add more sources to the stream. The argument supplied to add can be either a source or an array of sources.

    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;

    Gulp example

    An example use case for merge-stream is to combine parts of a task in a project's gulpfile.js like this:

    const gulp =          require('gulp');
    const htmlValidator = require('gulp-w3c-html-validator');
    const jsHint =        require('gulp-jshint');
    const mergeStream =   require('merge-stream');
     
    function lint() {
      return mergeStream(
        gulp.src('src/*.html')
          .pipe(htmlValidator())
          .pipe(htmlValidator.reporter()),
        gulp.src('src/*.js')
          .pipe(jsHint())
          .pipe(jsHint.reporter())
      );
    }
    gulp.task('lint', lint);

    License

    MIT

    Keywords

    none

    Install

    npm i merge-stream

    DownloadsWeekly Downloads

    22,095,706

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    4.31 kB

    Total Files

    4

    Last publish

    Collaborators

    • grncdr
    • shinnn
    • stevemao