import globals from "globals"; import js from "@eslint/js"; import tseslint from "typescript-eslint"; import svelte from "eslint-plugin-svelte"; import svelteParser from "svelte-eslint-parser"; import { defineConfig } from "eslint/config"; export default defineConfig([ tseslint.configs.recommended, js.configs.recommended, ...svelte.configs["flat/recommended"], { ignores: [ "dist/", "**/node_modules/", ".git/", "coverage/", "vite.config.ts", "tsconfig.json", "tsconfig.app.json", "tsconfig.node.json", "spacetime.json", "spacetime.local.json", "package.json", "pnpm-lock.yaml", ".windsurfrules", "AGENTS.md", "CHANGELOG.md", "CLAUDE.md", "index.html", "LICENSE", "README.md", ".github/", ".cursor/", "spacetimedb/", "src/module_bindings/", "src-tauri/**", ], }, { languageOptions: { globals: { ...globals.browser, ...globals.node, }, }, }, { files: ["**/*.ts"], languageOptions: { parser: tseslint.parser, parserOptions: { projectService: true, extraFileExtensions: [".svelte"], }, }, }, { files: ["**/*.svelte", "**/*.svelte.ts"], languageOptions: { parser: svelteParser, parserOptions: { parser: tseslint.parser, projectService: true, extraFileExtensions: [".svelte"], svelteFeatures: { runes: true, }, }, }, }, { rules: { "no-unused-vars": "off", "@typescript-eslint/no-explicit-any": "off", "@/no-trailing-spaces": "warn", "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", }, ], "svelte/require-each-key": "off", "svelte/no-unused-svelte-ignore": "off", "svelte/prefer-svelte-reactivity": "off", }, }, ]);