@xarc/core-utils-munchy
v1.0.10
Published
A producer Node stream for draining different data, including Readable streams
Downloads
14
Readme
munchy (@xarc/core-utils-munchy)
A producer Node stream for draining different data, including Readable streams.
$ npm i --save @xarc/core-utils-munchy
examples:
const Munchy = require("@xarc/core-utils-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("@xarc/core-utils-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
- Hapi - https://github.com/jchip/hapi-stream-sample
- Koa - https://github.com/jchip/koa-stream-sample
- express - https://github.com/jchip/express-stream-sample
License
Licensed under the Apache License, Version 2.0