import js from '@eslint/js' import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' import { defineConfig, globalIgnores } from 'eslint/config' export default defineConfig([ globalIgnores(['dist', 'coverage', '*.config.ts', '*.config.js']), { files: ['**/*.{ts,tsx}'], extends: [ js.configs.recommended, ...tseslint.configs.strictTypeChecked, reactHooks.configs.flat.recommended, reactRefresh.configs.vite, ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { '@typescript-eslint/no-unnecessary-condition': 'error', '@typescript-eslint/prefer-nullish-coalescing': 'error', '@typescript-eslint/no-confusing-void-expression': 'off', '@typescript-eslint/no-misused-promises': [ 'error', { checksVoidReturn: { attributes: false, }, }, ], 'react-hooks/set-state-in-effect': 'off', }, }, ])