module.exports = { root: true, env: { node: true, }, extends: [ 'plugin:vue/vue3-essential', '@vue/airbnb', '@vue/typescript/recommended', '@vue/prettier', '@vue/prettier/@typescript-eslint', ], parserOptions: { ecmaVersion: 2020, parser: '@typescript-eslint/parser', }, rules: { 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', mjs: 'never', jsx: 'never', ts: 'never', tsx: 'never', }, ], 'import/no-unresolved': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-non-null-assertion': 'off', 'no-unused-expressions': [ 'error', { allowShortCircuit: true, }, ], 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], 'no-restricted-syntax': 'off', 'no-shadow': 'off', 'vue/no-v-model-argument': 'off', '@typescript-eslint/no-shadow': 'error', '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/no-var-requires': 'off', 'no-return-assign': 'off', 'no-param-reassign': 'off', 'no-plusplus': 'off', 'class-methods-use-this': 'off', 'no-await-in-loop': 'off', 'no-continue': 'off', 'guard-for-in': 'off', 'no-return-await': 'off', 'prefer-destructuring': 'off', '@typescript-eslint/no-this-alias': 'off', 'import/order': [ 'error', { pathGroups: [ { pattern: '@/**', group: 'internal', }, ], groups: [['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object']], }, ], }, globals: { }, overrides: [ { files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'], env: { mocha: true, }, }, ], };