import { globalIgnores } from 'eslint/config' import globals from 'globals' import js from '@eslint/js' import pluginVue from 'eslint-plugin-vue' import { defineConfigWithVueTs, vueTsConfigs, } from '@vue/eslint-config-typescript' import pluginOxlint from 'eslint-plugin-oxlint' import skipFormatting from '@vue/eslint-config-prettier/skip-formatting' export default defineConfigWithVueTs([ { name: 'app/files-to-lint', files: ['**/*.{ts,js,mjs,jsx,vue}'], }, globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']), { languageOptions: { globals: {...globals.browser}, }, rules: { 'no-console': 'warn', 'no-debugger': 'warn', "quotes": ["warn", "double"], "semi": [2, "always"], "comma-dangle": [2, "never"], "eqeqeq": "warn", "no-var": "warn", "no-multi-spaces": "warn", "no-trailing-spaces": "warn", "camelcase": "warn", "indent": ["warn", 2], "space-infix-ops": "warn", "space-unary-ops": "warn", "switch-colon-spacing": "warn", "arrow-spacing": "warn", "array-bracket-spacing": "warn", "vue/no-unused-vars": "warn", "vue/multi-word-component-names": "off", 'vue/html-indent': [ 'error', 2, { attribute: 1, baseIndent: 1, closeBracket: 0, alignAttributesVertically: true, ignores: [] } ], 'vue/max-attributes-per-line': [ 'error', { singleline: { max: 3 } } ], 'vue/html-closing-bracket-newline': [ 'error', { singleline: 'never', multiline: 'always' } ] } }, js.configs.recommended, ...pluginVue.configs['flat/essential'], vueTsConfigs.recommended, ...pluginOxlint.configs['flat/recommended'], skipFormatting, { rules: { "@typescript-eslint/no-explicit-any": "warn" } } ])