eslint-plugin-oxlint
Turn off all rules already supported by oxlint
. The rules are extracted from here.
What is oxlint?
See https://oxc.rs/blog/2023-12-12-announcing-oxlint.html
Installation
pnpm add eslint-plugin-oxlint --D
Usage
Flat config
This plugin is optimized for flat config usage (eslint >= 9.0). See here for more details.
Example:
import oxlint from 'eslint-plugin-oxlint';
export default [
...
oxlint.configs['flat/recommended'],
];
Legacy config
If you are using legacy configuration (eslint < 9.0), you can use the following config:
module.exports = {
...
extends: [
...
"plugin:oxlint/recommended",
],
}
Detect rules from oxlint.json
If you are using flat configuration (eslint >= 9.0), you can use the following config:
import { buildFromOxlintConfigFile } from 'eslint-plugin-oxlint';
export default [
...,
...buildFromOxlintConfigFile('./oxlint.json'),
];
Or build it by an oxlint.json
-like object:
import { buildFromOxlintConfig } from 'eslint-plugin-oxlint';
export default [
...,
...buildFromOxlintConfig({
categories: {
correctness: 'warn'
},
rules: {
eqeqeq: 'warn'
}
}),
];
buildFromOxlintConfigFile
is not supported for legacy configuration (eslint < 9.0).
Run it before eslint
And then you can add the following script to your package.json
:
{
"scripts": {
"lint": "npx oxlint && npx eslint"
}
}
All Configs
configs: {
recommended: { plugins: [Array], rules: [Object] },
'flat/recommended': { rules: [Object] },
all: { plugins: [Array], rules: [Object] },
'flat/all': { rules: [Object] },
'flat/eslint': { rules: [Object] },
'flat/import': { rules: [Object] },
'flat/jest': { rules: [Object] },
'flat/jsdoc': { rules: [Object] },
'flat/jsx-a11y': { rules: [Object] },
'flat/nextjs': { rules: [Object] },
'flat/react': { rules: [Object] },
'flat/react-perf': { rules: [Object] },
'flat/tree-shaking': { rules: [Object] },
'flat/typescript': { rules: [Object] },
'flat/unicorn': { rules: [Object] },
'flat/pedantic': { rules: [Object] },
'flat/nursery': { rules: [Object] },
'flat/style': { rules: [Object] },
'flat/correctness': { rules: [Object] },
'flat/restriction': { rules: [Object] },
'flat/suspicious': { rules: [Object] }
}
VSCode Support
You need to install both the oxc and eslint extensions
Contributing
sparse clone the oxlint repository to have a local copy
pnpm clone
generates the rules from the sparse cloned Rust library, only for the latest version,
new rules that haven't been released will not be included.
pnpm generate
License
MIT