Skip to content

haoqunjiang/eslint-plugin-oxlint

This branch is 1 commit ahead of, 113 commits behind oxc-project/eslint-plugin-oxlint:main.

Folders and files

NameName
Last commit message
Last commit date
Oct 18, 2024
Mar 5, 2024
May 20, 2024
Oct 23, 2024
Oct 21, 2024
Oct 11, 2024
May 20, 2024
Oct 20, 2024
Jun 9, 2024
Oct 11, 2024
Dec 28, 2023
Oct 11, 2024
Oct 11, 2024
Oct 21, 2024
Oct 21, 2024
May 20, 2024
Oct 11, 2024
Oct 11, 2024

Repository files navigation

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

About

Turn off all rules already supported by oxlint

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%