fix(frontend): handle NaN in parseUploadedFiles size parsing#1795
Open
hobostay wants to merge 1 commit into
Open
fix(frontend): handle NaN in parseUploadedFiles size parsing#1795hobostay wants to merge 1 commit into
hobostay wants to merge 1 commit into
Conversation
Fixes bytedance#1794 ## Problem The `parseUploadedFiles` function in `frontend/src/core/messages/utils.ts` uses `parseInt(fileMatch[2].trim(), 10) ?? 0` to parse file sizes. However, the nullish coalescing operator (`??`) only handles `null` and `undefined`, not `NaN`. When the size string cannot be parsed as a valid integer, `parseInt` returns `NaN`, which is not caught by `??`, causing the file size to be `NaN` instead of `0`. ## Root Cause - `parseInt('invalid', 10)` returns `NaN` (not `null` or `undefined`) - The `??` operator only checks for `null`/`undefined`, not `NaN` - Invalid size strings result in `NaN` being stored as the file size ## Fix Split the parsing into a separate step and use `isNaN()` to explicitly check for `NaN` values: ```typescript const size = parseInt(fileMatch[2].trim(), 10); files.push({ filename: fileMatch[1].trim(), size: isNaN(size) ? 0 : size, path: fileMatch[3].trim(), }); ``` This ensures that any non-numeric size values default to `0` instead of `NaN`.
|
Test User seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #1794
Problem
The
parseUploadedFilesfunction infrontend/src/core/messages/utils.tsuses
parseInt(fileMatch[2].trim(), 10) ?? 0to parse file sizes. However,the nullish coalescing operator (
??) only handlesnullandundefined,not
NaN. When the size string cannot be parsed as a valid integer,parseIntreturnsNaN, which is not caught by??, causing the filesize to be
NaNinstead of0.Root Cause
parseInt('invalid', 10)returnsNaN(notnullorundefined)??operator only checks fornull/undefined, notNaNNaNbeing stored as the file sizeFix
Split the parsing into a separate step and use
isNaN()to explicitlycheck for
NaNvalues:This ensures that any non-numeric size values default to
0instead ofNaN.Test Case
Before this fix, calling
parseUploadedFileswith content like:Would result in
{ filename: "file.txt", size: NaN, path: "/path/to/file" }.After this fix, the result is:
{ filename: "file.txt", size: 0, path: "/path/to/file" }.