diff options
Diffstat (limited to 'node_modules/multistream/README.md')
-rw-r--r-- | node_modules/multistream/README.md | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/node_modules/multistream/README.md b/node_modules/multistream/README.md new file mode 100644 index 0000000..508034e --- /dev/null +++ b/node_modules/multistream/README.md @@ -0,0 +1,86 @@ +# multistream [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/multistream/master.svg +[travis-url]: https://travis-ci.org/feross/multistream +[npm-image]: https://img.shields.io/npm/v/multistream.svg +[npm-url]: https://npmjs.org/package/multistream +[downloads-image]: https://img.shields.io/npm/dm/multistream.svg +[downloads-url]: https://npmjs.org/package/multistream +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### A stream that emits multiple other streams one after another (streams3) + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/multistream.svg)](https://saucelabs.com/u/multistream) + +![cat](https://raw.githubusercontent.com/feross/multistream/master/img.jpg) + +Simple, robust streams3 version of [combined-stream](https://www.npmjs.org/package/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](http://webtorrent.io), specifically [create-torrent](https://github.com/feross/create-torrent). + +### install + +``` +npm install multistream +``` + +### usage + +Use `multistream` like this: + +```js +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: + +```js +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: + +```js +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 + +- [Feross Aboukhadijeh](http://feross.org) +- [Mathias Buus](https://github.com/mafintosh/) +- [Yuri Astrakhan](https://github.com/nyurik/) + +### license + +MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). |