aethex-us/events/eslint.config.mjs

53 lines
2.3 KiB
JavaScript

import react from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
import importPlugin from 'eslint-plugin-import';
import globals from 'globals';
export default [
{ ignores: ['node_modules/**', 'dist/**', 'build/**', 'vite.config.js'] },
{
files: ['**/*.js', '**/*.jsx'],
plugins: { react, 'react-hooks': reactHooks, import: importPlugin },
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
parserOptions: { ecmaFeatures: { jsx: true } },
globals: { ...globals.browser, React: 'readonly', Intl: 'readonly' },
},
settings: {
react: { version: 'detect' },
'import/resolver': {
node: { extensions: ['.js', '.jsx'] },
alias: { map: [['@', './src']], extensions: ['.js', '.jsx'] },
},
},
rules: {
...react.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
...importPlugin.flatConfigs.recommended.rules,
// Non-critical rules - disabled since code works fine without them
'react/prop-types': 'off',
'react/no-unescaped-entities': 'off',
'react/display-name': 'off', // Non-critical, component works without displayName
'react/jsx-uses-react': 'off', // Not needed in React 17+, non-critical
'react/react-in-jsx-scope': 'off', // Not needed in React 17+, non-critical
'react/jsx-uses-vars': 'off', // Non-critical, code works fine
'react/jsx-no-comment-textnodes': 'off', // Non-critical, comments could be visible if put inside the JSX, most cases are just rendering text like '///'
'no-unused-vars': 'off', // Non-critical, code works fine with unused vars
'import/no-named-as-default': 'off', // Can cause runtime import errors, usually fine to leave as is
'import/no-named-as-default-member': 'off', // Can cause runtime import errors
// Critical rules that prevent runtime errors
'no-undef': 'error', // Undefined variables cause runtime errors
// Override recommended import rules for stricter checking
'import/no-self-import': 'error', // Extremely fast rule, breaking results in infinite loop/bundling error
// Disable expensive rules for performance
'import/no-cycle': 'off', // AI rarely makes this error, and the rule is very slow to run
},
},
{ files: ['tools/**/*.js', 'tailwind.config.js'], languageOptions: { globals: globals.node } },
];