[No QA] Upgrade to ESLint 9#71593
Conversation
…icted-types and @typescript-eslint/no-empty-object-type
…/no-empty-object-type
|
|
|
Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers! |
|
@roryabraham, I suggest these follow-up PRs:
I think @LukasMod is handling 1 and 2? I can take care of 3 and 4 if needed. Let me know if I missed anything. Update:
|
|
Thanks for that!
eslint-config-airbnb-extended looks quite new and promising (96 stars, 27829 weekly downloads). It's a replacement for eslint-config-airbnb + eslint-config-airbnb-typescript. One reason we dropped eslint-config-airbnb still applies (some rules don't make sense for us and we have to override them). However, there's no evidence it's unfriendly to the community, so it could be an option. |
Let's create separate issues for each, to parallelize and simplify payment |
| // eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
| MULTI_SCAN_EDUCATIONAL_MODAL, |
There was a problem hiding this comment.
I think we should not suppress this rule. If it's a type only, we should not declare it at runtime
| let isAllScanFilesCanBeRead = true; | ||
|
|
||
| Promise.all( | ||
| // eslint-disable-next-line @typescript-eslint/await-thenable |
There was a problem hiding this comment.
I think this one we should refactor rather than disabling
|
I think the things we'd like to change are non-critical enough that we don't want to block and get a zillion more conflicts |
|
@roryabraham looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
|
ignored lint-changed to limit risky runtime changes |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
| "perf-test": "NODE_OPTIONS=--experimental-vm-modules npx reassure", | ||
| "typecheck": "NODE_OPTIONS=--max_old_space_size=8192 tsc", | ||
| "lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=161 --cache --cache-location=node_modules/.cache/eslint", | ||
| "lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=244 --cache --cache-location=node_modules/.cache/eslint", |
There was a problem hiding this comment.
@QichenZhu Do we have any way to check how many Onyx.connect warnings there are?
|
@QichenZhu could you also look into this warning as a follow-up? I got it after running (node:29662) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///Users/blazejkustra/Documents/swmansion/expensify/SWMApp/eslint.config.js?mtime=1760621667567 is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to /Users/blazejkustra/Documents/swmansion/expensify/SWMApp/package.json. |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 9.2.33-0 🚀
|
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.2.33-4 🚀
|

Explanation of Change
Fixed Issues
$ #67420
PROPOSAL:
Tests
--max-warningsOffline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos (N/A)
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop