oxc/tasks/lint_rules/README.md
Yuji Sugiura cba8a4c131
feat(tasks): Enable tasks/lint_rules(JS ver) (#2177)
- [x] Remove old task(Rust ver)
- [x] Migrate to new task(JS ver)
- [x] Confirm CI works w/o `--output`
-
https://github.com/oxc-project/oxc/actions/runs/7663961642/job/20887579432?pr=2177
- [x] Confirm CI works w/ fake issue no
  - https://github.com/oxc-project/oxc/issues/2117
- [x] Enable

- - -

I've noticed that

- eslint/no-extra-semi
- eslint/no-mixed-spaces-and-tabs

are maked as deprecated and also recommended.

This is ESLint side
[issue](https://github.com/eslint/eslint/pull/17696#issuecomment-1792452766)
and will fix after v9.
2024-01-26 15:45:05 +08:00

36 lines
1.2 KiB
Markdown

# tasks/lint_rules
Task to update implementation progress for each linter plugin.
```sh
Usage:
$ cmd [--target=<pluginName>]... [--update] [--help]
Options:
--target, -t: Which plugin to target, multiple allowed
--update: Update the issue instead of printing to stdout
--help, -h: Print this help message
```
Environment variables `GITHUB_TOKEN` is required when `--update` is specified.
## Design
- Always install `eslint-plugin-XXX@latest` from npm
- Load them through ESLint Node.js API
- https://eslint.org/docs/latest/integrate/nodejs-api#linter
- List all their plugin rules(name, deprecated, recommended, docs, etc...)
- List all our implemented rules(name)
- Combine these lists and render as markdown
- Update GitHub issue body
## FAQ
- Why is this task written in Node.js? Why not Rust?
- Some plugins do not provide static rules list
- https://github.com/jest-community/eslint-plugin-jest/
- Easiest way to collect the list is just evaluating config file in JavaScript
- Why `.cjs`?
- To keep dependencies as simple as possible
- Some plugins only provide their module as CommonJS
- So, CommonJS is the only way to go without bundling