diff options
Diffstat (limited to 'frontend/eslint.config.mjs')
-rw-r--r-- | frontend/eslint.config.mjs | 99 |
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'] + })) +]; |