| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | module.exports = {  root: true,  env: {    node: true  },  globals: {    // Ref sugar (take 2)    $: "readonly",    $$: "readonly",    $ref: "readonly",    $shallowRef: "readonly",    $computed: "readonly",    // index.d.ts    // global.d.ts    Fn: "readonly",    PromiseFn: "readonly",    RefType: "readonly",    LabelValueOptions: "readonly",    EmitType: "readonly",    TargetContext: "readonly",    ComponentElRef: "readonly",    ComponentRef: "readonly",    ElRef: "readonly",    global: "readonly",    ForDataType: "readonly",    ComponentRoutes: "readonly",    // script setup    defineProps: "readonly",    defineEmits: "readonly",    defineExpose: "readonly",    withDefaults: "readonly"  },  extends: [    "plugin:vue/vue3-essential",    "eslint:recommended",    "@vue/typescript/recommended",    "@vue/prettier",    "@vue/eslint-config-typescript"  ],  parser: "vue-eslint-parser",  parserOptions: {    parser: "@typescript-eslint/parser",    ecmaVersion: 2020,    sourceType: "module",    jsxPragma: "React",    ecmaFeatures: {      jsx: true    }  },  overrides: [    {      files: ["*.ts", "*.vue"],      rules: {        "no-undef": "off"      }    },    {      files: ["*.vue"],      parser: "vue-eslint-parser",      parserOptions: {        parser: "@typescript-eslint/parser",        extraFileExtensions: [".vue"],        ecmaVersion: "latest",        ecmaFeatures: {          jsx: true        }      },      rules: {        "no-undef": "off"      }    }  ],  rules: {    "vue/no-v-html": "off",    "vue/require-default-prop": "off",    "vue/require-explicit-emits": "off",    "vue/multi-word-component-names": "off",    "@typescript-eslint/no-explicit-any": "off", // any    "no-debugger": "off",    "@typescript-eslint/explicit-module-boundary-types": "off", // setup()    "@typescript-eslint/ban-types": "off",    "@typescript-eslint/ban-ts-comment": "off",    "@typescript-eslint/no-empty-function": "off",    "@typescript-eslint/no-non-null-assertion": "off",    "vue/html-self-closing": [      "error",      {        html: {          void: "always",          normal: "always",          component: "always"        },        svg: "always",        math: "always"      }    ],    "@typescript-eslint/no-unused-vars": [      "error",      {        argsIgnorePattern: "^_",        varsIgnorePattern: "^_"      }    ],    "no-unused-vars": [      "error",      {        argsIgnorePattern: "^_",        varsIgnorePattern: "^_"      }    ],    "prettier/prettier": [      "error",      {        endOfLine: "auto"      }    ]  }}
 |