From cd22717c274061fd7dc13cd6eaff10e6a3946508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Sun, 13 Oct 2024 12:57:50 -0400 Subject: [PATCH] [Flight] Also don't cut off type and key (#31209) --- packages/react-client/src/ReactFlightClient.js | 6 ++---- packages/react-server/src/ReactFlightServer.js | 11 +++++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/react-client/src/ReactFlightClient.js b/packages/react-client/src/ReactFlightClient.js index 2f60ccddb4..141058fb9d 100644 --- a/packages/react-client/src/ReactFlightClient.js +++ b/packages/react-client/src/ReactFlightClient.js @@ -1364,10 +1364,8 @@ function parseModelString( // happened. Object.defineProperty(parentObject, key, { get: function () { - // We intentionally don't throw an error object here because it looks better - // without the stack in the console which isn't useful anyway. - // eslint-disable-next-line no-throw-literal - throw ( + // TODO: We should ideally throw here to indicate a difference. + return ( 'This object has been omitted by React in the console log ' + 'to avoid sending too much data from the server. Try logging smaller ' + 'or more specific objects.' diff --git a/packages/react-server/src/ReactFlightServer.js b/packages/react-server/src/ReactFlightServer.js index 6adf619290..ca004a6e79 100644 --- a/packages/react-server/src/ReactFlightServer.js +++ b/packages/react-server/src/ReactFlightServer.js @@ -3465,7 +3465,18 @@ function renderConsoleValue( if (element._owner != null) { outlineComponentInfo(request, element._owner); } + if (typeof element.type === 'object' && element.type !== null) { + // If the type is an object it can get cut off which shouldn't happen here. + doNotLimit.add(element.type); + } + if (typeof element.key === 'object' && element.key !== null) { + // This should never happen but just in case. + doNotLimit.add(element.key); + } doNotLimit.add(element.props); + if (element._owner !== null) { + doNotLimit.add(element._owner); + } if (enableOwnerStacks) { let debugStack: null | ReactStackTrace = null;