From 88a656afa339e1ad258f8894ef6cd82086025f9b Mon Sep 17 00:00:00 2001 From: Erick Wendel Date: Fri, 13 Jan 2023 12:28:02 -0300 Subject: [PATCH] stream: load stream module when using stream/promises --- lib/stream/promises.js | 2 ++ .../test-stream3-pipeline-async-iterator.js | 22 +++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/stream/promises.js b/lib/stream/promises.js index 7a896f87b14392..512012860f4a7a 100644 --- a/lib/stream/promises.js +++ b/lib/stream/promises.js @@ -13,6 +13,8 @@ const { const { pipelineImpl: pl } = require('internal/streams/pipeline'); const { finished } = require('internal/streams/end-of-stream'); +require('stream'); + function pipeline(...streams) { return new Promise((resolve, reject) => { let signal; diff --git a/test/parallel/test-stream3-pipeline-async-iterator.js b/test/parallel/test-stream3-pipeline-async-iterator.js index f14031457bd46d..ad1e4647777bcd 100644 --- a/test/parallel/test-stream3-pipeline-async-iterator.js +++ b/test/parallel/test-stream3-pipeline-async-iterator.js @@ -1,8 +1,6 @@ +/* eslint-disable node-core/require-common-first, require-yield */ 'use strict'; -const common = require('../common'); -const assert = require('assert'); const { pipeline } = require('node:stream/promises'); - { // Ensure that async iterators can act as readable and writable streams async function* myCustomReadable() { @@ -10,18 +8,20 @@ const { pipeline } = require('node:stream/promises'); yield 'World'; } - // eslint-disable-next-line require-yield + const messages = []; async function* myCustomWritable(stream) { - const messages = []; for await (const chunk of stream) { messages.push(chunk); } - assert.deepStrictEqual(messages, ['Hello', 'World']); } - pipeline( - myCustomReadable, - myCustomWritable, - ) - .then(common.mustCall()); + (async () => { + await pipeline( + myCustomReadable, + myCustomWritable, + ); + // Importing here to avoid initializing streams + require('assert').deepStrictEqual(messages, ['Hello', 'World']); + })() + .then(require('../common').mustCall()); }