// 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: ['**/node_modules', '**/dist', '**/bin'] }, eslint.configs.recommended, tseslint.configs.recommended, eslintPluginPrettierRecommended, { languageOptions: { parser: tseslint.parser, parserOptions: { sourceType: 'module', ecmaVersion: 2022 }, globals: { ...globals.es2021, ...globals.node } }, rules: { 'prettier/prettier': 'warn', '@typescript-eslint/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }], '@typescript-eslint/explicit-function-return-type': 'error', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-empty-function': ['error', { allow: ['arrowFunctions'] }], '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-var-requires': 'off' } }, { files: ['*.js', '*.mjs'], rules: { '@typescript-eslint/explicit-function-return-type': 'off' } } )