diff --git a/doc/api/stream.md b/doc/api/stream.md index 808e7a6b8f2634..42885b48c74a27 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -65,6 +65,15 @@ or `require('node:stream').promises`. * `streams` {Stream\[]|Iterable\[]|AsyncIterable\[]|Function\[]} @@ -76,9 +85,11 @@ added: v15.0.0 * `destination` {Stream|Function} * `source` {AsyncIterable} * Returns: {Promise|AsyncIterable} -* `options` {Object} +* `options` {Object} Pipeline options * `signal` {AbortSignal} - * `end` {boolean} + * `end` {boolean} End the destination stream when the source stream ends. + Transform streams are always ended, even if this value is `false`. + **Default:** `true`. * Returns: {Promise} Fulfills when the pipeline is complete. ```cjs diff --git a/test/parallel/test-stream-pipeline.js b/test/parallel/test-stream-pipeline.js index 915a035264c7a7..8237fff33b3ac8 100644 --- a/test/parallel/test-stream-pipeline.js +++ b/test/parallel/test-stream-pipeline.js @@ -1476,10 +1476,14 @@ const tsp = require('timers/promises'); }); const duplex = new PassThrough(); + const transform = new PassThrough(); read.push(null); - await pipelinePromise(read, duplex, { end: false }); + await pipelinePromise(read, transform, duplex, { end: false }); + + assert.strictEqual(transform.destroyed, true); + assert.strictEqual(transform.writableEnded, true); assert.strictEqual(duplex.destroyed, false); assert.strictEqual(duplex.writableEnded, false);