eslint.config.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import typescriptEslint from "typescript-eslint";
  2. import reactRefresh from "eslint-plugin-react-refresh";
  3. import react from "eslint-plugin-react";
  4. import reactHooks from "eslint-plugin-react-hooks";
  5. import eslintConfigPrettier from "eslint-config-prettier";
  6. import globals from "globals";
  7. import js from "@eslint/js";
  8. import storybook from "eslint-plugin-storybook";
  9. export default typescriptEslint.config(
  10. js.configs.recommended,
  11. ...typescriptEslint.configs.recommended,
  12. react.configs.flat.recommended,
  13. react.configs.flat["jsx-runtime"],
  14. eslintConfigPrettier,
  15. ...storybook.configs["flat/recommended"],
  16. {
  17. ignores: ["dist/**", "public/**"],
  18. },
  19. {
  20. plugins: {
  21. "react-refresh": reactRefresh,
  22. "react-hooks": reactHooks,
  23. },
  24. languageOptions: {
  25. globals: {
  26. ...globals.browser,
  27. },
  28. },
  29. settings: {
  30. react: {
  31. version: "detect",
  32. },
  33. },
  34. rules: {
  35. "react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
  36. "react-hooks/exhaustive-deps": "off",
  37. "@typescript-eslint/no-redeclare": "off",
  38. "no-labels": "off",
  39. },
  40. },
  41. {
  42. files: ["**/*.stories.*"],
  43. rules: {
  44. "import/no-anonymous-default-export": "off",
  45. },
  46. },
  47. );