You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.6 KiB
120 lines
2.6 KiB
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"
|
|
}
|
|
]
|
|
}
|
|
};
|