import { includeIgnoreFile } from "@eslint/compat"; import pluginJs from "@eslint/js"; import eslintConfigPrettier from "eslint-config-prettier/flat"; import globals from "globals"; import path from "node:path"; import { fileURLToPath } from "node:url"; import tseslint from "typescript-eslint"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const gitignorePath = path.resolve(__dirname, ".gitignore"); /** @type {import('eslint').Linter.Config[]} */ export default [ includeIgnoreFile(gitignorePath), { ignores: ["src/server/gatekeeper/**"] }, { files: ["**/*.{js,mjs,cjs,ts}"] }, { languageOptions: { globals: { ...globals.browser, ...globals.node } } }, pluginJs.configs.recommended, ...tseslint.configs.recommended, eslintConfigPrettier, { rules: { // Disable rules that would fail. The failures should be fixed, and the entries here removed. "@typescript-eslint/no-empty-object-type": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-unused-expressions": "off", "@typescript-eslint/no-unused-vars": "off", "no-case-declarations": "off", "no-useless-escape": "off", }, }, { rules: { // Enable rules eqeqeq: "error", }, }, ];