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

    1.4.1 • Public • Published

    merge2

    Merge multiple streams into one stream in sequence or parallel.

    NPM version Build Status Downloads

    Install

    Install with npm

    npm install merge2

    Usage

    const gulp = require('gulp')
    const merge2 = require('merge2')
    const concat = require('gulp-concat')
    const minifyHtml = require('gulp-minify-html')
    const ngtemplate = require('gulp-ngtemplate')
     
    gulp.task('app-js', function () {
      return merge2(
          gulp.src('static/src/tpl/*.html')
            .pipe(minifyHtml({empty: true}))
            .pipe(ngtemplate({
              module: 'genTemplates',
              standalone: true
            })
          ), gulp.src([
            'static/src/js/app.js',
            'static/src/js/locale_zh-cn.js',
            'static/src/js/router.js',
            'static/src/js/tools.js',
            'static/src/js/services.js',
            'static/src/js/filters.js',
            'static/src/js/directives.js',
            'static/src/js/controllers.js'
          ])
        )
        .pipe(concat('app.js'))
        .pipe(gulp.dest('static/dist/js/'))
    })
    const stream = merge2([stream1, stream2], stream3, {end: false})
    //...
    stream.add(stream4, stream5)
    //..
    stream.end()
    // equal to merge2([stream1, stream2], stream3)
    const stream = merge2()
    stream.add([stream1, stream2])
    stream.add(stream3)
    // merge order:
    //   1. merge `stream1`;
    //   2. merge `stream2` and `stream3` in parallel after `stream1` merged;
    //   3. merge 'stream4' after `stream2` and `stream3` merged;
    const stream = merge2(stream1, [stream2, stream3], stream4)
     
    // merge order:
    //   1. merge `stream5` and `stream6` in parallel after `stream4` merged;
    //   2. merge 'stream7' after `stream5` and `stream6` merged;
    stream.add([stream5, stream6], stream7)
    // nest merge
    // equal to merge2(stream1, stream2, stream6, stream3, [stream4, stream5]);
    const streamA = merge2(stream1, stream2)
    const streamB = merge2(stream3, [stream4, stream5])
    const stream = merge2(streamA, streamB)
    streamA.add(stream6)

    API

    const merge2 = require('merge2')

    merge2()

    merge2(options)

    merge2(stream1, stream2, ..., streamN)

    merge2(stream1, stream2, ..., streamN, options)

    merge2(stream1, [stream2, stream3, ...], streamN, options)

    return a duplex stream (mergedStream). streams in array will be merged in parallel.

    mergedStream.add(stream)

    mergedStream.add(stream1, [stream2, stream3, ...], ...)

    return the mergedStream.

    mergedStream.on('queueDrain', function() {})

    It will emit 'queueDrain' when all streams merged. If you set end === false in options, this event give you a notice that should add more streams to merge or end the mergedStream.

    stream

    option Type: Readable or Duplex or Transform stream.

    options

    option Type: Object.

    • end - Boolean - if end === false then mergedStream will not be auto ended, you should end by yourself. Default: undefined

    • pipeError - Boolean - if pipeError === true then mergedStream will emit error event from source streams. Default: undefined

    • objectMode - Boolean . Default: true

    objectMode and other options(highWaterMark, defaultEncoding ...) is same as Node.js Stream.

    License

    MIT © Teambition

    Install

    npm i merge2

    DownloadsWeekly Downloads

    20,215,863

    Version

    1.4.1

    License

    MIT

    Unpacked Size

    8.9 kB

    Total Files

    4

    Last publish

    Collaborators

    • zensh