Files
harheimertc/eslint.config.js
2025-12-20 10:17:16 +01:00

96 lines
2.4 KiB
JavaScript

import js from '@eslint/js'
import vue from 'eslint-plugin-vue'
import parser from 'vue-eslint-parser'
import globals from 'globals'
export default [
js.configs.recommended,
...vue.configs['flat/recommended'],
{
files: ['**/*.vue', '**/*.js'],
languageOptions: {
parser: parser,
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
...globals.browser,
...globals.node,
...globals.es2021,
// Nuxt/Vue specific globals
'$fetch': 'readonly',
'useAuthStore': 'readonly',
'useRoute': 'readonly',
'useRouter': 'readonly',
'navigateTo': 'readonly',
'useHead': 'readonly',
'useFetch': 'readonly',
'definePageMeta': 'readonly',
'defineNuxtRouteMiddleware': 'readonly',
'defineEventHandler': 'readonly',
'readBody': 'readonly',
'getCookie': 'readonly',
'setCookie': 'readonly',
'deleteCookie': 'readonly',
'getHeader': 'readonly',
'getRouterParam': 'readonly',
'getQuery': 'readonly',
'sendStream': 'readonly',
'sendRedirect': 'readonly',
'createError': 'readonly',
'useRuntimeConfig': 'readonly',
'process': 'readonly',
// Vue Composition API
'onUnmounted': 'readonly',
'provide': 'readonly',
'inject': 'readonly',
'ref': 'readonly',
'reactive': 'readonly',
'computed': 'readonly',
'watch': 'readonly',
'onMounted': 'readonly',
'defineComponent': 'readonly',
'defineProps': 'readonly',
'defineEmits': 'readonly',
'defineExpose': 'readonly'
},
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
}
},
rules: {
'vue/multi-word-component-names': 'off',
'vue/no-v-html': 'warn',
'no-unused-vars': ['warn', {
argsIgnorePattern: '^_',
varsIgnorePattern: '^_'
}],
'vue/no-unused-vars': ['warn', {
ignorePattern: '^_'
}],
'no-undef': 'warn',
'no-console': 'off'
}
},
{
ignores: [
'node_modules/**',
'.output/**',
'.nuxt/**',
'.next/**',
'dist/**',
'build/**',
'*.config.js',
'*.config.ts',
'*.config.cjs',
'*.cjs',
'temp/**',
'backups/**',
'public/**',
'tests/**',
'scripts/**'
]
}
]