1import prettier from "eslint-config-prettier";
2import js from "@eslint/js";
3import { includeIgnoreFile } from "@eslint/compat";
4import svelte from "eslint-plugin-svelte";
5import globals from "globals";
6import { fileURLToPath } from "node:url";
7import ts from "typescript-eslint";
8import svelteConfig from "./svelte.config.js";
9
10const gitignorePath = fileURLToPath(new URL("./.gitignore", import.meta.url));
11
12export default ts.config(
13 includeIgnoreFile(gitignorePath),
14 js.configs.recommended,
15 ...ts.configs.recommended,
16 ...svelte.configs.recommended,
17 prettier,
18 ...svelte.configs.prettier,
19 {
20 languageOptions: {
21 globals: { ...globals.browser, ...globals.node },
22 },
23 rules: { "no-undef": "off" },
24 },
25 {
26 files: ["**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"],
27 ignores: ["eslint.config.js", "svelte.config.js"],
28 languageOptions: {
29 parserOptions: {
30 projectService: true,
31 extraFileExtensions: [".svelte"],
32 parser: ts.parser,
33 svelteConfig,
34 },
35 },
36 },
37);