v3 brings eslint v9
All related dependencies are also updated.
The rules config has been refreshed. Breaking changes were tried to be avoided, but there might be a few.
- indent
rule
indent rule should work better now - although it's still buggy - there might be reports on code which was not reported before.
- no-unused-vars
rule
The biggest pain point might be that typeof
does not mark a variable as used by no-unused-vars
rule - now error is reported.
Related thread: typescript-eslint/typescript-eslint#10266
- Added perfectionist/sort-named-imports and perfectionist/sort-named-exports
We had named imports sorted in v1 when tslint was taking care of that. But it got lost during migration to eslint, as I wrongly assumed that import/order will take care of that.
Later on, the support for sorting named imports (but still not exports) was added to the original eslint-plugin-import import-js/eslint-plugin-import#3043 but we have switched to eslint-plugin-import-x since and the porting request of that feature is still pending. un-ts/eslint-plugin-import-x#225
We could consider switching back to eslint-plugin-import but it still has a set of its own, still unresolved issues.
Instead, I decided to try eslint-plugin-perfectionist and the sorting rules from that. Note we are sticking with import/order for sorting and grouping imports for the time being, as more time would be needed to convert the sorting and grouping config to achieve similar behaviour with the perfectionist/sort-imports rule.
There is also perfectionist/sort-exports rule, but it does not provide config options to define grouping and custom sorting, to achieve similar behaviour to import/order with our custom config applied, so for now we won't enforce that rule.
- @stylistic/quotes now configured with allowTemplateLiterals: 'avoidEscape'
It's a breaking change, but auto-fixable. It comes with the update of @stylistic/eslint-plugin to v3.
For more info check the PRs: #9 and #10
Full Changelog: v2.0.2...v3.0.0