import { FlatCompat } from '@eslint/eslintrc'; import pluginJs from '@eslint/js'; import pluginVue from 'eslint-plugin-vue'; import globals from 'globals'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import tsEslint from 'typescript-eslint'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, }); export default [ { languageOptions: { globals: globals.browser } }, pluginJs.configs.recommended, ...tsEslint.configs.recommended, ...pluginVue.configs['flat/recommended'], ...compat.extends('@vue/eslint-config-typescript/recommended'), ...compat.extends('@vue/eslint-config-prettier'), { rules: { // disable eslint no-shadow as it's causing false positives on typescript enums 'no-shadow': 'off', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }], }, }, ];