text: module.exports = {
    root: true,
    env: {
      browser: true,
      node: true,
      mocha: true,
    },
    extends: [
      "plugin:vue/recommended",
      "eslint:recommended",
      "@vue/typescript/recommended",
      "@vue/prettier",
      "@vue/prettier/@typescript-eslint",
      "plugin:@typescript-eslint/eslint-recommended",
      "plugin:@typescript-eslint/recommended",
      "plugin:@typescript-eslint/recommended-requiring-type-checking",
    ],
    plugins: ["@typescript-eslint", "simple-import-sort"],
    parser: "vue-eslint-parser",
    parserOptions: {
      ecmaVersion: 2020,
      project: `./tsconfig.json`,
      parser: "@typescript-eslint/parser",
    },
    rules: {
      "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
      "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
      "vue/component-name-in-template-casing": "error",
      "vue/match-component-file-name": [
        "error",
        {
          extensions: ["vue"],
          shouldMatchCase: true,
        },
      ],
      "@typescript-eslint/naming-convention": [
        "error",
        {
          selector: "interface",
          format: ["PascalCase"],
          prefix: ["I"],
        },
        {
          selector: ["class", "enum", "enumMember"],
          format: ["PascalCase"],
        },
        {
          selector: [
            "variable",
            "function",
            "parameter",
            "classProperty",
            "classMethod",
          ],
          format: ["camelCase"],
        },
      ],
      "@typescript-eslint/explicit-function-return-type": [
        "error",
        { allowExpressions: true },
      ],
      "@typescript-eslint/consistent-type-assertions": [
        "error",
        { assertionStyle: "angle-bracket" },
      ],
      "simple-import-sort/imports": "error",
      "prefer-const": "error",
    },
    overrides: [
      {
        files: [
          "**/__tests__/*.{j,t}s?(x)",
          "**/tests/unit/**/*.spec.{j,t}s?(x)",
        ],
        env: {
          mocha: true,
        },
      },
    ],
  };
  