rindle
v1.3.6
Published
Collection of utilities for working with Streams
Downloads
5,272
Readme
rindle
Collection of utilities for working with Streams.
Description
This is a collection of functions that operate on streams to encapsulate some of the tasks I usually have to do in my project. I'll be adding more as I encounter more patterns.
Installation
Install rindle
by running:
$ npm install --save rindle
Documentation
rindle.wait(stream, callback)
This functions listens for the following events:
close
.end
.done
.
If those events pass any argument when being emitted, you'll be able to access them as arguments to the callback.
Kind: static method of rindle
Summary: Wait for a stream to close
Access: public
| Param | Type | Description | | --- | --- | --- | | stream | Stream | stream | | callback | function | callback (error, args...) |
Example
var fs = require('fs');
var rindle = require('rindle');
var input = fs.createReadStream('foo/bar');
var output = fs.createWriteStream('foo/baz');
input.pipe(output);
rindle.wait(output, function(error) {
if (error) throw error;
console.log('The output stream was closed!');
});
rindle.extract(stream, callback)
Notice this function only extracts the remaining data from the stream.
Kind: static method of rindle
Summary: Extract data from readable stream
Access: public
| Param | Type | Description | | --- | --- | --- | | stream | StreamReadable | stream | | callback | function | callback (error, data) |
Example
var fs = require('fs');
var rindle = require('rindle');
var input = fs.createReadStream('foo/bar');
rindle.extract(input, function(error, data) {
if (error) throw error;
console.log('The file contains: ' + data);
});
rindle.bifurcate(stream, output1, output2, callback)
The callback is called when both output stream close.
Kind: static method of rindle
Summary: Bifurcate readable stream to two writable streams
Access: public
| Param | Type | Description | | --- | --- | --- | | stream | StreamReadable | input stream | | output1 | StreamWritable | first output stream | | output2 | StreamWritable | second output stream | | callback | function | callback (error) |
Example
var fs = require('fs');
var rindle = require('rindle');
var input = fs.createReadStream('foo/bar');
var output1 = fs.createWriteStream('foo/baz');
var output2 = fs.createWriteStream('foo/qux');
rindle.bifurcate(input, output1, output2, function(error) {
if (error) throw error;
console.log('All files written!');
});
rindle.pipeWithEvents(stream, output, events) ⇒ StreamReadable
Kind: static method of rindle
Summary: Pipe a stream along with certain events
Returns: StreamReadable - resulting stream
Access: public
| Param | Type | Description | | --- | --- | --- | | stream | StreamReadable | input stream | | output | StreamWritable | output stream | | events | Array.<String> | events to pipe |
Example
var rindle = require('rindle');
rindle.pipeWithEvents(input, output, [
'response',
'request'
]);
rindle.onEvent(stream, event, callback)
Kind: static method of rindle
Summary: Wait for a stream to emit a certain event
Access: public
| Param | Type | Description | | --- | --- | --- | | stream | Stream | stream | | event | String | event name | | callback | function | callback (error, args...) |
Example
var rindle = require('rindle');
var fs = require('fs');
rindle.onEvent(fs.createReadStream('foo/bar'), 'open', function(error, fd) {
if (error) throw error;
console.log('The "open" event was emitted');
console.log(fd);
});
rindle.getStreamFromString(string) ⇒ ReadableStream
Kind: static method of rindle
Summary: Get a readable stream from a string
Returns: ReadableStream - - string stream
Access: public
| Param | Type | Description | | --- | --- | --- | | string | String | input string |
Example
var rindle = require('rindle');
rindle.getStreamFromString('Hello World!').pipe(process.stdout);
Support
If you're having any problem, please raise an issue on GitHub and I'll be happy to help.
Tests
Run the test suite by doing:
$ gulp test
Contribute
- Issue Tracker: github.com/jviotti/rindle/issues
- Source Code: github.com/jviotti/rindle
Before submitting a PR, please make sure that you include tests, and that jshint runs without any warning:
$ gulp lint
License
The project is licensed under the MIT license.