/
_override-vue.js
242 lines (240 loc) · 13.4 KB
/
_override-vue.js
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
/**
* @author Toru Nagashima
* See LICENSE file in root directory for full license.
*/
"use strict"
module.exports = {
overrides: [
{
files: ["*.vue"],
extends: [
require.resolve("./+browser.js"),
require.resolve("./+modules.js"),
],
parser: require.resolve("vue-eslint-parser"),
rules: {
// Enabled rules
"@mysticatea/vue/array-bracket-newline": "error",
"@mysticatea/vue/array-bracket-spacing": ["error", "never"],
"@mysticatea/vue/arrow-spacing": "error",
"@mysticatea/vue/attribute-hyphenation": "error",
"@mysticatea/vue/attributes-order": "error",
"@mysticatea/vue/block-lang": "error",
"@mysticatea/vue/block-spacing": "error",
"@mysticatea/vue/block-tag-newline": "error",
"@mysticatea/vue/brace-style": "error",
"@mysticatea/vue/camelcase": "error",
"@mysticatea/vue/comma-dangle": [
"error",
{
arrays: "always",
objects: "always",
imports: "always",
exports: "always",
functions: "always",
},
],
"@mysticatea/vue/comma-spacing": "error",
"@mysticatea/vue/comma-style": "error",
"@mysticatea/vue/comment-directive": "error",
"@mysticatea/vue/component-definition-name-casing": "error",
"@mysticatea/vue/component-name-in-template-casing": [
"error",
"kebab-case",
],
"@mysticatea/vue/component-tags-order": "error",
"@mysticatea/vue/custom-event-name-casing": "error",
"@mysticatea/vue/dot-location": "error",
"@mysticatea/vue/dot-notation": "error",
"@mysticatea/vue/eqeqeq": [
"error",
"always",
{ null: "ignore" },
],
"@mysticatea/vue/func-call-spacing": "error",
"@mysticatea/vue/html-button-has-type": "error",
"@mysticatea/vue/html-closing-bracket-newline": [
"error",
{
singleline: "never",
multiline: "always",
},
],
"@mysticatea/vue/html-closing-bracket-spacing": "error",
"@mysticatea/vue/html-comment-content-newline": "error",
"@mysticatea/vue/html-comment-content-spacing": "error",
"@mysticatea/vue/html-comment-indent": "error",
"@mysticatea/vue/html-end-tags": "error",
"@mysticatea/vue/html-indent": ["error", 4],
"@mysticatea/vue/html-quotes": "error",
"@mysticatea/vue/html-self-closing": "error",
"@mysticatea/vue/jsx-uses-vars": "error",
"@mysticatea/vue/key-spacing": "error",
"@mysticatea/vue/keyword-spacing": "error",
"@mysticatea/vue/match-component-file-name": "error",
"@mysticatea/vue/max-attributes-per-line": [
"error",
{
singleline: 3,
multiline: 1,
},
],
"@mysticatea/vue/max-len": ["error", { tabWidth: 4 }],
"@mysticatea/vue/multiline-html-element-content-newline":
"error",
"@mysticatea/vue/mustache-interpolation-spacing": "error",
"@mysticatea/vue/new-line-between-multi-line-property": "error",
"@mysticatea/vue/next-tick-style": "error",
"@mysticatea/vue/no-arrow-functions-in-watch": "error",
"@mysticatea/vue/no-async-in-computed-properties": "error",
"@mysticatea/vue/no-bare-strings-in-template": "error",
"@mysticatea/vue/no-boolean-default": "error",
"@mysticatea/vue/no-constant-condition": "error",
"@mysticatea/vue/no-custom-modifiers-on-v-model": "error",
"@mysticatea/vue/no-deprecated-data-object-declaration":
"error",
"@mysticatea/vue/no-deprecated-destroyed-lifecycle": "error",
"@mysticatea/vue/no-deprecated-dollar-listeners-api": "error",
"@mysticatea/vue/no-deprecated-dollar-scopedslots-api": "error",
"@mysticatea/vue/no-deprecated-events-api": "error",
"@mysticatea/vue/no-deprecated-filter": "error",
"@mysticatea/vue/no-deprecated-functional-template": "error",
"@mysticatea/vue/no-deprecated-html-element-is": "error",
"@mysticatea/vue/no-deprecated-inline-template": "error",
"@mysticatea/vue/no-deprecated-props-default-this": "error",
"@mysticatea/vue/no-deprecated-scope-attribute": "error",
"@mysticatea/vue/no-deprecated-slot-attribute": "error",
"@mysticatea/vue/no-deprecated-slot-scope-attribute": "error",
"@mysticatea/vue/no-deprecated-v-bind-sync": "error",
"@mysticatea/vue/no-deprecated-v-is": "error",
"@mysticatea/vue/no-deprecated-v-on-native-modifier": "error",
"@mysticatea/vue/no-deprecated-v-on-number-modifiers": "error",
"@mysticatea/vue/no-deprecated-vue-config-keycodes": "error",
"@mysticatea/vue/no-dupe-keys": "error",
"@mysticatea/vue/no-dupe-v-else-if": "error",
"@mysticatea/vue/no-duplicate-attr-inheritance": "error",
"@mysticatea/vue/no-duplicate-attributes": "error",
"@mysticatea/vue/no-empty-component-block": "error",
"@mysticatea/vue/no-empty-pattern": "error",
"@mysticatea/vue/no-export-in-script-setup": "error",
"@mysticatea/vue/no-extra-parens": "error",
"@mysticatea/vue/no-invalid-model-keys": "error",
"@mysticatea/vue/no-irregular-whitespace": "error",
"@mysticatea/vue/no-lifecycle-after-await": "error",
"@mysticatea/vue/no-lone-template": "error",
"@mysticatea/vue/no-multi-spaces": "error",
"@mysticatea/vue/no-multiple-objects-in-class": "error",
"@mysticatea/vue/no-multiple-slot-args": "error",
"@mysticatea/vue/no-multiple-template-root": "error",
"@mysticatea/vue/no-mutating-props": "error",
"@mysticatea/vue/no-parsing-error": "error",
"@mysticatea/vue/no-potential-component-option-typo": "error",
"@mysticatea/vue/no-ref-as-operand": "error",
"@mysticatea/vue/no-reserved-component-names": "error",
"@mysticatea/vue/no-reserved-keys": "error",
"@mysticatea/vue/no-restricted-block": "error",
"@mysticatea/vue/no-restricted-call-after-await": "error",
"@mysticatea/vue/no-restricted-component-options": "error",
"@mysticatea/vue/no-restricted-custom-event": "error",
"@mysticatea/vue/no-restricted-props": "error",
"@mysticatea/vue/no-restricted-static-attribute": "error",
"@mysticatea/vue/no-restricted-v-bind": "error",
"@mysticatea/vue/no-setup-props-destructure": "error",
"@mysticatea/vue/no-shared-component-data": "error",
"@mysticatea/vue/no-side-effects-in-computed-properties":
"error",
"@mysticatea/vue/no-spaces-around-equal-signs-in-attribute":
"error",
"@mysticatea/vue/no-sparse-arrays": "error",
"@mysticatea/vue/no-static-inline-styles": "error",
"@mysticatea/vue/no-template-key": "error",
"@mysticatea/vue/no-template-shadow": "error",
"@mysticatea/vue/no-template-target-blank": "error",
"@mysticatea/vue/no-textarea-mustache": "error",
"@mysticatea/vue/no-this-in-before-route-enter": "error",
"@mysticatea/vue/no-unregistered-components": "error",
"@mysticatea/vue/no-unsupported-features": "error",
"@mysticatea/vue/no-unused-components": "error",
"@mysticatea/vue/no-unused-properties": "error",
"@mysticatea/vue/no-unused-refs": "error",
"@mysticatea/vue/no-unused-vars": "error",
"@mysticatea/vue/no-use-computed-property-like-method": "error",
"@mysticatea/vue/no-use-v-if-with-v-for": "error",
"@mysticatea/vue/no-useless-concat": "error",
"@mysticatea/vue/no-useless-mustaches": "error",
"@mysticatea/vue/no-useless-v-bind": "error",
"@mysticatea/vue/no-v-for-template-key-on-child": "error",
"@mysticatea/vue/no-v-for-template-key": "error",
"@mysticatea/vue/no-v-html": "error",
"@mysticatea/vue/no-v-model-argument": "error",
"@mysticatea/vue/no-watch-after-await": "error",
"@mysticatea/vue/object-curly-newline": "error",
"@mysticatea/vue/object-curly-spacing": ["error", "always"],
"@mysticatea/vue/object-property-newline": "error",
"@mysticatea/vue/one-component-per-file": "error",
"@mysticatea/vue/operator-linebreak": "error",
"@mysticatea/vue/order-in-components": "error",
"@mysticatea/vue/padding-line-between-blocks": "error",
"@mysticatea/vue/prefer-template": "error",
"@mysticatea/vue/prop-name-casing": "error",
"@mysticatea/vue/require-component-is": "error",
"@mysticatea/vue/require-default-prop": "error",
"@mysticatea/vue/require-direct-export": "error",
"@mysticatea/vue/require-emit-validator": "error",
"@mysticatea/vue/require-explicit-emits": "error",
"@mysticatea/vue/require-expose": "error",
"@mysticatea/vue/require-name-property": "error",
"@mysticatea/vue/require-prop-type-constructor": "error",
"@mysticatea/vue/require-prop-types": "error",
"@mysticatea/vue/require-render-return": "error",
"@mysticatea/vue/require-slots-as-functions": "error",
"@mysticatea/vue/require-toggle-inside-transition": "error",
"@mysticatea/vue/require-v-for-key": "error",
"@mysticatea/vue/require-valid-default-prop": "error",
"@mysticatea/vue/return-in-computed-property": "error",
"@mysticatea/vue/return-in-emits-validator": "error",
"@mysticatea/vue/script-setup-uses-vars": "error",
"@mysticatea/vue/singleline-html-element-content-newline":
"error",
"@mysticatea/vue/sort-keys": "error",
"@mysticatea/vue/space-in-parens": "error",
"@mysticatea/vue/space-infix-ops": "error",
"@mysticatea/vue/space-unary-ops": "error",
"@mysticatea/vue/static-class-names-order": "error",
"@mysticatea/vue/template-curly-spacing": "error",
"@mysticatea/vue/this-in-template": "error",
"@mysticatea/vue/use-v-on-exact": "error",
"@mysticatea/vue/v-bind-style": "error",
"@mysticatea/vue/v-for-delimiter-style": "error",
"@mysticatea/vue/v-on-event-hyphenation": "error",
"@mysticatea/vue/v-on-function-call": "error",
"@mysticatea/vue/v-on-style": "error",
"@mysticatea/vue/v-slot-style": "error",
"@mysticatea/vue/valid-define-emits": "error",
"@mysticatea/vue/valid-define-props": "error",
"@mysticatea/vue/valid-next-tick": "error",
"@mysticatea/vue/valid-template-root": "error",
"@mysticatea/vue/valid-v-bind-sync": "error",
"@mysticatea/vue/valid-v-bind": "error",
"@mysticatea/vue/valid-v-cloak": "error",
"@mysticatea/vue/valid-v-else-if": "error",
"@mysticatea/vue/valid-v-else": "error",
"@mysticatea/vue/valid-v-for": "error",
"@mysticatea/vue/valid-v-html": "error",
"@mysticatea/vue/valid-v-if": "error",
"@mysticatea/vue/valid-v-is": "error",
"@mysticatea/vue/valid-v-memo": "error",
"@mysticatea/vue/valid-v-model": "error",
"@mysticatea/vue/valid-v-on": "error",
"@mysticatea/vue/valid-v-once": "error",
"@mysticatea/vue/valid-v-pre": "error",
"@mysticatea/vue/valid-v-show": "error",
"@mysticatea/vue/valid-v-slot": "error",
"@mysticatea/vue/valid-v-text": "error",
// Disabled rules (prefer prettier)
"@mysticatea/vue/no-restricted-syntax": "off",
"@mysticatea/vue/script-indent": "off",
},
},
],
}