From f6fb1a07a5fda2aa436f6ddf9a31025945cd67b3 Mon Sep 17 00:00:00 2001 From: "Sebastian \"Sebbie\" Silbermann" Date: Wed, 23 Jul 2025 10:07:37 +0200 Subject: [PATCH] [Flight] Remove superfluous whitespace when console method is called with non-strings (#33953) --- .../react-client/src/ReactClientConsoleConfigBrowser.js | 4 ++-- .../react-client/src/ReactClientConsoleConfigPlain.js | 4 ++-- .../react-client/src/ReactClientConsoleConfigServer.js | 4 ++-- .../react-server/src/ReactServerConsoleConfigBrowser.js | 9 +++++++-- .../react-server/src/ReactServerConsoleConfigPlain.js | 9 +++++++-- .../react-server/src/ReactServerConsoleConfigServer.js | 9 +++++++-- 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/react-client/src/ReactClientConsoleConfigBrowser.js b/packages/react-client/src/ReactClientConsoleConfigBrowser.js index bc39763275240..f67e4afa0c464 100644 --- a/packages/react-client/src/ReactClientConsoleConfigBrowser.js +++ b/packages/react-client/src/ReactClientConsoleConfigBrowser.js @@ -8,7 +8,7 @@ */ // Keep in sync with ReactServerConsoleConfig -const badgeFormat = '%c%s%c '; +const badgeFormat = '%c%s%c'; // Same badge styling as DevTools. const badgeStyle = // We use a fixed background if light-dark is not supported, otherwise @@ -49,7 +49,7 @@ export function bindToConsole( newArgs.splice( offset, 1, - badgeFormat + newArgs[offset], + badgeFormat + ' ' + newArgs[offset], badgeStyle, pad + badgeName + pad, resetStyle, diff --git a/packages/react-client/src/ReactClientConsoleConfigPlain.js b/packages/react-client/src/ReactClientConsoleConfigPlain.js index 5fe553744a9fd..ee4c87ca61331 100644 --- a/packages/react-client/src/ReactClientConsoleConfigPlain.js +++ b/packages/react-client/src/ReactClientConsoleConfigPlain.js @@ -8,7 +8,7 @@ */ // Keep in sync with ReactServerConsoleConfig -const badgeFormat = '[%s] '; +const badgeFormat = '[%s]'; const pad = ' '; const bind = Function.prototype.bind; @@ -39,7 +39,7 @@ export function bindToConsole( newArgs.splice( offset, 1, - badgeFormat + newArgs[offset], + badgeFormat + ' ' + newArgs[offset], pad + badgeName + pad, ); } else { diff --git a/packages/react-client/src/ReactClientConsoleConfigServer.js b/packages/react-client/src/ReactClientConsoleConfigServer.js index 1978a4bc8b8de..6e69ef12a3ce6 100644 --- a/packages/react-client/src/ReactClientConsoleConfigServer.js +++ b/packages/react-client/src/ReactClientConsoleConfigServer.js @@ -9,7 +9,7 @@ // Keep in sync with ReactServerConsoleConfig // This flips color using ANSI, then sets a color styling, then resets. -const badgeFormat = '\x1b[0m\x1b[7m%c%s\x1b[0m%c '; +const badgeFormat = '\x1b[0m\x1b[7m%c%s\x1b[0m%c'; // Same badge styling as DevTools. const badgeStyle = // We use a fixed background if light-dark is not supported, otherwise @@ -50,7 +50,7 @@ export function bindToConsole( newArgs.splice( offset, 1, - badgeFormat + newArgs[offset], + badgeFormat + ' ' + newArgs[offset], badgeStyle, pad + badgeName + pad, resetStyle, diff --git a/packages/react-server/src/ReactServerConsoleConfigBrowser.js b/packages/react-server/src/ReactServerConsoleConfigBrowser.js index d8ff2abb93c54..be8bf95346700 100644 --- a/packages/react-server/src/ReactServerConsoleConfigBrowser.js +++ b/packages/react-server/src/ReactServerConsoleConfigBrowser.js @@ -8,7 +8,7 @@ */ // Keep in sync with ReactClientConsoleConfig -const badgeFormat = '%c%s%c '; +const badgeFormat = '%c%s%c'; // Same badge styling as DevTools. const badgeStyle = // We use a fixed background if light-dark is not supported, otherwise @@ -54,7 +54,12 @@ export function unbadgeConsole( typeof badge === 'string' ) { // Remove our badging from the arguments. - args.splice(offset, 4, format.slice(badgeFormat.length)); + let unbadgedFormat = format.slice(badgeFormat.length); + if (unbadgedFormat[0] === ' ') { + // Spacing added on the Client if the original argument was a string. + unbadgedFormat = unbadgedFormat.slice(1); + } + args.splice(offset, 4, unbadgedFormat); return badge.slice(padLength, badge.length - padLength); } return null; diff --git a/packages/react-server/src/ReactServerConsoleConfigPlain.js b/packages/react-server/src/ReactServerConsoleConfigPlain.js index 602013cbe9761..d93e5f1a0ddf2 100644 --- a/packages/react-server/src/ReactServerConsoleConfigPlain.js +++ b/packages/react-server/src/ReactServerConsoleConfigPlain.js @@ -8,7 +8,7 @@ */ // Keep in sync with ReactClientConsoleConfig -const badgeFormat = '[%s] '; +const badgeFormat = '[%s]'; const padLength = 1; const pad = ' '; @@ -45,7 +45,12 @@ export function unbadgeConsole( badge.endsWith(pad) ) { // Remove our badging from the arguments. - args.splice(offset, 2, format.slice(badgeFormat.length)); + let unbadgedFormat = format.slice(badgeFormat.length); + if (unbadgedFormat[0] === ' ') { + // Spacing added on the Client if the original argument was a string. + unbadgedFormat = unbadgedFormat.slice(1); + } + args.splice(offset, 4, unbadgedFormat); return badge.slice(padLength, badge.length - padLength); } return null; diff --git a/packages/react-server/src/ReactServerConsoleConfigServer.js b/packages/react-server/src/ReactServerConsoleConfigServer.js index fbeadff911b30..7987b9b262fa1 100644 --- a/packages/react-server/src/ReactServerConsoleConfigServer.js +++ b/packages/react-server/src/ReactServerConsoleConfigServer.js @@ -8,7 +8,7 @@ */ // Keep in sync with ReactClientConsoleConfig -const badgeFormat = '\x1b[0m\x1b[7m%c%s\x1b[0m%c '; +const badgeFormat = '\x1b[0m\x1b[7m%c%s\x1b[0m%c'; // Same badge styling as DevTools. const badgeStyle = // We use a fixed background if light-dark is not supported, otherwise @@ -53,7 +53,12 @@ export function unbadgeConsole( typeof badge === 'string' ) { // Remove our badging from the arguments. - args.splice(offset, 4, format.slice(badgeFormat.length)); + let unbadgedFormat = format.slice(badgeFormat.length); + if (unbadgedFormat[0] === ' ') { + // Spacing added on the Client if the original argument was a string. + unbadgedFormat = unbadgedFormat.slice(1); + } + args.splice(offset, 4, unbadgedFormat); return badge.slice(padLength, badge.length - padLength); } return null;