diff --git a/packages/next/src/server/stream-utils/index.d.ts b/packages/next/src/server/stream-utils/index.d.ts index e16cd54baa15f..1ded12e019455 100644 --- a/packages/next/src/server/stream-utils/index.d.ts +++ b/packages/next/src/server/stream-utils/index.d.ts @@ -19,7 +19,7 @@ export function streamToString( stream: Readable | ReadableStream ): Promise -export function chainStreams( - ...streams: ReadableStream[] -): ReadableStream +export function chainStreams( + ...streams: ReadableStream[] +): ReadableStream export function chainStreams(...streams: Readable[]): Readable diff --git a/packages/next/src/server/stream-utils/stream-utils.node.ts b/packages/next/src/server/stream-utils/stream-utils.node.ts index 4111704d051d7..09b58e71b4433 100644 --- a/packages/next/src/server/stream-utils/stream-utils.node.ts +++ b/packages/next/src/server/stream-utils/stream-utils.node.ts @@ -2,7 +2,13 @@ * By default, this file exports the methods from streams-utils.edge since all of those are based on Node.js web streams. * This file will then be an incremental re-implementation of all of those methods into Node.js only versions (based on proper Node.js Streams). */ -import { PassThrough, type Readable, Transform, Writable, pipeline } from 'node:stream' +import { + PassThrough, + type Readable, + Transform, + Writable, + pipeline, +} from 'node:stream' import type { Options as RenderToPipeableStreamOptions } from 'react-dom/server.node' import { StringDecoder } from 'node:string_decoder' @@ -87,8 +93,11 @@ export function chainStreams(...streams: Readable[]): Readable { const transform = new Transform() - pipeline(streams, transform, () => { - /* do nothing */ + pipeline(streams, transform, (err) => { + // to match `stream-utils.edge.ts`, this error is just ignored. + // but maybe we at least log it? + console.log(`Invariant: error when pipelining streams`) + console.error(err) }) return transform