import eslint from '@eslint/js'; import tseslint from '@typescript-eslint/eslint-plugin'; import tsparser from '@typescript-eslint/parser'; import prettier from 'eslint-plugin-prettier'; import prettierConfig from 'eslint-config-prettier'; import globals from 'globals'; export default [ { ignores: ['dist/**', 'node_modules/**', 'coverage/**', '.eslintrc.js'], }, eslint.configs.recommended, { files: ['**/*.ts'], languageOptions: { parser: tsparser, parserOptions: { project: './tsconfig.json', tsconfigRootDir: import.meta.dirname, sourceType: 'module', }, globals: { ...globals.node, ...globals.jest, }, }, plugins: { '@typescript-eslint': tseslint, prettier: prettier, }, rules: { ...tseslint.configs.recommended.rules, ...prettierConfig.rules, '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', 'prettier/prettier': 'error', 'no-undef': 'off', // TypeScript handles this }, }, ];