const eslint = require('@eslint/js'); const tseslint = require('typescript-eslint'); const prettierConfig = require('eslint-config-prettier'); const prettierPlugin = require('eslint-plugin-prettier'); module.exports = tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, prettierConfig, { ignores: ['dist/**', 'public/**', 'node_modules/**', '*.js', '!eslint.config.js'], }, { files: ['src/**/*.ts', 'src/**/*.tsx'], languageOptions: { parserOptions: { project: ['./tsconfig.json', './tsconfig.client.json'], tsconfigRootDir: __dirname, }, }, plugins: { prettier: prettierPlugin, }, rules: { 'prettier/prettier': 'error', '@typescript-eslint/no-unused-vars': [ 'error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_', }, ], '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-non-null-assertion': 'warn', '@typescript-eslint/no-require-imports': 'off', 'no-empty': ['error', { allowEmptyCatch: true }], }, } );