Package Exports
- on-stream-end
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (on-stream-end) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
on-stream-end

Handles completion and errors of any stream - readable/writable/duplex.
A drop-in replacement for end-of-stream.
Install
npm i on-stream-end --save
Usage
For more use-cases see the tests
const eos = require('on-stream-end')
onStreamEnd
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')
})
More examples
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
})
Related
- 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.
Contributing
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.