Skip to content

[1/2] fix: keep a merge field's resolved text as text when it starts with digits - #152

Open
dazzatronus wants to merge 1 commit into
mainfrom
derk/sdk-merge-field-resolution
Open

[1/2] fix: keep a merge field's resolved text as text when it starts with digits#152
dazzatronus wants to merge 1 commit into
mainfrom
derk/sdk-merge-field-resolution

Conversation

@dazzatronus

@dazzatronus dazzatronus commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

A merge field whose resolved text starts with a digit became a number: "03 image of a cat" resolved to 3, and the property lost its text entirely. Any value that looks numeric at the front is affected, including "007" and "0xffffff".

resolveToNumber used parseFloat, which accepts a numeric prefix. Now a whole-string parse, so text stays text unless the entire value is a number.

This moves the SDK closer to the render backend without reaching it. The backend decides the resulting type from the type of replace; the SDK infers it from the property name and the resolved text, so a numeric-looking string can still differ between preview and render. Closing that gap needs a breaking change to the public merge field typings and is tracked separately.

Verify: npx jest tests/merge-field-numeric-resolution.test.ts — a bare number, a numeric prefix, an empty resolution, a non-template input.

Risk: a field that previously resolved to a number now stays a string unless the whole value is numeric. Templates relying on the prefix behaviour change shape.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant