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", { 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", "vuejs-accessibility/form-control-has-label": "off", "@typescript-eslint/no-non-null-assertion": "off", // "import/extensions": "off", "vuejs-accessibility/click-events-have-key-events": "off", "vuejs-accessibility/mouse-events-have-key-events": "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", "no-console": "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, }, }, ], };