v0.9.0
Highlights
All non-deprecated typescript-eslint rules are now supported
Rslint's Go catalog now implements all 125 rules that @typescript-eslint/eslint-plugin v8.68.0 does not mark as deprecated, up from 124 in v0.8.2. ESLint core coverage also rises from 187 to 194 of the 199 rules not marked as deprecated in ESLint v10.9.1 (97.5%).
What's Changed
Breaking Changes 🍭
Legacy JSON config files are no longer loaded
Rslint no longer loads rslint.json or rslint.jsonc while linting. Passing one to --config is rejected, and automatic discovery ignores these files. Run the following command before upgrading to migrate a legacy JSON/JSONC config to a JavaScript or TypeScript module config:
rslint --initThe low-level API config and high-level API overrideConfig JSON payloads remain supported.
Default CLI text output has changed
The default human-readable formatter now emits start and terminal success/error status lines and reports one canonical file count, replacing the previous Found ... summary. Scripts that parse the default text must update or switch to --format jsonline; the jsonline, github, and gitlab formats and exit-code behavior are unchanged.
New Features 🎉
- feat: port rule unicorn/no-exports-in-scripts by @guihua-c in #1913
- feat(rstest): add prefer-called-once rule by @elecmonkey in #1921
- feat(eslint-plugin-jest): add
prefer-importing-jest-globalsrule by @eryue0220 in #1602 - feat: port rule yoda by @swwind in #1787
- feat: port rule unicorn/prefer-ternary by @hebeiqing in #1903
- feat: port rule no-invalid-this by @swwind in #1737
- feat: port rule class-methods-use-this by @swwind in #1875
- feat(unicorn): port rule no-array-concat-in-loop by @elecmonkey in #1792
- feat(rstest): add warn-todo rule by @elecmonkey in #1889
- feat: port rule unicorn/no-magic-array-flat-depth by @rockm3 in #1915
- feat(rstest): add require-test-timeout rule by @elecmonkey in #1918
- feat(unicorn): port rule throw-new-error by @Werjiang in #1939
- feat(rstest): add hoisted-apis-on-top rule by @elecmonkey in #1929
- feat(rstest): add prefer-import-in-mock rule by @elecmonkey in #1930
- feat(react): port rule jsx-no-useless-fragment by @elecmonkey in #1941
- feat: port rule logical-assignment-operators by @swwind in #1794
- feat: port rule grouped-accessor-pairs by @swwind in #1898
- feat: port rule id-match by @swwind in #1804
- feat: port rule id-denylist by @swwind in #1802
- feat: support flat config basePath by @fansenze in #1945
Bug Fixes 🐞
- fix(typescript-eslint): align prefer-readonly-parameter-types rule by @swwind in #1902
- fix(typescript-eslint): align consistent-type-imports rule by @swwind in #1899
- fix: align prefer-optional-chain with upstream behavior by @fansenze in #1928
- fix: align no-invalid-this edge semantics by @fansenze in #1931
- fix: align no-unused-vars removal suggestions by @fansenze in #1932
- fix: align no-empty with ESLint by @fansenze in #1934
- fix: align no-non-null-assertion suggestions by @fansenze in #1933
- fix: align require-await suggestions by @fansenze in #1935
- fix: align plugin edits with ESLint API by @fansenze in #1936
- fix: preserve JSDoc class field names by @fansenze in #1938
- fix: align no-array-concat-in-loop variable lookup by @fansenze in #1940
- fix: align throw-new-error with upstream semantics by @fansenze in #1943
- fix: align React fragment edge cases by @fansenze in #1947
- fix: preserve logical assignment semantics by @fansenze in #1948
- fix: align no-magic-array-flat-depth with Unicorn v73 by @fansenze in #1949
- fix: align accessor token and range semantics by @fansenze in #1950
- fix(typescript-eslint): align require-await rule by @swwind in #1926
- fix(typescript-eslint): align no-unsafe-argument rule by @swwind in #1925
- fix(typescript-eslint): align no-unsafe-enum-comparison rule by @swwind in #1924
- fix: refresh playground diagnostics after edits by @fansenze in #1953
- fix: preserve class member suggestion semantics by @fansenze in #1954
- fix: preserve enum comparison semantics by @fansenze in #1955
- fix: validate Unicode regex rule options by @swwind in #1956
- fix: handle external TypeScript references in id-match by @fansenze in #1958
- fix: align identifier and RegExp tracking with ESLint by @fansenze in #1959
- fix: preserve config roots for scoped ignores by @fansenze in #1960
Document 📖
- docs: clarify core lint architecture by @fansenze in #1923
- docs: update README current status by @chenjiahan in #1952
Other Changes
New Contributors
- @hebeiqing made their first contribution in #1903
- @Werjiang made their first contribution in #1939
Full Changelog: v0.8.2...v0.9.0