Handles completion and errors of any stream - readable/writable/duplex.
A drop-in replacement for end-of-stream.
npm i on-stream-end --save
For more use-cases see the tests
const eos = require('on-stream-end')
Handles completion and errors of any stream - readable/writable/duplex.
stream
{Stream} stream to listen for completionopts
{Object} optional options objectcallback
{Function} completion callback
Example
const fs = require('fs')
const eos = require('on-stream-end')
const readable = fs.createReadStream('README.md')
eos(readable, err => {
if (err) return console.log('stream had an error or closed early')
console.log('stream has ended')
})
This module is drop-in replacement for
end-of-stream
, just more strictness, more coverage and more tests.
var eos = require('on-stream-end')
eos(readableStream, function (err) {
if (err) return console.log('stream had an error or closed early')
console.log('stream has ended')
})
eos(writableStream, function (err) {
if (err) return console.log('stream had an error or closed early')
console.log('stream has finished')
})
eos(duplexStream, function (err) {
if (err) return console.log('stream had an error or closed early')
console.log('stream has ended and finished')
})
eos(duplexStream, {readable: false}, function (err) {
if (err) return console.log('stream had an error or closed early')
console.log('stream has ended but might still be writable')
})
eos(duplexStream, {writable: false}, function (err) {
if (err) return console.log('stream had an error or closed early')
console.log('stream has ended but might still be readable')
})
eos(readableStream, {error: false}, function (err) {
// do not treat emit('error', err) as a end of stream
})
- catchup: Graceful error handling. Because core
domain
module is deprecated. - end-of-stream: Call a callback when a readable/writable/duplex stream has completed or failed.
- is-node-emitter: Strictly checks that given value is nodejs EventEmitter.
- is-node-stream: Strictly and correctly checks if value is a nodejs stream.
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.