feat(linter): add typescript/prefer-readonly rule#19446
feat(linter): add typescript/prefer-readonly rule#19446graphite-app[bot] merged 1 commit intomainfrom
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
a405c01 to
4ea2e55
Compare
7b778d5 to
405e629
Compare
4ea2e55 to
c740bcf
Compare
405e629 to
09cbfbb
Compare
c740bcf to
71d8179
Compare
Merge activity
|
There was a problem hiding this comment.
Pull request overview
Adds support for the TypeScript ESLint prefer-readonly rule to the linter’s TypeScript (tsgolint/type-aware) rule set, including configuration schema wiring and fixture/snapshot coverage.
Changes:
- Introduces a new
typescript/prefer-readonlyrule definition withonlyInlineLambdasconfiguration support. - Registers the rule in the TypeScript rules module list and generated rule enum/runner plumbing.
- Adds/updates fixtures and snapshots to exercise the rule in both the base tsgolint suite and the rule-options suite.
Reviewed changes
Copilot reviewed 11 out of 13 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/oxc_linter/src/rules/typescript/prefer_readonly.rs | New rule definition + config schema/serialization for tsgolint integration. |
| crates/oxc_linter/src/rules.rs | Exposes the new prefer_readonly module under the TypeScript rules namespace. |
| crates/oxc_linter/src/generated/rules_enum.rs | Adds the rule to the generated enum, IDs, dispatch, config schema plumbing, and RULES list. |
| crates/oxc_linter/src/generated/rule_runner_impls.rs | Registers a RuleRunner impl for the new rule (consistent with other tsgolint rules). |
| apps/oxlint/src/snapshots/fixtures__tsgolint_rule_options_--type-aware@oxlint.snap | Updates snapshot output to include the new rule’s diagnostic and updated counts. |
| apps/oxlint/src/snapshots/fixtures__tsgolint_--type-aware@oxlint.snap | Updates snapshot output to include the new rule’s diagnostic and updated counts. |
| apps/oxlint/fixtures/tsgolint_rule_options/test.ts | Adds a fixture case for onlyInlineLambdas. |
| apps/oxlint/fixtures/tsgolint_rule_options/.oxlintrc.json | Enables typescript/prefer-readonly with onlyInlineLambdas: true for the options fixture suite. |
| apps/oxlint/fixtures/tsgolint/prefer-readonly.ts | Adds a dedicated fixture file for the rule. |
| apps/oxlint/fixtures/tsgolint/.oxlintrc.json | Enables typescript/prefer-readonly in the tsgolint fixture suite. |
09cbfbb to
919f836
Compare
71d8179 to
619fecc
Compare
919f836 to
a1cea63
Compare
619fecc to
56a7feb
Compare
# Oxlint ### 💥 BREAKING CHANGES - 4315594 oxlint: [**BREAKING**] Deprecate `"always"` and `"as-needed"` options of the radix rule (#19408) (Sysix) - d4c7af3 linter: [**BREAKING**] Remove `allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing` option (#19451) (camc314) ### 🚀 Features - 82ca5c3 linter: Add typescript/dot-notation rule (#19442) (camc314) - 6db0811 linter: Implement eslint-plugin-vitest/no-importing-vitest-globals (#18694) (Said Atrahouch) - c7fe8ae linter: Implement eslint-plugin-vitest/prefer-import-in-mock (#17966) (Said Atrahouch) - 0abb39a linter: Implement eslint-vitest-jest-plugin/prefer-mock-return-shorthand (#18002) (Said Atrahouch) - 2b95537 linter: Implement `n/no-path-concat` rule (#19502) (Mikhail Baev) - 735d0e4 linter: Implement typescript/no-useless-default-assignment (#19488) (camc314) - 31c3a93 linter: Add typescript/no-unnecessary-type-parameters rule (#19450) (camc314) - c948090 linter: Add typescript/consistent-return rule (#19449) (camc314) - 9f87df0 linter: Add typescript/prefer-string-starts-ends-with rule (#19448) (camc314) - 04536be linter: Add typescript/prefer-regexp-exec rule (#19447) (camc314) - 56a7feb linter: Add typescript/prefer-readonly rule (#19446) (camc314) - a1cea63 linter: Add typescript/no-unnecessary-qualifier rule (#19445) (camc314) - e3144d2 linter: Add typescript/prefer-find rule (#19444) (camc314) - 13c7408 linter: Add typescript/prefer-readonly-parameter-types rule (#19443) (camc314) - 9b17d44 linter: Add typescript/strict-void-return rule (#19441) (camc314) - ed821b4 linter: Add typescript/consistent-type-exports rule (#19440) (camc314) ### 🐛 Bug Fixes - daad7bc linter/array-callback-return: Check `allowVoid` option (#19506) (Said Atrahouch) - 638cf94 linter: Add help text to eslint rule diagnostics (#19508) (Kyle Tse) - 79fc6d7 linter: Move no-use-before-define to eslint plugin (#19438) (camc314) - c832a9f linter: Add `onScrollEnd` and `onScrollEndCapture` to `react/no-unknown-property`. (#19536) (connorshea) - 999a0db linter: Add help text to `symbol-description` diagnostics (#19538) (Anthony Amaro) - f064482 linter: Add help text to eslint rule diagnostics (#19539) (Anthony Amaro) - fd11073 linter/react/no-unknown-property: Add missing `fetchPriority` prop (#19525) (João Pedro Schmitz) - a9bb604 linter/no-shadow: Align initializer shadow handling with typescript-eslint (#19462) (camc314) - 32e6eb9 linter: Handle typed arrays/array buffers in `prefer-spread` rule. (#19478) (connorshea) - e309f84 linter: Handle additional cases in `typescript/consistent-generic-constructors` rule. (#19477) (connorshea) - 71db91a linter/array-callback-return: Check `fromAsync`, update test cases (#19483) (Said Atrahouch) - 2a12d74 linter: Handle optional chaining in `no-array-method-this-argument` rule. (#19476) (connorshea) - f65310b linter: Handle optional chaining in `prefer-object-from-entries` rule. (#19475) (connorshea) - 840acf4 linter: Handle optional chain in `no-unnecessary-array-flat-depth` rule. (#19471) (connorshea) - 85a19e9 linter: Skip string literal imports in `consistent-assert` rule. (#19474) (connorshea) ### ⚡ Performance - 6155ac4 linter/constructor-super: Use node_id over nodes loop (#19489) (camc314) - a02496d linter/consistent-index-object-style: Resolve circular type refs semantically (#19490) (camc314) # Oxfmt ### 🚀 Features - 652c346 oxfmt/lsp: Support `untitled://` schema (#19287) (Sysix) ### 🐛 Bug Fixes - 6c61b70 oxfmt: Fix outdated `sortImports.groups` doc comments (#19513) (leaysgur) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>

No description provided.