import globals from 'globals'; import pluginJs from '@eslint/js'; import tseslint from '@typescript-eslint/eslint-plugin'; import tsParser from '@typescript-eslint/parser'; import reactPlugin from 'eslint-plugin-react'; import reactHooksPlugin from 'eslint-plugin-react-hooks'; import importPlugin from 'eslint-plugin-import'; export default [ { languageOptions: { globals: { ...globals.browser, ...globals.es2021, ...globals.node, ...globals.serviceworker }, parser: tsParser, parserOptions: { ecmaVersion: 'latest', sourceType: 'module', ecmaFeatures: { jsx: true } } }, plugins: { import: importPlugin } }, pluginJs.configs.recommended, { files: ['**/*.ts', '**/*.tsx'], plugins: { '@typescript-eslint': tseslint }, rules: { ...tseslint.configs.recommended.rules } }, { plugins: { react: reactPlugin, 'react-hooks': reactHooksPlugin }, rules: { 'react-hooks/rules-of-hooks': 'error', 'react-hooks/exhaustive-deps': 'warn', 'react/react-in-jsx-scope': 'off' } } ];