import pluginVue from 'eslint-plugin-vue' import tsParser from '@typescript-eslint/parser' import tsPlugin from '@typescript-eslint/eslint-plugin' export default [ // Global ignores { ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], }, // Vue recommended rules ...pluginVue.configs['flat/essential'], // TypeScript configuration for .ts/.tsx files { files: ['**/*.{ts,tsx}'], languageOptions: { parser: tsParser, parserOptions: { ecmaVersion: 'latest', sourceType: 'module', }, }, plugins: { '@typescript-eslint': tsPlugin, }, rules: { ...tsPlugin.configs.recommended.rules, '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': 'warn' }, }, // TypeScript configuration for .vue files { files: ['**/*.vue'], languageOptions: { parserOptions: { parser: tsParser, ecmaVersion: 'latest', sourceType: 'module', extraFileExtensions: ['.vue'], }, }, plugins: { '@typescript-eslint': tsPlugin, }, rules: { ...tsPlugin.configs.recommended.rules, 'vue/multi-word-component-names': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': 'warn' }, }, ]