import js from "@eslint/js"; import tseslint from "typescript-eslint"; import reactHooks from "eslint-plugin-react-hooks"; import unusedImports from "eslint-plugin-unused-imports"; import globals from "globals"; export default tseslint.config( { ignores: ["dist/**", "node_modules/**", "public/**"], }, { files: ["src/**/*.{ts,tsx,js,jsx}"], extends: [js.configs.recommended, ...tseslint.configs.recommended], plugins: { "react-hooks": reactHooks, "unused-imports": unusedImports, }, languageOptions: { globals: { ...globals.browser, }, }, rules: { // Remove unused imports automatically "unused-imports/no-unused-imports": "warn", // Flag unused variables (ignoring those prefixed with _) "unused-imports/no-unused-vars": [ "warn", { vars: "all", varsIgnorePattern: "^_", args: "after-used", argsIgnorePattern: "^_", }, ], // Disable the base rules so they don't conflict "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "off", // Disable rules the user didn't ask for "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-require-imports": "off", "no-case-declarations": "off", "no-control-regex": "off", "no-useless-escape": "off", }, } );