# tasks/lint_rules Task to update implementation progress for each linter plugin. ```sh Usage: $ cmd [--target=]... [--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