import js from "@eslint/js"; import globals from "globals"; import tseslint from "typescript-eslint"; import reactHooks from "eslint-plugin-react-hooks"; import reactRefresh from "eslint-plugin-react-refresh"; import importPlugin from "eslint-plugin-import-x"; import prettier from "eslint-plugin-prettier/recommended"; import { defineConfig, globalIgnores } from "eslint/config"; export default defineConfig([ globalIgnores(["dist", "src/types.ts"]), { files: ["**/*.{ts,tsx}"], extends: [ js.configs.recommended, tseslint.configs.recommended, reactHooks.configs.flat.recommended, reactRefresh.configs.vite, prettier, ], plugins: { "import-x": importPlugin, }, languageOptions: { globals: globals.browser, }, settings: { react: { version: "detect", }, }, rules: { "no-console": "off", "prefer-destructuring": "off", "import-x/no-extraneous-dependencies": [ "error", { devDependencies: ["**/*.test.ts", "**/*.spec.ts", "**/__tests__/**"], }, ], "import-x/prefer-default-export": "off", "import-x/order": [ "error", { groups: ["builtin", "external", "internal", ["parent", "sibling", "index"]], "newlines-between": "always", alphabetize: { order: "asc" }, }, ], "react-hooks/exhaustive-deps": "error", "react-hooks/rules-of-hooks": "error", }, }, ]);