1.3.6 • Published 4 years ago

rindle v1.3.6

Weekly downloads
1,257
License
Apache-2.0
Repository
github
Last release
4 years ago

rindle

npm version dependencies Build Status Build status

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

ParamTypeDescription
streamStreamstream
callbackfunctioncallback (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

ParamTypeDescription
streamStreamReadablestream
callbackfunctioncallback (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

ParamTypeDescription
streamStreamReadableinput stream
output1StreamWritablefirst output stream
output2StreamWritablesecond output stream
callbackfunctioncallback (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

ParamTypeDescription
streamStreamReadableinput stream
outputStreamWritableoutput stream
eventsArray.<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

ParamTypeDescription
streamStreamstream
eventStringevent name
callbackfunctioncallback (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

ParamTypeDescription
stringStringinput 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

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.