import js from '@eslint/js';
import vue from 'eslint-plugin-vue';
import typescript from '@vue/eslint-config-typescript';
import prettierSkip from '@vue/eslint-config-prettier/skip-formatting';
import tseslint from 'typescript-eslint';
export default [
js.configs.recommended,
...vue.configs['flat/essential'],
...typescript({
extends: ['base']
}),
prettierSkip,
{
files: ['**/*.{js,ts,vue,jsx,tsx}'],
rules: {
'vue/multi-word-component-names': 'off',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
caughtErrorsIgnorePattern: '^_',
},
],
},
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
computed: 'readonly',
ref: 'readonly',
reactive: 'readonly',
watch: 'readonly',
watchEffect: 'readonly',
unref: 'readonly',
toRef: 'readonly',
toRefs: 'readonly',
isRef: 'readonly',
readonly: 'readonly',
shallowRef: 'readonly',
shallowReactive: 'readonly',
toRaw: 'readonly',
markRaw: 'readonly',
effectScope: 'readonly',
getCurrentScope: 'readonly',
onScopeDispose: 'readonly',
nextTick: 'readonly',
PropType: 'readonly',
onBeforeMount: 'readonly',
onMounted: 'readonly',
onBeforeUpdate: 'readonly',
onUpdated: 'readonly',
onBeforeUnmount: 'readonly',
onUnmounted: 'readonly',
onActivated: 'readonly',
onDeactivated: 'readonly',
onErrorCaptured: 'readonly',
useRouter: 'readonly',
useRoute: 'readonly',
useAsyncData: 'readonly',
useFetch: 'readonly',
useLazyFetch: 'readonly',
useLazyAsyncData: 'readonly',
useNuxtApp: 'readonly',
useRuntimeConfig: 'readonly',
useState: 'readonly',
useCookie: 'readonly',
useRequestHeaders: 'readonly',
useRequestEvent: 'readonly',
useRequestFetch: 'readonly',
useRequestURL: 'readonly',
useHead: 'readonly',
useSeoMeta: 'readonly',
useError: 'readonly',
useNuxtData: 'readonly',
refreshNuxtData: 'readonly',
clearNuxtData: 'readonly',
createError: 'readonly',
showError: 'readonly',
clearError: 'readonly',
navigateTo: 'readonly',
abortNavigation: 'readonly',
setPageLayout: 'readonly',
definePageMeta: 'readonly',
prefetchComponents: 'readonly',
preloadComponents: 'readonly',
preloadRouteComponents: 'readonly',
reloadNuxtApp: 'readonly',
defineNuxtPlugin: 'readonly',
defineNuxtRouteMiddleware: 'readonly',
defineNitroPlugin: 'readonly',
queryContent: 'readonly',
defineStore: 'readonly',
acceptHMRUpdate: 'readonly',
storeToRefs: 'readonly',
useDebounceFn: 'readonly',
useEventListener: 'readonly',
useTemplateRef: 'readonly',
useIntersectionObserver: 'readonly',
useDocumentVisibility: 'readonly',
watchDebounced: 'readonly',
COOKIE_KEY: 'readonly',
COOKIE_AGREED_STATUS: 'readonly',
ClipboardJS: 'readonly',
NodeListOf: 'readonly',
document: 'readonly',
navigator: 'readonly',
window: 'readonly',
},
},
},
{
ignores: [
'**/node_modules/**',
'**/dist/**',
'**/.output/**',
'**/.nuxt/**',
'**/coverage/**',
'**/public/**',
'**/npmcache/**',
'**/vite.config.{js,ts}',
'**/vitest.config.{js,ts}',
'**/vitest.setup.{js,ts}',
'**/nuxt.config.{js,ts}',
'**/config.mjs',
'**/*.d.ts',
'eslint.config.js'
],
},
];