module.exports = { settings: { react: { version: 'detect', }, }, root: true, env: { browser: true, es2020: true }, extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react/recommended', 'plugin:react-hooks/recommended', 'plugin:react/jsx-runtime', ], ignorePatterns: ['dist', '.eslintrc.cjs', '**/vendor/**', '**/locales/**', 'generated.*'], parser: '@typescript-eslint/parser', parserOptions: { project: true, tsconfigRootDir: __dirname, ecmaFeatures: { jsx: true, }, }, plugins: ['react-refresh', 'react'], rules: { 'no-extra-semi': 'off', // this one needs to stay off '@react/no-children-prop': 'off', // tanstack form uses this as a pattern 'react/no-children-prop': 'off', // tanstack form uses this as a pattern 'no-duplicate-imports': 'warn', '@typescript-eslint/no-extra-semi': 'off', 'sort-imports': 'off', 'react-hooks/exhaustive-deps': 'off', 'react-refresh/only-export-components': 'off', 'no-case-declarations': 'off', 'no-redeclare': 'off', 'no-undef': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/strict-boolean-expressions': ['error', { "allowString": true, "allowNumber": true, "allowNullableObject": true, "allowNullableBoolean": true, "allowNullableString": true, "allowNullableNumber": false, "allowNullableEnum": true, "allowAny": true }], 'react/prop-types': 'off', 'no-lonely-if': 2, 'no-console': 2, }, }