react-internal.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import js from "@eslint/js";
  2. import eslintConfigPrettier from "eslint-config-prettier";
  3. import tseslint from "typescript-eslint";
  4. import pluginReactHooks from "eslint-plugin-react-hooks";
  5. import pluginReact from "eslint-plugin-react";
  6. import globals from "globals";
  7. import { config as baseConfig } from "./base.js";
  8. /**
  9. * A custom ESLint configuration for libraries that use React.
  10. *
  11. * @type {import("eslint").Linter.Config[]} */
  12. export const config = [
  13. ...baseConfig,
  14. js.configs.recommended,
  15. eslintConfigPrettier,
  16. ...tseslint.configs.recommended,
  17. pluginReact.configs.flat.recommended,
  18. {
  19. languageOptions: {
  20. ...pluginReact.configs.flat.recommended.languageOptions,
  21. globals: {
  22. ...globals.serviceworker,
  23. ...globals.browser,
  24. },
  25. },
  26. },
  27. {
  28. plugins: {
  29. "react-hooks": pluginReactHooks,
  30. },
  31. settings: { react: { version: "detect" } },
  32. rules: {
  33. ...pluginReactHooks.configs.recommended.rules,
  34. // React scope no longer necessary with new JSX transform.
  35. "react/react-in-jsx-scope": "off",
  36. },
  37. },
  38. ];