stream-recorder
A Duplex stream which collects all chunks passed through.
npm install stream-recorder --save
Usage
Streams of strings
Then pipe through a recorder instance and retrieve the buffer:
var Recorder = require('stream-recorder'), streamFromArray = require('stream-from-array'), // npm install stream-from-array input = ['foo', 'bar']; streamFromArray(input) .pipe(Recorder(function(buffer){ // it's not an object stream, so buffer is a node buffer console.log(buffer.toString()); // output: foobar })) .resume(); // switch into flowing-mode (!)
Gulpplugins with stream-recorder
Test yourGulp files are vinyl files:
npm install vinyl
var streamFromValue = require('stream-from-value'); var File = require('vinyl'); var helloFile = new File({ cwd: '/', base: '/hello/', path: '/hello/world.js', contents: new Buffer('console.log("Hello world!");') }); describe('yourAwsomeGulpPlugin', function() { it('should process gulp (vinyl) files', function(done) { streamFromValue.obj(helloFile) .pipe(yourAwsomeGulpPlugin()) .pipe(Recorder.obj(function(buffer) { // it's an object stream, so buffer is an array - of gulp files console.log(buffer[0].contents); // dunno what yourAwsomeGulpPlugin does :-) done(); })) .resume(); // switch into flowing-mode (!) });});
API
Class: StreamRecorder
StreamRecorder are Transform streams.
new StreamRecorder([options], [finishCallback])
- options
Object
passed through new stream.Transform([options]) - finishCallback
Function (buffer)
This Callback is called during thefinish
event of StreamRecorder
Note: The new
operator can be omitted.
StreamRecorder.buffer
- In
objectMode
it is the array of JavaScript values (number | object | string | ...
) passed through - Otherwise it is a node Buffer which contains the values of
string
s andbuffer
s passed through
StreamRecorder#obj([options], [finishCallback])
A convenience wrapper for new StreamRecorder({objectMode: true, ...}, finishCallback)
.
License
Copyright (c) 2014 Michael Mayer
Licensed under the MIT license.