import nextVitals from "eslint-config-next/core-web-vitals" import nextTypescript from "eslint-config-next/typescript" import prettier from "eslint-config-prettier/flat" import { defineConfig, globalIgnores } from "eslint/config" const eslintConfig = defineConfig([ ...nextVitals, ...nextTypescript, { files: ["**/*.{ts,tsx,mts,cts}"], languageOptions: { parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { "react-hooks/exhaustive-deps": "error", "react-hooks/set-state-in-effect": "error", "react-hooks/incompatible-library": "error", "@next/next/no-async-client-component": "error", "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], "@typescript-eslint/consistent-type-imports": [ "error", { prefer: "type-imports", fixStyle: "inline-type-imports" }, ], "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-misused-promises": [ "error", { checksVoidReturn: { attributes: false } }, ], }, }, prettier, globalIgnores([".next/**", "out/**", "build/**", "node_modules/**", "next-env.d.ts"]), ]) export default eslintConfig