import { dirname } from "path"; import { fileURLToPath } from "url"; import { FlatCompat } from "@eslint/eslintrc"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, }); const eslintConfig = [ ...compat.extends("next/core-web-vitals", "next/typescript"), { ignores: [ "node_modules/**", ".next/**", "out/**", "build/**", "next-env.d.ts", ], }, { // WHY: test suites legitimately use `any` mocks, jest globals and CommonJS // require(); jest/playwright config files are CommonJS by design. Relax the // strict rules there so lint failures point at real production-code issues. files: [ "**/*.test.ts", "**/*.test.tsx", "jest.config*.js", "jest.setup*.js", "jest.globalSetup*.js", "playwright.config.ts", ], rules: { "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-unused-vars": "off", "react/display-name": "off", }, }, ]; export default eslintConfig;