import { defineConfig, globalIgnores } from "eslint/config"; import typescriptEslint from "@typescript-eslint/eslint-plugin"; import globals from "globals"; import tsParser from "@typescript-eslint/parser"; import path from "node:path"; import { fileURLToPath } from "node:url"; import js from "@eslint/js"; import { FlatCompat } from "@eslint/eslintrc"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all, }); export default defineConfig([ globalIgnores(["**/node_modules/", "dist/", "esbuild.config.mjs"]), { extends: compat.extends( "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ), plugins: { "@typescript-eslint": typescriptEslint, }, languageOptions: { globals: { ...globals.node, }, parser: tsParser, ecmaVersion: 5, sourceType: "module", }, rules: { "no-unused-vars": "off", "no-redeclare": "off", "@typescript-eslint/no-unused-vars": [ "error", { args: "none", }, ], "@typescript-eslint/ban-ts-comment": "off", "no-prototype-builtins": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/ban-types": "off", }, }, ]);