90 lines
2.0 KiB
JavaScript
90 lines
2.0 KiB
JavaScript
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",
|
|
},
|
|
},
|
|
]);
|