import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import react from 'eslint-plugin-react'; import prettier from 'eslint-plugin-prettier/recommended'; import reactHooks from 'eslint-plugin-react-hooks'; import cypress from 'eslint-plugin-cypress'; import globals from 'globals'; export default tseslint.config( { ignores: ['dist/', 'node_modules/'], }, eslint.configs.recommended, tseslint.configs.recommended, reactHooks.configs.flat.recommended, { files: ['src/**/*.{ts,tsx}'], plugins: { react, }, rules: { ...eslint.configs.recommended.rules, ...tseslint.configs.recommended.rules, ...react.configs.recommended.rules, ...react.configs['jsx-runtime'].rules, }, languageOptions: { globals: globals.browser, parserOptions: { ecmaFeatures: { jsx: true, }, } }, settings: { react: { version: 'detect', }, } }, { files: ['integration-tests/**/*.{ts,tsx,js}'], ...cypress.configs.recommended, languageOptions: { globals: { require: 'readonly', module: 'writable', }, }, rules: { ...cypress.configs.recommended.rules, 'no-console': 'off', '@typescript-eslint/no-namespace': 'off', '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-unused-expressions': 'off', }, }, prettier, );