// Lint pro server (src), web (web/src), testy a skripty konektoru. // Pravidla drzi to, co uz kod dodrzuje: zadne any, nepouzite promenne jen // s podtrzitkem, hooky Reactu podle pravidel. Spousti se `npm run lint`. import js from '@eslint/js'; import reactHooks from 'eslint-plugin-react-hooks'; import globals from 'globals'; import tseslint from 'typescript-eslint'; export default tseslint.config( { ignores: ['dist/**', 'node_modules/**', 'data/**', 'design/**', 'web/public/**'], }, js.configs.recommended, ...tseslint.configs.recommended, { files: [ 'src/**/*.ts', 'tests/**/*.ts', 'vite.config.ts', 'vitest.config.ts', 'eslint.config.js', ], languageOptions: { globals: globals.node }, }, { files: ['web/src/**/*.{ts,tsx}'], languageOptions: { globals: globals.browser }, plugins: { 'react-hooks': reactHooks }, rules: reactHooks.configs.recommended.rules, }, { // Skripty konektoru jsou obycejny JS bez importu; `ctx` dostanou od runtime. files: ['connectors/**/*.js'], languageOptions: { sourceType: 'module', globals: {} }, }, { rules: { '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_' }, ], // Prazdny catch je tiche selhani, viz pravidlo 7 ve START.md. 'no-empty': ['error', { allowEmptyCatch: false }], }, }, );