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'] })) ];