import js from "@eslint/js"; import tseslint from "@typescript-eslint/eslint-plugin"; import tsparser from "@typescript-eslint/parser"; import prettierConfig from "eslint-config-prettier"; import importPlugin from "eslint-plugin-import"; import prettier from "eslint-plugin-prettier"; export default [ js.configs.recommended, { files: ["**/*.ts", "**/*.tsx"], languageOptions: { parser: tsparser, parserOptions: { ecmaVersion: "latest", sourceType: "module", }, globals: { console: "readonly", window: "readonly", document: "readonly", HTMLElement: "readonly", HTMLCanvasElement: "readonly", KeyboardEvent: "readonly", MouseEvent: "readonly", WheelEvent: "readonly", requestAnimationFrame: "readonly", cancelAnimationFrame: "readonly", performance: "readonly", process: "readonly", WebSocket: "readonly", setTimeout: "readonly", clearTimeout: "readonly", setInterval: "readonly", clearInterval: "readonly", sessionStorage: "readonly", localStorage: "readonly", AbortController: "readonly", AbortSignal: "readonly", DOMParser: "readonly", Document: "readonly", Element: "readonly", HTMLCollectionOf: "readonly", }, }, plugins: { "@typescript-eslint": tseslint, prettier: prettier, import: importPlugin, }, rules: { ...tseslint.configs.recommended.rules, ...prettierConfig.rules, "prettier/prettier": "error", "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-explicit-any": "warn", "no-console": "off", }, }, { ignores: ["dist/**", "node_modules/**"], }, ];