import js from "@eslint/js"; import tseslint from "@typescript-eslint/eslint-plugin"; import tsparser from "@typescript-eslint/parser"; import react from "eslint-plugin-react"; import reactHooks from "eslint-plugin-react-hooks"; import globals from "globals"; export default [ js.configs.recommended, { files: ["**/*.{ts,tsx}"], languageOptions: { parser: tsparser, parserOptions: { ecmaVersion: "latest", sourceType: "module", ecmaFeatures: { jsx: true, }, }, globals: { ...globals.node, ...globals.browser, React: "readonly", }, }, plugins: { "@typescript-eslint": tseslint, react, "react-hooks": reactHooks, }, rules: { ...tseslint.configs.recommended.rules, ...react.configs.recommended.rules, ...reactHooks.configs.recommended.rules, "react/react-in-jsx-scope": "off", "react/prop-types": "off", "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_" }, ], "@typescript-eslint/no-explicit-any": "warn", "react/no-unescaped-entities": "warn", "react/no-unknown-property": ["error", { ignore: ["jsx"] }], "react-hooks/set-state-in-effect": "warn", "@typescript-eslint/triple-slash-reference": "off", }, settings: { react: { version: "detect", }, }, }, { ignores: [ "node_modules/**", ".next/**", "out/**", "build/**", "dist/**", "*.config.js", "prisma/generated/**", ], }, ];