1.5.11 • Published 2 days ago

@eslint-react/eslint-plugin v1.5.11

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

ESLint plugins for React function components with TypeScript, built (mostly) from scratch, built (mostly) from scratch.

Supported engines

Node.js

  • 18.x LTS Hydrogen
  • 20.x Current

Bun

  • 1.0.11 or later

Installation

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

# pnpm
pnpm add --save-dev @eslint-react/eslint-plugin

# yarn
yarn add --dev @eslint-react/eslint-plugin

# bun
bun add --dev @eslint-react/eslint-plugin

Usage

.eslintrc.js

module.exports = {
  root: true,
  env: { browser: true, es2021: true },
  parser: "@typescript-eslint/parser",
  extends: [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:react-hooks/recommended",
    "plugin:@eslint-react/recommended-legacy",
  ],
  plugins: ["@typescript-eslint", "react-hooks"],
  ignorePatterns: ["dist", ".eslintrc.js"],
};

eslint.config.js (requires eslint >= v8.23.0)

import ts from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import react from "@eslint-react/eslint-plugin";
import reactHooks from "eslint-plugin-react-hooks";

export default [
  // TypeScript rules
  {
    files: ["**/*.ts"],
    ignores: ["eslint.config.js"],
    languageOptions: {
      parser: tsParser,
      sourceType: "module",
    },
    plugins: {
      "@typescript-eslint": ts,
    },
    rules: {
      ...ts.configs["eslint-recommended"].rules,
      ...ts.configs["recommended"].rules,
    },
  },
  // React hooks rules
  {
    files: ["src/**/*.{ts,tsx}"],
    plugins: {
      "react-hooks": reactHooks,
    },
    rules: {
      ...reactHooks.configs.recommended.rules,
    },
  },
  // React rules
  {
    files: ["src/**/*.{ts,tsx}"],
    ...react.configs.recommended,
  },
];

Rules

Rule List ↗

Philosophy

  • Focus on code rather than style.
  • Linting errors are better than runtime crashes.
  • Types are the fundamental unit of correctness.

Rule introduction or modification principles

  1. TypeScript first. If a behavior can already be enforced by TypeScript built-in checker, don't reimplement it.
  2. Formatting independent. Rules should check for correctness, not style. We recommend using style focused tools for formatting (e.g. dprint or eslint-stylistic).
  3. No Auto-fix. Auto-fix is a great feature, but it's not always safe and reliable. We prefer to not to do auto-fix at all than to implement it in a way that can cause more problems than it solves.
  4. Sensible defaults. Rules should be easy to setup and use with minimal configuration and sensible defaults.
  5. Rules over Options [1]. Each rule should have a single purpose. Make multiple rules work together to achieve more complex behaviors instead of adding options to a single rule.

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 with the team 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

1.5.11-next.13

2 days ago

1.5.11-beta.13

2 days ago

1.5.11-beta.12

2 days ago

1.5.11

2 days ago

1.5.11-next.12

3 days ago

1.5.11-next.11

3 days ago

1.5.11-next.10

3 days ago

1.5.11-beta.9

4 days ago

1.5.11-next.9

5 days ago

1.5.11-beta.8

5 days ago

1.5.11-next.8

5 days ago

1.5.11-next.4

7 days ago

1.5.11-next.5

7 days ago

1.5.11-next.6

7 days ago

1.5.11-next.7

6 days ago

1.5.11-beta.2

10 days ago

1.5.11-beta.1

10 days ago

1.5.11-beta.3

10 days ago

1.5.11-next.0

10 days ago

1.5.11-next.1

10 days ago

1.5.11-next.2

10 days ago

1.5.11-next.3

10 days ago

1.5.10

12 days ago

1.5.10-next.3

13 days ago

1.5.10-next.4

12 days ago

1.5.10-beta.3

13 days ago

1.5.10-next.2

14 days ago

1.5.10-next.1

17 days ago

1.5.10-beta.1

17 days ago

1.5.10-next.0

20 days ago

1.5.10-beta.0

20 days ago

1.5.9

20 days ago

1.5.9-next.3

20 days ago

1.5.9-beta.3

20 days ago

1.5.9-next.2

23 days ago

1.5.9-beta.2

23 days ago

1.5.9-next.1

24 days ago

1.5.9-beta.0

25 days ago

1.5.9-next.0

26 days ago

1.5.8

29 days ago

1.5.8-next.7

29 days ago

1.5.8-next.8

29 days ago

1.5.8-beta.8

29 days ago

1.5.8-next.6

1 month ago

1.5.8-beta.6

1 month ago

1.5.8-next.5

1 month ago

1.5.8-next.3

1 month ago

1.5.8-next.4

1 month ago

1.5.8-next.1

1 month ago

1.5.8-next.2

1 month ago

1.5.8-beta.1

1 month ago

1.5.7-beta.5

1 month ago

1.5.7

1 month ago

1.5.7-next.5

1 month ago

1.5.7-beta.4

2 months ago

1.5.7-next.4

2 months ago

1.5.7-beta.3

2 months ago

1.5.7-next.2

2 months ago

1.5.7-next.1

2 months ago

1.5.7-next.0

2 months ago

1.5.7-beta.0

2 months ago

1.5.6-next.8

2 months ago

1.5.6-next.7

2 months ago

1.5.6

2 months ago

1.5.6-beta.7

2 months ago

1.5.6-beta.8

2 months ago

1.5.6-next.6

2 months ago

1.5.6-beta.6

2 months ago

1.5.6-beta.5

2 months ago

1.5.6-next.5

2 months ago

1.5.6-next.4

2 months ago

1.5.6-beta.3

2 months ago

1.5.6-beta.4

2 months ago

1.5.6-next.3

2 months ago

1.5.6-beta.2

2 months ago

1.5.6-next.2

2 months ago

1.5.6-beta.1

2 months ago

1.5.6-next.1

2 months ago

1.5.6-beta.0

2 months ago

1.5.6-next.0

2 months ago

1.5.5

3 months ago

1.5.5-beta.1

3 months ago

1.5.5-next.1

3 months ago

1.5.5-next.0

3 months ago

1.5.4

3 months ago

1.5.4-next.5

3 months ago

1.5.4-next.6

3 months ago

1.5.4-beta.5

3 months ago

1.5.4-beta.6

3 months ago

1.5.4-next.4

3 months ago

1.5.4-next.1

3 months ago

1.5.4-next.2

3 months ago

1.5.4-next.3

3 months ago

1.5.4-beta.1

3 months ago

1.5.4-next.0

3 months ago

1.5.4-beta.0

3 months ago

1.5.3-beta.4

3 months ago

1.5.3-beta.3

3 months ago

1.5.3

3 months ago

1.5.3-next.4

3 months ago

1.5.3-next.3

3 months ago

1.5.3-beta.2

3 months ago

1.5.3-next.2

3 months ago

1.5.3-beta.1

3 months ago

1.5.3-next.1

3 months ago

1.5.3-beta.0

3 months ago

1.5.3-next.0

3 months ago

1.5.2

3 months ago

1.5.1

3 months ago

1.5.0

3 months ago

1.5.1-beta.0

3 months ago

1.5.0-next.3

3 months ago

1.5.2-beta.0

3 months ago

1.5.1-next.1

3 months ago

1.5.0-beta.0

3 months ago

1.5.0-beta.2

3 months ago

1.5.0-beta.1

3 months ago

1.5.2-beta.2

3 months ago

1.5.0-next.1

3 months ago

1.5.0-next.0

3 months ago

1.5.0-next.2

3 months ago

1.0.2

3 months ago

1.0.1

3 months ago

1.0.0

3 months ago

1.0.0-beta.2

3 months ago

1.0.0-beta.3

3 months ago

1.0.0-beta.0

4 months ago

1.0.0-beta.1

4 months ago

0.10.12

4 months ago

0.10.12-beta.0

4 months ago

0.10.11

4 months ago

0.10.11-beta.2

4 months ago

0.10.10-beta.0

4 months ago

0.10.10

4 months ago

0.10.11-beta.0

4 months ago

0.10.11-beta.1

4 months ago

0.10.9

4 months ago

0.10.7

4 months ago

0.10.8

4 months ago

0.10.5

4 months ago

0.10.6

4 months ago

0.10.6-beta.0

4 months ago

0.10.4

4 months ago

0.10.4-beta.1

4 months ago

0.10.4-beta.0

4 months ago

0.10.5-beta.0

4 months ago

0.10.3

4 months ago

0.10.3-beta.0

4 months ago

0.10.2

4 months ago

0.10.2-beta.0

4 months ago

0.10.1

4 months ago

0.10.1-beta.1

5 months ago

0.10.1-beta.0

5 months ago

0.10.0

5 months ago

0.10.0-beta.0

5 months ago

0.9.8

5 months ago

0.9.8-beta.1

5 months ago

0.9.8-beta.2

5 months ago

0.9.8-beta.0

5 months ago

0.9.7

5 months ago

0.9.7-beta.2

5 months ago

0.9.7-beta.1

5 months ago

0.9.7-beta.0

5 months ago

0.9.6-beta.4

5 months ago

0.9.6-beta.5

5 months ago

0.9.6-beta.2

5 months ago

0.9.6-beta.3

5 months ago

0.9.6

5 months ago

0.9.6-beta.0

5 months ago

0.9.6-beta.1

5 months ago

0.9.5-beta.3

5 months ago

0.9.5

5 months ago

0.9.5-beta.2

5 months ago

0.9.5-beta.1

5 months ago

0.9.5-beta.0

5 months ago

0.9.4

5 months ago

0.9.3

5 months ago

0.9.3-beta.4

5 months ago

0.9.3-beta.2

5 months ago

0.9.3-beta.1

5 months ago

0.9.3-beta.0

5 months ago

0.9.2

5 months ago

0.9.2-beta.2

5 months ago

0.9.2-beta.1

5 months ago

0.9.2-beta.0

5 months ago

0.9.1-beta.3

5 months ago

0.9.1

5 months ago

0.9.1-beta.2

5 months ago

0.9.1-beta.1

5 months ago

0.9.1-beta.0

5 months ago

0.9.0

5 months ago

0.9.0-beta.5

5 months ago

0.9.0-beta.3

5 months ago

0.9.0-beta.2

5 months ago

0.9.0-beta.1

5 months ago

0.9.0-beta.0

5 months ago

0.8.13-beta.0

5 months ago

0.8.12

5 months ago

0.8.12-beta.4

5 months ago

0.8.12-beta.3

5 months ago

0.8.12-beta.2

5 months ago

0.8.12-beta.1

6 months ago

0.8.12-beta.0

6 months ago

0.8.11

6 months ago

0.8.11-beta.2

6 months ago

0.8.11-beta.1

6 months ago

0.8.11-beta.0

6 months ago

0.8.10

6 months ago

0.8.10-beta.5

6 months ago

0.8.10-beta.4

6 months ago

0.8.10-beta.3

6 months ago

0.8.10-beta.2

6 months ago

0.8.10-beta.1

6 months ago

0.8.10-beta.0

6 months ago

0.8.9

6 months ago

0.8.9-beta.3

6 months ago

0.8.9-beta.2

6 months ago

0.8.9-beta.1

6 months ago

0.8.9-beta.0

6 months ago

0.8.8

6 months ago

0.8.8-beta.7

6 months ago

0.8.8-beta.6

6 months ago

0.8.8-beta.5

6 months ago

0.8.8-beta.3

6 months ago

0.8.8-beta.2

6 months ago

0.8.8-beta.1

6 months ago

0.8.8-beta.0

6 months ago

0.8.7

6 months ago

0.8.7-beta.1

6 months ago

0.8.7-beta.0

6 months ago

0.8.6

6 months ago

0.8.6-beta.6

6 months ago

0.8.6-beta.5

6 months ago

0.8.6-beta.3

6 months ago

0.8.6-beta.1

6 months ago

0.8.6-beta.0

6 months ago

0.8.5-beta.0

6 months ago

0.8.4

6 months ago

0.8.3

6 months ago

0.8.2

6 months ago

0.8.1

6 months ago

0.8.0

6 months ago

0.7.8

6 months ago

0.7.7

6 months ago

0.7.6

6 months ago

0.7.5

6 months ago

0.7.4

6 months ago

0.7.3

6 months ago

0.7.2

6 months ago

0.7.1

6 months ago

0.7.0

6 months ago

0.6.2

6 months ago

0.6.1

6 months ago

0.6.0

6 months ago

0.5.9

6 months ago

0.5.8

6 months ago

0.5.7

6 months ago

0.5.5

6 months ago

0.5.4

6 months ago

0.5.2

7 months ago

0.5.1

7 months ago

0.5.0

7 months ago

0.3.9

7 months ago

0.3.8

7 months ago

0.3.7

7 months ago

0.3.6

7 months ago

0.3.5

7 months ago

0.3.4

7 months ago

0.3.3

7 months ago

0.3.1

7 months ago

0.3.0

7 months ago