Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions lib/_http_outgoing.js
Original file line number Diff line number Diff line change
Expand Up @@ -889,6 +889,10 @@ OutgoingMessage.prototype.flush = internalUtil.deprecate(function() {
this.flushHeaders();
}, 'OutgoingMessage.flush is deprecated. Use flushHeaders instead.', 'DEP0001');

OutgoingMessage.prototype.pipe = function pipe() {
// OutgoingMessage should be write-only. Piping from it is disabled.
throw new Error('Pipe from a write-only stream');
};

module.exports = {
OutgoingMessage
Expand Down
15 changes: 15 additions & 0 deletions test/parallel/test-outgoing-message-pipe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
'use strict';
const assert = require('assert');
const common = require('../common');
const OutgoingMessage = require('_http_outgoing').OutgoingMessage;

// Verify that an error is thrown upon a call to `OutgoingMessage.pipe`.

const outgoingMessage = new OutgoingMessage();
assert.throws(
() => { outgoingMessage.pipe(outgoingMessage); },
(err) => {
return ((err instanceof Error) && /Pipe from a write-only stream/.test(err));
},
"OutgoingMessage.pipe should throw an error"
);