stream: re-use legacy destroyer · nodejs/node@4b04bf8 · GitHub
Skip to content

Commit 4b04bf8

Browse files
ronagMylesBorins
authored andcommitted
stream: re-use legacy destroyer
Backport-PR-URL: #32174 PR-URL: #31316 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
1 parent 7ce1cc9 commit 4b04bf8

3 files changed

Lines changed: 19 additions & 21 deletions

File tree

lib/internal/streams/async_iterator.js

Lines changed: 3 additions & 11 deletions

lib/internal/streams/destroy.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,21 @@ function errorOrDestroy(stream, err) {
128128
stream.emit('error', err);
129129
}
130130

131+
function isRequest(stream) {
132+
return stream && stream.setHeader && typeof stream.abort === 'function';
133+
}
134+
135+
// Normalize destroy for legacy.
136+
function destroyer(stream, err) {
137+
// request.destroy just do .end - .abort is what we want
138+
if (isRequest(stream)) return stream.abort();
139+
if (isRequest(stream.req)) return stream.req.abort();
140+
if (typeof stream.destroy === 'function') return stream.destroy(err);
141+
if (typeof stream.close === 'function') return stream.close();
142+
}
131143

132144
module.exports = {
145+
destroyer,
133146
destroy,
134147
undestroy,
135148
errorOrDestroy

lib/internal/streams/pipeline.js

Lines changed: 3 additions & 10 deletions

0 commit comments

Comments
 (0)