import js from "@eslint/js"; import svelte from "eslint-plugin-svelte"; import globals from "globals"; import tseslint from "typescript-eslint"; import svelteConfig from "./svelte.config.js"; export default tseslint.config( js.configs.recommended, ...tseslint.configs.recommended, ...svelte.configs.recommended, { languageOptions: { globals: { ...globals.browser, }, }, }, { files: ["**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"], languageOptions: { parserOptions: { extraFileExtensions: [".svelte"], parser: tseslint.parser, svelteConfig, }, }, }, { files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { ecmaVersion: 2024, sourceType: "module", }, rules: { // Modern TypeScript best practices "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", }, ], "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/consistent-type-imports": "error", "@typescript-eslint/no-import-type-side-effects": "error", // Modern JavaScript/TypeScript patterns "prefer-const": "error", "no-var": "error", "object-shorthand": "error", "prefer-template": "error", }, }, { files: ["**/*.js", "**/*.mjs"], ...tseslint.configs.disableTypeChecked, }, );