inference-playground / eslint.config.mts
Thomas G. Lopes
fix ci
c6f83f5
import js from "@eslint/js";
import svelte from "eslint-plugin-svelte";
import globals from "globals";
import ts from "typescript-eslint";
import svelteConfig from "./svelte.config.js";
import enforceExt from "./eslint-rules/enforce-extensions.js";
import prettier from "eslint-plugin-prettier/recommended";
export default ts.config(
js.configs.recommended,
ts.configs.recommended,
...svelte.configs.recommended,
prettier,
// Configure svelte
{
files: ["**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"],
// See more details at: https://typescript-eslint.io/packages/parser/
languageOptions: {
parserOptions: {
projectService: true,
extraFileExtensions: [".svelte"], // Add support for additional file extensions, such as .svelte
parser: ts.parser,
// Specify a parser for each language, if needed:
// parser: {
// ts: ts.parser,
// js: espree, // Use espree for .js files (add: import espree from 'espree')
// typescript: ts.parser
// },
// We recommend importing and specifying svelte.config.js.
// By doing so, some rules in eslint-plugin-svelte will automatically read the configuration and adjust their behavior accordingly.
// While certain Svelte settings may be statically loaded from svelte.config.js even if you don’t specify it,
// explicitly specifying it ensures better compatibility and functionality.
svelteConfig,
},
},
},
{
plugins: {
local: {
rules: {
"enforce-ext": enforceExt,
},
},
},
},
{
rules: {
"require-yield": "off",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-expressions": "off",
// "@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
},
],
"object-shorthand": ["error", "always"],
"svelte/no-at-html-tags": "off",
"svelte/require-each-key": "off",
"local/enforce-ext": [
"error",
{
includePaths: ["$lib/"],
aliases: {
$lib: "src/lib",
},
},
],
},
},
{
ignores: [
"**/*.cjs",
"**/.DS_Store",
"**/node_modules",
"build",
".svelte-kit",
"package",
"**/.env",
"**/.env.*",
"!**/.env.example",
"**/pnpm-lock.yaml",
"**/package-lock.json",
"**/yarn.lock",
],
},
{
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
},
}
);