Files
oxc-project__oxc/tasks/lint_rules/jsconfig.json
connorshea fe357a4487 docs(linter): include rationale column for unsupported lint rules (#17512)
Fix #17503 and #15927.

This converts the NOT_SUPPORTED_RULE_NAMES list over to a JSON file, and implements a Rationale column to the markdown table rendered for each plugin issue. The JSON file conversion is done because I think it'd be useful to 1) reuse this file in Rust, and so this makes it much easier to parse in Rust, and 2) potentially also reuse it in oxlint-migrate.

You can see the markdown output after this change here:

https://gist.github.com/connorshea/2b6803c9e2045be9928d394d9112f0ae

The content of the list should be identical (other than the rationale values I've added), with a few exceptions:

- Added [`vue/jsx-uses-vars`](https://eslint.vuejs.org/rules/jsx-uses-vars.html#vue-jsx-uses-vars) as an unsupported rule with the rationale that it _should_ already be implemented via no-unused-vars, as it only applies to vue components using JSX. Though I'm not 100% sure if that is actually supported properly at present for Vue files.
- I removed [`vue/define-macros-order`](https://eslint.vuejs.org/rules/define-macros-order.html#vue-define-macros-order) from the unsupported list, as it seems like it does not require template parsing and should be possible to implement?
- Added `n/prefer-node-protocol`, `n/no-process-exit`, and `n/file-extension-in-import` to the unsupported rule list, as they are implemented by other rules in oxlint already.
- Added `vue/no-unused-properties` and `vue/no-undef-properties` as they both require Vue template parsing.
- Added `jest/no-unnecessary-assertion`, `jest/unbound-method`, `jest/no-error-equal`, `vitest/unbound-method`, and `vitest/prefer-vi-mocked` to unsupported rules with rationale that they require type information.
2025-12-31 21:18:37 +00:00

12 lines
208 B
JSON

{
"compilerOptions": {
"checkJs": false,
"moduleResolution": "node16",
"module": "node20",
"lib": ["esnext"],
"target": "esnext",
"resolveJsonModule": true,
"strict": true
}
}