import typescriptEslint from '@typescript-eslint/eslint-plugin' import globals from 'globals' import tsParser from '@typescript-eslint/parser' import path from 'node:path' import { fileURLToPath } from 'node:url' import js from '@eslint/js' import stylistic from '@stylistic/eslint-plugin' import { FlatCompat } from '@eslint/eslintrc' 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 [ ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'), { plugins: { '@typescript-eslint': typescriptEslint, '@stylistic': stylistic }, languageOptions: { globals: { ...globals.browser }, parser: tsParser, ecmaVersion: 'latest', sourceType: 'module' }, rules: { 'no-case-declarations': 'off', indent: [ 'error', 2, { SwitchCase: 1 } ], '@stylistic/linebreak-style': ['error', 'windows'], quotes: ['error', 'single'], semi: ['error', 'never'] } }, { ignores: ['tests/__data__/**'] } ]