Skip to content

Escape percent signs in formatter output - #1048

Open
deepakganesh78 wants to merge 1 commit into
debug-js:masterfrom
deepakganesh78:fix/issue766-formatter-percent
Open

Escape percent signs in formatter output#1048
deepakganesh78 wants to merge 1 commit into
debug-js:masterfrom
deepakganesh78:fix/issue766-formatter-percent

Conversation

@deepakganesh78

Copy link
Copy Markdown

Fixes #766.

Custom formatter output is inlined into the first format argument, then interpreted again by Node's util.formatWithOptions or the browser console. Percent sequences inside inspected objects were therefore treated as new format specifiers and consumed trailing arguments.

This stringifies formatter results and escapes their percent signs before inlining them. The downstream formatting pass converts %% back to literal %, preserving the formatter output and leaving subsequent arguments untouched. Explicit %% sequences in the user's original format string still follow the existing path unchanged.

Validation:

  • npm run test:node -- --reporter dot — 18 passing
  • XO on the changed files under Node 20 — no errors (existing warnings only)
  • regression coverage for both the Node %o formatter and the shared custom formatter path

The repository's pinned XO stack does not run on Node 24 because a transitive dependency calls the removed util.isDate; lint was therefore run with Node 20.

Prevent formatter-generated percent sequences from being interpreted a second time by util.format or browser consoles, while preserving arbitrary formatter return values.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

% symbol in object interpreted as formatter

1 participant