import eslintJs from "@eslint/js"; import eslintReact from "@eslint-react/eslint-plugin"; import { defineConfig } from "eslint/config"; import reactHooks from "eslint-plugin-react-hooks"; import simpleImportSort from "eslint-plugin-simple-import-sort"; import unusedImports from "eslint-plugin-unused-imports"; import tseslint from "typescript-eslint"; export default defineConfig([ { files: ["**/*.ts", "**/*.tsx"], extends: [ eslintJs.configs.recommended, tseslint.configs.recommended, eslintReact.configs["recommended-typescript"], reactHooks.configs.flat["recommended-latest"], ], plugins: { "react-hooks": reactHooks, "simple-import-sort": simpleImportSort, "unused-imports": unusedImports, }, languageOptions: { parser: tseslint.parser, parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { // Unused imports "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": [ "warn", { vars: "all", varsIgnorePattern: "^_", args: "after-used", argsIgnorePattern: "^_", }, ], // Auto sort imports "simple-import-sort/imports": "error", "simple-import-sort/exports": "error", "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", }, ], "@typescript-eslint/no-explicit-any": "warn", }, }, ]);