diff --git a/lib/SendStream.js b/lib/SendStream.js index 537b1a9..27f13a6 100644 --- a/lib/SendStream.js +++ b/lib/SendStream.js @@ -18,7 +18,6 @@ const escapeHtml = require('escape-html') const fresh = require('fresh') const mime = require('mime') const ms = require('@lukeed/ms') -const onFinished = require('on-finished') const { clearHeaders } = require('./clearHeaders') const { collapseLeadingSlashes } = require('./collapseLeadingSlashes') @@ -692,18 +691,23 @@ SendStream.prototype.stream = function stream (path, options) { this.emit('stream', stream) stream.pipe(res) - // cleanup - function cleanup () { + let destroyed = false + + // destroy piped stream + function destroy () { + if (destroyed) { + return + } + destroyed = true stream.destroy() } - // response finished, cleanup - onFinished(res, cleanup) + res.once('finish', destroy) // error handling stream.on('error', function onerror (err) { // clean up stream early - cleanup() + destroy() // error self.onStatError(err) diff --git a/package.json b/package.json index ab61b06..9c02d9e 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,7 @@ "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "^3.0.0", - "@lukeed/ms": "^2.0.1", - "on-finished": "2.4.1" + "@lukeed/ms": "^2.0.1" }, "devDependencies": { "@fastify/pre-commit": "^2.0.2",