|
import typescriptEslint from "@typescript-eslint/eslint-plugin"; |
|
import globals from "globals"; |
|
import tsParser from "@typescript-eslint/parser"; |
|
import parser from "svelte-eslint-parser"; |
|
import path from "node:path"; |
|
import { fileURLToPath } from "node:url"; |
|
import js from "@eslint/js"; |
|
import { FlatCompat } from "@eslint/eslintrc"; |
|
import enforceExt from "./eslint-rules/enforce-extensions.js"; |
|
|
|
const __filename = fileURLToPath(import.meta.url); |
|
const __dirname = path.dirname(__filename); |
|
const compat = new FlatCompat({ |
|
baseDirectory: __dirname, |
|
recommendedConfig: js.configs.recommended, |
|
allConfig: js.configs.all, |
|
}); |
|
|
|
export default [ |
|
{ |
|
ignores: [ |
|
"**/*.cjs", |
|
"**/.DS_Store", |
|
"**/node_modules", |
|
"build", |
|
".svelte-kit", |
|
"package", |
|
"**/.env", |
|
"**/.env.*", |
|
"!**/.env.example", |
|
"**/pnpm-lock.yaml", |
|
"**/package-lock.json", |
|
"**/yarn.lock", |
|
], |
|
}, |
|
...compat.extends( |
|
"eslint:recommended", |
|
"plugin:@typescript-eslint/recommended", |
|
"plugin:svelte/recommended", |
|
"prettier" |
|
), |
|
{ |
|
plugins: { |
|
"@typescript-eslint": typescriptEslint, |
|
"local": { |
|
rules: { |
|
"enforce-ext": enforceExt, |
|
}, |
|
}, |
|
}, |
|
|
|
languageOptions: { |
|
globals: { |
|
...globals.browser, |
|
...globals.node, |
|
}, |
|
|
|
parser: tsParser, |
|
ecmaVersion: 2020, |
|
sourceType: "module", |
|
|
|
parserOptions: { |
|
extraFileExtensions: [".svelte"], |
|
}, |
|
}, |
|
|
|
rules: { |
|
"require-yield": "off", |
|
"@typescript-eslint/no-explicit-any": "error", |
|
|
|
|
|
"@typescript-eslint/no-unused-vars": [ |
|
"error", |
|
{ |
|
argsIgnorePattern: "^_", |
|
}, |
|
], |
|
|
|
"object-shorthand": ["error", "always"], |
|
"svelte/no-at-html-tags": "off", |
|
"local/enforce-ext": [ |
|
"error", |
|
{ |
|
includePaths: ["$lib/"], |
|
aliases: { |
|
$lib: "src/lib", |
|
}, |
|
}, |
|
], |
|
}, |
|
}, |
|
{ |
|
files: ["**/*.svelte"], |
|
|
|
languageOptions: { |
|
parser, |
|
ecmaVersion: 5, |
|
sourceType: "script", |
|
|
|
parserOptions: { |
|
parser: "@typescript-eslint/parser", |
|
}, |
|
}, |
|
}, |
|
]; |
|
|