-
Notifications
You must be signed in to change notification settings - Fork 562
build(client): upgrade typescript-eslint to v8.50 #26187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This reverts commit b0901dc.
Remove all eslint-suppressions.json files from the repository. These files were added to suppress ESLint violations during the typescript-eslint upgrade and are no longer needed.
Add eslint-disable comments for prefer-nullish-coalescing, prefer-optional-chain, no-unsafe-enum-comparison, strict-boolean-expressions, no-base-to-string, and await-thenable rules where auto-fix is unsafe. These violations were previously suppressed by eslint-suppressions.json files which have been removed. Using inline disables instead of auto-fix because the auto-fixers can cause subtle logic bugs when converting || to ?? or && chains to ?. chains for falsy (but valid) values.
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.
Pull request overview
This PR upgrades typescript-eslint from v8.18 to v8.50 and @eslint/js from v8.57 to v9.39. The upgrade includes a critical parser configuration fix and adds inline ESLint suppressions where auto-fixing would change code behavior.
Changes:
- Upgrades core ESLint dependencies to latest compatible versions
- Fixes parser options conflict by explicitly setting
project: nullwhen usingprojectService - Adds inline suppressions for prefer-nullish-coalescing, prefer-optional-chain, and other rules where auto-fix could change behavior with falsy values
Reviewed changes
Copilot reviewed 88 out of 90 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Updates dependency versions for typescript-eslint (v8.50), @eslint/js (v9.39), eslint-plugin-jsdoc (v61.5) |
| common/build/eslint-config-fluid/package.json | Updates package dependency specifiers to match lock file |
| common/build/eslint-config-fluid/flat.mts | Adds project: null parser option to prevent conflict with projectService |
| common/build/eslint-config-fluid/printed-configs/*.json | Auto-generated config changes from new ESLint rule versions |
| packages//src/**/.ts | Adds inline suppressions with justifications for cases where auto-fix would be unsafe |
Files not reviewed (2)
- common/build/eslint-config-fluid/pnpm-lock.yaml: Language not supported
- pnpm-lock.yaml: Language not supported
| throw new Error("Invalid Snapshot."); | ||
| } | ||
|
|
||
| // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/prefer-nullish-coalescing -- intentional behavior |
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.
What does intentional behavior mean? Here and elsehwere.
| * Licensed under the MIT License. | ||
| */ | ||
|
|
||
| /* eslint-disable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/prefer-optional-chain */ |
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.
Add TODO comments for all file-wide suppressions.
Summary
Upgrades typescript-eslint from v8.18 to v8.50 and @eslint/js from v8.57 to v9.39.
Key changes:
project: nullin parser options to prevent conflict withprojectServicein newer typescript-eslint versions||to??or&&chains to?.would change behavior for falsy-but-valid values (0, false, empty string)