Skip to content

A series of composable ESLint rules for libraries and frameworks that use React as a UI runtime.

License

Notifications You must be signed in to change notification settings

AhmedBaset/eslint-react

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

ESLint React

Version Size Downloads

A series of composable ESLint rules rewritten from scratch for libraries and frameworks that use React as a UI runtime.

Roadmap

Features

  • Universal rules for libraries and frameworks that use React as a UI runtime.
  • Well designed rule behaviors and sensible defaults.
  • Maximum flexibility through minimum rule options.

Public packages

All-in-one plugins

Mono plugins (will be available in 2.0)

Supported ESLint versions

  • 8.57.0 or later

Supported React versions

  • 18.2.0 or later

Supported engines

Node.js

  • 18.18.0 or later

Bun

  • 1.0.15 or later

Install

# npm
npm install --save-dev @eslint-react/eslint-plugin

Setup

Flat Config

Add the plugin to your eslint.config.js:

// @ts-check

import js from "@eslint/js";
import react from "@eslint-react/eslint-plugin";
import * as tsParser from "@typescript-eslint/parser";

export default [
  js.configs.recommended,
  {
    files: ["**/*.{ts,tsx}"],
    ...react.configs.recommended,
    languageOptions: {
      parser: tsParser,
    },
  },
];

Legacy Config

Add the plugin to your .eslintrc.json:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@eslint-react/eslint-plugin"],
  "extends": ["eslint:recommended"],
  "overrides": [
    {
      "files": ["**/*.{ts,tsx}"],
      "extends": [
        "plugin:@eslint-react/recommended-legacy"
      ]
    }
  ]
}

Full Installation Guide ↗

Presets

  • recommended
    Enable rules that are recommended by ESLint React.
  • recommended-type-checked
    Enable rules that are recommended by ESLint React with additional rules that require type information.
  • dom
    Enable rules that are specific to React DOM.
  • off-dom
    Disable rules that are specific to React DOM.
  • off
    Disable all rules in this plugin except for debug rules.

Full Presets List↗

Rules

Rules Overview ↗

FAQ

Frequently Asked Questions ↗

Contributing

Before you start working on something, it's best to check if there is an existing issue first. It's also a good idea to reach the maintainer and confirm if it makes sense or if someone else is already working on it.

Please make sure to read the Contributing Guide before making a pull request.

Thank you to everyone contributing to ESLint React!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Inspiration

Prior art

About

A series of composable ESLint rules for libraries and frameworks that use React as a UI runtime.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 88.3%
  • MDX 11.1%
  • Other 0.6%