Bachir Soussi Chiadmi cefd1c2ad0 updated sys and created publi | 6 年之前 | |
---|---|---|
.. | ||
src | 7 年之前 | |
tests | 7 年之前 | |
.npmignore | 7 年之前 | |
.travis.yml | 7 年之前 | |
LICENCE | 7 年之前 | |
README.md | 7 年之前 | |
package.json | 6 年之前 |
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:
## 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);
Feel free to pull your code if you agree with publishing it under the MIT license.