/* eslint-env node */ require('@rushstack/eslint-patch/modern-module-resolution') module.exports = { root: true, env: { browser: true, node: true, }, extends: [ 'eslint:recommended', 'plugin:vue/vue3-essential', '@vue/eslint-config-typescript/recommended', '@vue/eslint-config-prettier', ], overrides: [ { files: ['cypress/e2e/**.{cy,spec}.{js,ts,jsx,tsx}'], extends: ['plugin:cypress/recommended'], }, { // https://typescript-eslint.io/docs/linting/troubleshooting/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors files: ['*.vue'], rules: { 'no-undef': 'off', }, }, { files: ['*.story.vue', '*.story.controls.vue'], rules: { '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-unused-vars': 'off', 'vue/require-v-for-key': 'off', 'vue/no-mutating-props': 'off', }, }, ], rules: { // see https://vuejs.org/guide/extras/reactivity-transform.html 'vue/no-setup-props-destructure': 'off', // TODO: discuss if we want to force this 'vue/multi-word-component-names': 'off', // see https://eslint.org/docs/latest/rules/no-prototype-builtins#when-not-to-use-it 'no-prototype-builtins': 'off', // as long as it is explicit, it is fine to use any '@typescript-eslint/no-explicit-any': 'off', }, }