// @ts-check import eslint from '@eslint/js'; import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; import globals from 'globals'; import tseslint from 'typescript-eslint'; export default tseslint.config( { ignores: ['eslint.config.mjs'], }, eslint.configs.recommended, eslintPluginPrettierRecommended, { extends: [tseslint.configs.recommendedTypeChecked], files: ['src/**/*.ts'], languageOptions: { globals: { ...globals.node, ...globals.jest, }, ecmaVersion: 5, sourceType: 'module', parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, }, { files: ['src/**/*.ts'], rules: { indent: 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-floating-promises': 'warn', '@typescript-eslint/no-unsafe-argument': 'warn', '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-assignment': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/restrict-template-expressions': 'off', '@typescript-eslint/no-unsafe-enum-comparison': 'off', '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-unsafe-return': 'warn', '@typescript-eslint/no-redundant-type-constituents': 'warn', '@typescript-eslint/no-unused-expressions': 'warn', '@typescript-eslint/unbound-method': [ 'error', { ignoreStatic: true, }, ], }, }, );