{
	"root": true,
	"ignorePatterns": ["**.js"],
	"parser": "@typescript-eslint/parser",
	"plugins": ["@typescript-eslint", "prettier"],
	"extends": [
		"eslint:recommended",
		"plugin:@typescript-eslint/eslint-recommended",
		"plugin:@typescript-eslint/recommended",
		"plugin:svelte/recommended"
	],
	"parserOptions": {
		"sourceType": "module",
		"project": "./tsconfig.json",
		"extraFileExtensions": [".svelte"]
	},
	"overrides": [
		{
			"files": ["*.svelte"],
			"parser": "svelte-eslint-parser",
			"parserOptions": {
				"parser": "@typescript-eslint/parser"
			}
		}
	],
	"rules": {
		"prettier/prettier": "error",
		"@typescript-eslint/ban-ts-comment": "warn",
		"@typescript-eslint/no-unused-vars": [
			"error",
			{
				"argsIgnorePattern": "^_",
				"varsIgnorePattern": "^_",
				"caughtErrorsIgnorePattern": "^_"
			}
		],
		"@typescript-eslint/no-explicit-any": ["error"],
		// allow prettier to use SmartTabs
		"no-mixed-spaces-and-tabs": "off",
		"padding-line-between-statements": [
			"warn",
			{
				"blankLine": "always",
				"prev": "*",
				"next": [
					"return",
					"if",
					"multiline-const",
					"function",
					"multiline-expression",
					"multiline-let",
					"block-like"
				]
			},
			{
				"blankLine": "always",
				"prev": ["function"],
				"next": "*"
			}
		],
		"svelte/no-at-html-tags": "off"
	}
}
