0.3.0 • Published 2 days ago

eslint-plugin-oxlint v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 days ago

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?

You can see https://oxc-project.github.io/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. Use it like this:

// 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

build cjs and esm versions of the library

pnpm build

License

MIT

0.3.0

2 days ago

0.2.9

1 month ago

0.2.8

1 month ago

0.2.7

2 months ago

0.2.4

3 months ago

0.2.3

4 months ago

0.2.2

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.1.0

5 months ago

0.0.1-beta.4

5 months ago

0.0.1-beta.3

5 months ago