import js from '@eslint/js'; import tseslint from 'typescript-eslint'; import react from 'eslint-plugin-react'; import reactHooks from 'eslint-plugin-react-hooks'; import globals from 'globals'; export default [ { ignores: [ '**/dist/**', '**/node_modules/**', '**/.vite/**', '**/coverage/**', 'server/prisma/migrations/**', 'client/src/components/ui/**', ], }, js.configs.recommended, ...tseslint.configs.recommended, { files: ['client/src/**/*.{ts,tsx}'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', globals: { ...globals.browser }, parserOptions: { ecmaFeatures: { jsx: true }, }, }, plugins: { react, 'react-hooks': reactHooks, }, settings: { react: { version: 'detect' }, }, rules: { ...react.configs.recommended.rules, ...reactHooks.configs.recommended.rules, 'react/react-in-jsx-scope': 'off', 'react/prop-types': 'off', '@typescript-eslint/no-unused-vars': [ 'warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], '@typescript-eslint/no-explicit-any': 'warn', }, }, { files: ['server/src/**/*.ts', 'server/prisma/**/*.ts'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', globals: { ...globals.node }, }, rules: { '@typescript-eslint/no-unused-vars': [ 'warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }, ], '@typescript-eslint/no-explicit-any': 'warn', }, }, { files: ['shared/**/*.ts'], languageOptions: { ecmaVersion: 2022, sourceType: 'module', }, rules: { '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], }, }, ];