module.exports = { root: true, env: { browser: true, node: true, es6: true, }, parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", ecmaVersion: 2020, sourceType: "module", jsxPragma: "React", ecmaFeatures: { jsx: true, tsx: true, }, }, plugins: ["@typescript-eslint", "prettier", "import"], extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:vue/vue3-recommended", "prettier"], overrides: [ { files: ["*.ts", "*.tsx", "*.vue"], rules: { "no-undef": "off", }, }, ], rules: { "no-restricted-syntax": ["error", "LabeledStatement", "WithStatement"], camelcase: ["error", { properties: "never" }], "no-var": "error", "no-empty": ["error", { allowEmptyCatch: true }], "no-void": "error", "prefer-const": ["warn", { destructuring: "all", ignoreReadBeforeAssign: true }], "prefer-template": "error", "object-shorthand": ["error", "always", { ignoreConstructors: false, avoidQuotes: true }], "block-scoped-var": "error", "no-constant-condition": ["error", { checkLoops: false }], "no-redeclare": "off", "@typescript-eslint/no-redeclare": "error", "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/ban-types": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-non-null-asserted-optional-chain": "off", "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", }, ], "no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", }, ], // vue "vue/no-v-html": "off", "vue/require-default-prop": "off", "vue/require-explicit-emits": "off", "vue/multi-word-component-names": "off", // prettier "prettier/prettier": "error", // import "import/first": "error", "import/no-duplicates": "error", "import/order": [ "error", { groups: ["builtin", "external", "internal", "parent", "sibling", "index", "object", "type"], pathGroupsExcludedImportTypes: ["type"], }, ], }, }