munchy

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

Usage no npm install needed!

<script type="module">
  import munchy from 'https://cdn.skypack.dev/munchy';
</script>

README

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);
name description
opts options for Node Readable stream
sources variadic params of sources to munch

Munchy specific options:

name description
handleStreamError callback to handle error from a stream being drained

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

name description
result string data to add to the output
remit Set 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);
name description
sources variadic params of sources to munch
  • Returns this.

  • To end and terminate munchy stream:

munchy.munch(null);

Events

Munchy emits the following custom events:

name description payload
draining starting to drain a stream source. { stream }
drained done draining a stream source. { stream }
munched all sources munched, ready for more.

ie:

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

Demos

License

Licensed under the Apache License, Version 2.0