const globals = require('globals'); module.exports = { root: true, env: { es2022: true, }, parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 'latest', sourceType: 'module', ecmaFeatures: { jsx: true, }, }, globals: { ...globals.browser, ...globals.node, }, overrides: [ { files: ['scripts/**/*.{ts,js,mjs,cjs}'], rules: { 'no-console': 'off', }, }, { files: ['src/components/game-canvas/**/*.tsx'], rules: { 'react-refresh/only-export-components': 'off', }, }, { files: ['src/components/GameShell.tsx', 'src/hooks/useCombatFlow.ts'], rules: { 'simple-import-sort/imports': 'off', 'simple-import-sort/exports': 'off', }, }, ], plugins: [ '@typescript-eslint', 'react-hooks', 'react-refresh', 'simple-import-sort', 'unused-imports', ], extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended', 'prettier', ], ignorePatterns: [ 'dist', 'dist_check', 'dist_check_monster_position', 'node_modules', 'public/Icons', 'media', '.codex-logs', '*.log', '.preview.*', 'temp-build-goal-check/**', 'tmp_*', 'tmp/**', 'npc-editor-*', 'temp-write-check.txt', '**/__pycache__/**', '*.timestamp-*.mjs', ], rules: { '@typescript-eslint/no-var-requires': 'off', 'react-hooks/rules-of-hooks': 'error', 'react-refresh/only-export-components': ['error', {allowConstantExport: true}], 'simple-import-sort/imports': 'error', 'simple-import-sort/exports': 'error', '@typescript-eslint/no-unused-vars': 'off', 'unused-imports/no-unused-imports': 'error', 'unused-imports/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', }, ], 'no-constant-condition': 'error', 'no-console': ['error', {allow: ['warn', 'error']}], 'no-useless-escape': 'error', 'prefer-const': 'error', }, };