import eslint from "@eslint/js"; import tseslint from "typescript-eslint"; import importPlugin from "eslint-plugin-import-x"; /** @type {import("eslint").Linter.Config[]} */ export default [ eslint.configs.recommended, ...tseslint.configs.recommended, { plugins: { "import-x": importPlugin, }, rules: { // Already enforced by TypeScript compiler (noUnusedLocals/noUnusedParameters) "@typescript-eslint/no-unused-vars": "off", // Allow explicit any where needed "@typescript-eslint/no-explicit-any": "off", // Prevent phantom dependencies — imports must be declared in package.json "import-x/no-extraneous-dependencies": ["error", { devDependencies: [ "**/*.test.{ts,tsx}", "**/*.spec.{ts,tsx}", "**/test/**", "**/tests/**", "**/vitest.config.*", "**/vite.config.*", "**/electron.vite.config.*", "**/eslint.config.*", "**/scripts/**", "**/src/main/**", "**/src/preload/**", ], peerDependencies: true, }], }, }, { ignores: [ "node_modules/", "dist/", ".next/", "out/", ], }, ];