eslint-plugin-oxlint

v0.10.0
Turn off all rules already supported by oxlint
oxc oxlint eslint rules

eslint-plugin-oxlint

GitHub Actions Workflow Status NPM Version NPM Downloads

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:

// eslint.config.js
import oxlint from 'eslint-plugin-oxlint';
export default [
  ...// other plugins
  oxlint.configs['flat/recommended'], // oxlint should be the last one
];

Legacy config

If you are using legacy configuration (eslint < 9.0), you can use the following config:

// .eslintrc.js
module.exports = {
  ... // other config
  extends: [
    ... // other presets
    "plugin:oxlint/recommended",
  ],
}

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: {
    // recmmended only contains the `correctness` category
    recommended: { plugins: [Array], rules: [Object] },
    'flat/recommended': { rules: [Object] },

    // all rules available
    all: { plugins: [Array], rules: [Object] },
    'flat/all': { rules: [Object] },

    // turn eslint rules off by plugin
    '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] },

    // turn eslint rules off by oxlint category
    '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

npm i eslint-plugin-oxlint

Metadata

  • MIT
  • Whatever
  • Dunqing
  • released 10/19/2024

Downloads