Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Hoist the code-point length check before this fallback.
Line 23 still runs before the code-point-aware
totalChars <= maxLengthguard, so astral-only strings that already fit are still truncated. For example,truncateWithEndVisible('🍣🍣🍣🍣🍣', 8, 5)now returns'...🍣🍣🍣🍣🍣'because Line 18 compares UTF-16 length. That also makes the new assertions at Lines 35-36 validate the wrong behavior; once this is fixed, they should either expect the original string or use a smallermaxLengthto exercise the fallback.Suggested fix
export function truncateWithEndVisible(str: string, maxLength = 20, endChars = 5): string { const ELLIPSIS = '...'; const ELLIPSIS_LENGTH = ELLIPSIS.length; - if (!str || str.length <= maxLength) {+ if (!str) { return str; } ++ const chars = Array.from(str);+ const totalChars = chars.length;++ if (totalChars <= maxLength) {+ return str;+ } if (maxLength <= endChars + ELLIPSIS_LENGTH) { - return ELLIPSIS + Array.from(str).slice(-endChars).join('');+ return ELLIPSIS + chars.slice(-endChars).join(''); } -- const chars = Array.from(str);- const totalChars = chars.length;-- if (totalChars <= maxLength) {- return str;- }📝 Committable suggestion
🤖 Prompt for AI Agents