forked from SchwarzIT/onyx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc.cjs
68 lines (67 loc) · 2.26 KB
/
.eslintrc.cjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* eslint-env node */
// see: https://github.com/vuejs/eslint-config-typescript#installation
require("@rushstack/eslint-patch/modern-module-resolution");
/**
* @type {import('eslint').ESLint.ConfigData}
*/
module.exports = {
root: true,
parserOptions: {
ecmaVersion: "latest",
},
extends: [
"plugin:vue/vue3-recommended",
"eslint:recommended",
"plugin:vuejs-accessibility/recommended",
// @vue/eslint-config-typescript must be placed after all other configs except @vue/eslint-config-prettier
// see: https://github.com/vuejs/eslint-config-typescript#vueeslint-config-typescriptrecommended
"@vue/eslint-config-typescript/recommended",
"@vue/eslint-config-prettier/skip-formatting",
],
rules: {
// Allow usage of @ts-ignore if a description for the reason was provided
"@typescript-eslint/ban-ts-comment": [
"error",
{
"ts-ignore": "allow-with-description",
},
],
// allow unused vars if they start with an underscore. Useful e.g. if destructuring arrays
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
// see https://eslint.vuejs.org/rules/html-self-closing
"vue/html-self-closing": [
"error",
{
html: {
void: "always",
normal: "never",
component: "always",
},
},
],
// this rule is only really relevant for the options API so we disable it here
// see: https://eslint.vuejs.org/rules/require-default-prop
"vue/require-default-prop": "off",
// by default all labels must have a "for" even when an input is nested inside it,
// we soften this rule to pass in this case
// see: https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html
"vuejs-accessibility/label-has-for": [
"error",
{
required: {
some: ["nesting", "id"],
},
},
],
// while it is technical supported in Vue 3 to have multiple template roots, we want to prevent this
// since it can lead to unexpected issues when e.g. applying "class" or "style" attributes on such components
"vue/no-multiple-template-root": "error",
},
};