Bachir Soussi Chiadmi cefd1c2ad0 updated sys and created publi 7 年之前
..
src cefd1c2ad0 updated sys and created publi 7 年之前
tests cefd1c2ad0 updated sys and created publi 7 年之前
.npmignore cefd1c2ad0 updated sys and created publi 7 年之前
.travis.yml cefd1c2ad0 updated sys and created publi 7 年之前
LICENCE cefd1c2ad0 updated sys and created publi 7 年之前
README.md cefd1c2ad0 updated sys and created publi 7 年之前
package.json cefd1c2ad0 updated sys and created publi 7 年之前

README.md

BufferStreams

NPM version Build Status Dependency Status devDependency Status Coverage Status Code Climate

BufferStreams abstracts streams to allow you to deal with their whole content in a single buffer when it becomes necessary (by example: a legacy library that do not support streams).

It is not a good practice, just some glue. Using BufferStreams means:

  • there is no library dealing with streams for your needs
  • you filled an issue to the wrapped library to support streams

## Usage Install the npm module:

npm install bufferstreams --save

Then, in your scripts:

var BufferStreams = require('bufferstreams');

Fs.createReadStream('input.txt')
  .pipe(new BufferStreams(function(err, buf, cb) {

    // err will be filled with an error if the piped in stream emits one.
    if(err) {
      throw err;
    }

    // buf will contain the whole piped in stream contents
    buf = Buffer(buf.toString('utf-8').replace('foo', 'bar'));

    // cb is a callback to pass the result back to the piped out stream
    // first argument is an error that will be emitted if any
    // the second argument is the modified buffer
    cb(null, buf);

  }))
  .pipe(Fs.createWriteStream('output.txt'));

Note that you can use BufferStream with the objectMode option. In this case, the given buffer will be an array containing the streamed objects:

new BufferStreams({objectMode: true}, myCallback);

Contributing

Feel free to pull your code if you agree with publishing it under the MIT license.