1.0.9 • Published 3 years ago

munchy v1.0.9

Weekly downloads
256
License
Apache-2.0
Repository
github
Last release
3 years ago

munchy

A producer Node stream for draining different data, including Readable streams.

$ npm i --save munchy

examples:

const Munchy = require("munchy");
const munchy = new Munchy();
munchy.munch("hello world", fs.createReadStream("blah"), "bye bye");
munchy.munch(null); // null terminates it
munchy.pipe(process.stdout);
const Munchy = require("munchy");
const munchy = new Munchy({}, fs.createReadStream("foo"), fs.createReadStream("bar"));
munchy.munch(fs.createReadStream("blah"), "bye bye", null); // null terminates it
munchy.pipe(process.stdout);

API

constructor

Munchy(opts, ...sources);
namedescription
optsoptions for Node Readable stream
sourcesvariadic params of sources to munch

Munchy specific options:

namedescription
handleStreamErrorcallback to handle error from a stream being drained

handleStreamError should take the error object and return an object with these fields:

namedescription
resultstring data to add to the output
remitSet to false and munchy will continue without destroying itself, else it emits the error again and stop processing

If handleStreamError returns a falsy value, then Munchy will emit the error and destroys itself.

For example:

const munchy = new Munchy({
  handleStreamError: err => {
    return { result: err.stack, remit: false };
  }
});

munch

munchy.munch(...sources);
namedescription
sourcesvariadic params of sources to munch
  • Returns this.

  • To end and terminate munchy stream:

munchy.munch(null);

Events

Munchy emits the following custom events:

namedescriptionpayload
drainingstarting to drain a stream source.{ stream }
draineddone draining a stream source.{ stream }
munchedall sources munched, ready for more.

ie:

munchy.on("draining", ({ stream }) => {});

Demos

License

Licensed under the Apache License, Version 2.0