Have ideas to improve npm?Join in the discussion! »

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

    4.1.0 • Public • Published

    multistream travis npm downloads javascript style guide

    A stream that emits multiple other streams one after another (streams3)

    Sauce Test Status

    cat

    Simple, robust streams3 version of combined-stream. Allows you to combine multiple streams into a single stream. When the first stream ends, the next one starts, and so on, until all streams are consumed.

    This module is used by WebTorrent, specifically create-torrent.

    install

    npm install multistream
    

    usage

    Use multistream like this:

    var MultiStream = require('multistream')
    var fs = require('fs')
    
    var streams = [
      fs.createReadStream(__dirname + '/numbers/1.txt'),
      fs.createReadStream(__dirname + '/numbers/2.txt'),
      fs.createReadStream(__dirname + '/numbers/3.txt')
    ]
    
    new MultiStream(streams).pipe(process.stdout) // => 123

    You can also create an object-mode stream with MultiStream.obj(streams).

    To lazily create the streams, wrap them in a function:

    var streams = [
      fs.createReadStream(__dirname + '/numbers/1.txt'),
      function () { // will be executed when the stream is active
        return fs.createReadStream(__dirname + '/numbers/2.txt')
      },
      function () { // same
        return fs.createReadStream(__dirname + '/numbers/3.txt')
      }
    ]
    
    new MultiStream(streams).pipe(process.stdout) // => 123

    Alternatively, streams may be created by an asynchronous "factory" function:

    var count = 0
    function factory (cb) {
      if (count > 3) return cb(null, null)
      count++
      setTimeout(function () {
        cb(null, fs.createReadStream(__dirname + '/numbers/' + count + '.txt'))
      }, 100)
    }
    
    new MultiStream(factory).pipe(process.stdout) // => 123

    contributors

    license

    MIT. Copyright (c) Feross Aboukhadijeh.

    Install

    npm i multistream

    DownloadsWeekly Downloads

    417,123

    Version

    4.1.0

    License

    MIT

    Unpacked Size

    9.32 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar
    • avatar