import js from '@eslint/js' import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import { defineConfig, globalIgnores } from 'eslint/config' export default defineConfig([ globalIgnores(['dist']), { files: ['**/*.{js,jsx}'], extends: [ js.configs.recommended, reactHooks.configs.flat.recommended, reactRefresh.configs.vite, ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, parserOptions: { ecmaVersion: 'latest', ecmaFeatures: { jsx: true }, sourceType: 'module', }, }, rules: { 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]|^motion$', argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' }], }, }, { files: ['**/*.test.js', '**/__tests__/**/*.js'], languageOptions: { globals: { ...globals.node, describe: 'readonly', it: 'readonly', expect: 'readonly', beforeEach: 'readonly', afterEach: 'readonly', beforeAll: 'readonly', afterAll: 'readonly', vi: 'readonly', process: 'readonly', }, }, }, { files: ['backend/**/*.js'], languageOptions: { globals: { ...globals.node, process: 'readonly', console: 'readonly', __dirname: 'readonly', __filename: 'readonly', }, }, }, { files: ['playwright.config.js', 'tests/e2e/**/*.js', 'tests/regression/visual.test.js'], languageOptions: { globals: { ...globals.node, process: 'readonly', }, }, }, { files: ['tests/performance/k6/**/*.js'], languageOptions: { globals: { __ENV: 'readonly', }, }, rules: { 'no-undef': 'off', }, }, { files: ['tests/performance/lighthouserc.js'], languageOptions: { globals: { module: 'readonly', }, }, rules: { 'no-undef': 'off', }, }, ])