import js from "@eslint/js"; import typescriptParser from "@typescript-eslint/parser"; import typescriptPlugin from "@typescript-eslint/eslint-plugin"; import reactPlugin from "eslint-plugin-react"; import reactHooksPlugin from "eslint-plugin-react-hooks"; import tailwindcss from "eslint-plugin-tailwindcss"; import prettier from "eslint-plugin-prettier"; import eslintConfigPrettier from "eslint-config-prettier"; export default [ js.configs.recommended, { files: ["**/*.ts", "**/*.tsx"], ignores: ["**/generated/**"], languageOptions: { parser: typescriptParser, parserOptions: { ecmaVersion: "latest", sourceType: "module", ecmaFeatures: { jsx: true, }, projectService: true, }, globals: { localStorage: "readonly", sessionStorage: "readonly", document: "readonly", window: "readonly", setTimeout: "readonly", clearTimeout: "readonly", setInterval: "readonly", clearInterval: "readonly", HTMLElement: "readonly", HTMLDivElement: "readonly", HTMLButtonElement: "readonly", HTMLAnchorElement: "readonly", MouseEvent: "readonly", Node: "readonly", File: "readonly", Blob: "readonly", FormData: "readonly", alert: "readonly", confirm: "readonly", prompt: "readonly", React: "readonly", }, }, plugins: { "@typescript-eslint": typescriptPlugin, react: reactPlugin, "react-hooks": reactHooksPlugin, tailwindcss, prettier, }, rules: { ...eslintConfigPrettier.rules, ...tailwindcss.configs.recommended.rules, "react/react-in-jsx-scope": "off", "react/prop-types": "off", "no-console": ["warn", { allow: ["warn", "error"] }], "no-undef": "off", "@typescript-eslint/no-explicit-any": "warn", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", ignoreRestSiblings: true, }, ], "no-useless-catch": "off", }, settings: { react: { version: "detect", }, }, }, ];