summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/eslint.config.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/eslint.config.mjs')
-rw-r--r--frontend/eslint.config.mjs99
1 files changed, 99 insertions, 0 deletions
diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs
new file mode 100644
index 0000000..9e842a8
--- /dev/null
+++ b/frontend/eslint.config.mjs
@@ -0,0 +1,99 @@
+import { FlatCompat } from '@eslint/eslintrc';
+import js from '@eslint/js';
+import typescriptEslint from '@typescript-eslint/eslint-plugin';
+import tsParser from '@typescript-eslint/parser';
+import globals from 'globals';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+import parser from 'svelte-eslint-parser';
+
+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',
+ 'coverage',
+ '**/pnpm-lock.yaml',
+ '**/package-lock.json',
+ '**/yarn.lock',
+ 'src/gql',
+ 'eslint.config.mjs'
+ ]
+ },
+ ...compat.extends(
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended-type-checked',
+ 'plugin:@typescript-eslint/stylistic-type-checked',
+ 'plugin:svelte/recommended',
+ 'prettier'
+ ),
+ {
+ plugins: {
+ '@typescript-eslint': typescriptEslint
+ },
+
+ languageOptions: {
+ globals: {
+ ...globals.browser,
+ ...globals.node
+ },
+
+ parser: tsParser,
+ ecmaVersion: 2022,
+ sourceType: 'module',
+
+ parserOptions: {
+ extraFileExtensions: ['.svelte'],
+ project: true,
+ tsconfigRootDir: '/home/wolf/src/wolf/hircine/frontend'
+ }
+ },
+
+ rules: {
+ 'no-console': 'warn',
+ eqeqeq: 'error'
+ }
+ },
+ {
+ files: ['**/*.svelte'],
+
+ languageOptions: {
+ parser: parser,
+ ecmaVersion: 5,
+ sourceType: 'script',
+
+ parserOptions: {
+ parser: '@typescript-eslint/parser'
+ }
+ },
+
+ rules: {
+ '@typescript-eslint/no-unsafe-argument': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ '@typescript-eslint/no-unsafe-call': 'off',
+ '@typescript-eslint/no-unsafe-enum-comparison': 'off',
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unused-expressions': 'off',
+ 'no-undef': 'off'
+ }
+ },
+ ...compat.extends('plugin:@typescript-eslint/disable-type-checked').map((config) => ({
+ ...config,
+ files: ['**/codegen.ts', '**/svelte.config.js']
+ }))
+];