JSPM

  • Created
  • Published
  • Downloads 87025
  • Score
    100M100P100Q161501F
  • License MIT

Turn off all rules already supported by oxlint

Package Exports

    Readme

    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",
      ],
    }

    Detect rules from oxlint.json

    If you are using flat configuration (eslint >= 9.0), you can use the following config:

    // eslint.config.js
    import oxlint from 'eslint-plugin-oxlint';
    export default [
      ..., // other plugins
      ...oxlint.buildFromOxlintConfigFile('./oxlint.json'),
    ];

    Or build it by an oxlint.json-like object:

    // eslint.config.js
    import oxlint from 'eslint-plugin-oxlint';
    export default [
      ..., // other plugins
      ...oxlint.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: {
        // 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/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

    Generate rules

    Generates the rules from installed oxlint version

    pnpm generate
    pnpm format

    Test

    Tests the source code

    pnpm test

    License

    MIT