From b56e0ccb0225b98537a7cc67485b7cdb4ffb563d Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Mon, 25 May 2026 00:40:19 +0000 Subject: [PATCH] [Performance] Optimize unstyled utility Add an early return to the `unstyled` function in `packages/cli-kit/src/public/node/output.ts` to skip ANSI stripping for strings that don't contain the ESC character (`\u001b`). This avoids expensive regex execution for plain strings, which is a common case in terminal layout and logging paths. --- packages/cli-kit/src/public/node/output.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/cli-kit/src/public/node/output.ts b/packages/cli-kit/src/public/node/output.ts index 73670baa22..8bd9798552 100644 --- a/packages/cli-kit/src/public/node/output.ts +++ b/packages/cli-kit/src/public/node/output.ts @@ -402,6 +402,10 @@ export function outputWhereAppropriate(logLevel: LogLevel, logger: Logger, messa * @returns The message without styles. */ export function unstyled(message: string): string { + // Optimization: skip regex execution for strings that don't have ANSI escape codes. + // In high-frequency paths like terminal layout calculations, this can save significant CPU time. + if (!message.includes('\u001b')) return message + return stripAnsi(message) }