inference-playground / eslint.config.mjs
Thomas G. Lopes
conversation to runes
5851d63
raw
history blame
2.06 kB
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-non-null-assertion": "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",
},
},
},
];