| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/bufferstreams/ |
Upload File : |
# BufferStreams
[](https://www.npmjs.com/package/bufferstreams)
[](https://travis-ci.org/nfroidure/BufferStreams)
[](https://david-dm.org/nfroidure/bufferstreams)
[](https://david-dm.org/nfroidure/bufferstreams#info=devDependencies)
[](https://coveralls.io/r/nfroidure/BufferStreams?branch=master)
[](https://codeclimate.com/github/nfroidure/BufferStreams)
`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
`bufferstreams` can also be used to control the whole stream content in a single
point of a streaming pipeline for testing purposes.
## Usage
Install the [npm module](https://npmjs.org/package/bufferstreams):
```sh
npm install bufferstreams --save
```
Then, in your scripts:
```js
var fs = require('fs');
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 `bufferstreams` with the objectMode option. In this case,
the given buffer will be an array containing the streamed objects:
```js
new BufferStreams({objectMode: true}, myCallback);
```
## API
### Stream : BufferStreams([options], callback)
#### options
##### options.objectMode
Type: `Boolean`
Default value: `false`
Use if piped in streams are in object mode. In this case, an array of the
buffered will be transmitted to the `callback` function.
##### options.*
`bufferstreams` inherits of Stream.Duplex, the options are passed to the
parent constructor so you can use it's options too.
##### callback(err, buf, cb)
Type: `Function`, required.
A function to handle the buffered content.
## Stats
[](https://nodei.co/npm/bufferstreams/)
[](https://nodei.co/npm/bufferstreams/)
## Contributing
Feel free to pull your code if you agree with publishing it under the MIT license.