import js from '@eslint/js'; import tseslint from 'typescript-eslint'; export default tseslint.config( js.configs.recommended, ...tseslint.configs.recommended, { files: ['**/*.{js,mjs,cjs,ts}'], languageOptions: { ecmaVersion: 2024, sourceType: 'module', }, rules: { // Modern TypeScript best practices '@typescript-eslint/no-unused-vars': ['error', { 'argsIgnorePattern': '^_', 'varsIgnorePattern': '^_' }], '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/no-import-type-side-effects': 'error', // Modern JavaScript/TypeScript patterns 'prefer-const': 'error', 'no-var': 'error', 'object-shorthand': 'error', 'prefer-template': 'error', }, }, { files: ['**/*.js', '**/*.mjs'], ...tseslint.configs.disableTypeChecked, } );