Skip to content

Commit 17a6cac

Browse files
committed
feat: update eslint-plugin-vue + update configs
1 parent 8b5871b commit 17a6cac

File tree

2 files changed

+139
-41
lines changed

2 files changed

+139
-41
lines changed

lib/configs/_override-vue.js

Lines changed: 138 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,14 @@ module.exports = {
1515
parser: require.resolve("vue-eslint-parser"),
1616
rules: {
1717
// Enabled rules
18+
"@mysticatea/vue/array-bracket-newline": "error",
1819
"@mysticatea/vue/array-bracket-spacing": ["error", "never"],
1920
"@mysticatea/vue/arrow-spacing": "error",
21+
"@mysticatea/vue/attribute-hyphenation": "error",
22+
"@mysticatea/vue/attributes-order": "error",
23+
"@mysticatea/vue/block-lang": "error",
2024
"@mysticatea/vue/block-spacing": "error",
25+
"@mysticatea/vue/block-tag-newline": "error",
2126
"@mysticatea/vue/brace-style": "error",
2227
"@mysticatea/vue/camelcase": "error",
2328
"@mysticatea/vue/comma-dangle": [
@@ -30,15 +35,41 @@ module.exports = {
3035
functions: "always",
3136
},
3237
],
38+
"@mysticatea/vue/comma-spacing": "error",
39+
"@mysticatea/vue/comma-style": "error",
3340
"@mysticatea/vue/comment-directive": "error",
41+
"@mysticatea/vue/component-api-style": "error",
3442
"@mysticatea/vue/component-definition-name-casing": "error",
43+
"@mysticatea/vue/component-name-in-template-casing": [
44+
"error",
45+
"kebab-case",
46+
],
3547
"@mysticatea/vue/component-tags-order": "error",
48+
"@mysticatea/vue/custom-event-name-casing": "error",
3649
"@mysticatea/vue/dot-location": "error",
50+
"@mysticatea/vue/dot-notation": "error",
3751
"@mysticatea/vue/eqeqeq": [
3852
"error",
3953
"always",
4054
{ null: "ignore" },
4155
],
56+
"@mysticatea/vue/func-call-spacing": "error",
57+
"@mysticatea/vue/html-button-has-type": "error",
58+
"@mysticatea/vue/html-closing-bracket-newline": [
59+
"error",
60+
{
61+
singleline: "never",
62+
multiline: "always",
63+
},
64+
],
65+
"@mysticatea/vue/html-closing-bracket-spacing": "error",
66+
"@mysticatea/vue/html-comment-content-newline": "error",
67+
"@mysticatea/vue/html-comment-content-spacing": "error",
68+
"@mysticatea/vue/html-comment-indent": "error",
69+
"@mysticatea/vue/html-end-tags": "error",
70+
"@mysticatea/vue/html-indent": ["error", 4],
71+
"@mysticatea/vue/html-quotes": "error",
72+
"@mysticatea/vue/html-self-closing": "error",
4273
"@mysticatea/vue/jsx-uses-vars": "error",
4374
"@mysticatea/vue/key-spacing": "error",
4475
"@mysticatea/vue/keyword-spacing": "error",
@@ -54,41 +85,146 @@ module.exports = {
5485
},
5586
],
5687
"@mysticatea/vue/max-len": ["error", { tabWidth: 4 }],
88+
"@mysticatea/vue/multiline-html-element-content-newline":
89+
"error",
90+
"@mysticatea/vue/multi-word-component-names": "error",
91+
"@mysticatea/vue/mustache-interpolation-spacing": "error",
92+
"@mysticatea/vue/new-line-between-multi-line-property": "error",
93+
"@mysticatea/vue/next-tick-style": "error",
94+
"@mysticatea/vue/no-arrow-functions-in-watch": "error",
5795
"@mysticatea/vue/no-async-in-computed-properties": "error",
96+
"@mysticatea/vue/no-bare-strings-in-template": "error",
5897
"@mysticatea/vue/no-boolean-default": "error",
98+
"@mysticatea/vue/no-computed-properties-in-data": "error",
99+
"@mysticatea/vue/no-constant-condition": "error",
100+
"@mysticatea/vue/no-custom-modifiers-on-v-model": "error",
101+
"@mysticatea/vue/no-deprecated-data-object-declaration":
102+
"error",
103+
"@mysticatea/vue/no-deprecated-destroyed-lifecycle": "error",
104+
"@mysticatea/vue/no-deprecated-dollar-listeners-api": "error",
105+
"@mysticatea/vue/no-deprecated-dollar-scopedslots-api": "error",
106+
"@mysticatea/vue/no-deprecated-events-api": "error",
107+
"@mysticatea/vue/no-deprecated-filter": "error",
108+
"@mysticatea/vue/no-deprecated-functional-template": "error",
109+
"@mysticatea/vue/no-deprecated-html-element-is": "error",
110+
"@mysticatea/vue/no-deprecated-inline-template": "error",
111+
"@mysticatea/vue/no-deprecated-props-default-this": "error",
112+
"@mysticatea/vue/no-deprecated-router-link-tag-prop": "error",
59113
"@mysticatea/vue/no-deprecated-scope-attribute": "error",
60114
"@mysticatea/vue/no-deprecated-slot-attribute": "error",
61115
"@mysticatea/vue/no-deprecated-slot-scope-attribute": "error",
116+
"@mysticatea/vue/no-deprecated-v-bind-sync": "error",
117+
"@mysticatea/vue/no-deprecated-v-is": "error",
118+
"@mysticatea/vue/no-deprecated-v-on-native-modifier": "error",
119+
"@mysticatea/vue/no-deprecated-v-on-number-modifiers": "error",
120+
"@mysticatea/vue/no-deprecated-vue-config-keycodes": "error",
62121
"@mysticatea/vue/no-dupe-keys": "error",
122+
"@mysticatea/vue/no-dupe-v-else-if": "error",
123+
"@mysticatea/vue/no-duplicate-attr-inheritance": "error",
63124
"@mysticatea/vue/no-duplicate-attributes": "error",
125+
"@mysticatea/vue/no-empty-component-block": "error",
64126
"@mysticatea/vue/no-empty-pattern": "error",
127+
"@mysticatea/vue/no-export-in-script-setup": "error",
128+
"@mysticatea/vue/no-extra-parens": "error",
129+
"@mysticatea/vue/no-invalid-model-keys": "error",
65130
"@mysticatea/vue/no-irregular-whitespace": "error",
131+
"@mysticatea/vue/no-lifecycle-after-await": "error",
132+
"@mysticatea/vue/no-lone-template": "error",
133+
"@mysticatea/vue/no-multiple-objects-in-class": "error",
134+
"@mysticatea/vue/no-multiple-slot-args": "error",
135+
"@mysticatea/vue/no-multiple-template-root": "error",
136+
"@mysticatea/vue/no-multi-spaces": "error",
137+
"@mysticatea/vue/no-mutating-props": "error",
66138
"@mysticatea/vue/no-parsing-error": "error",
139+
"@mysticatea/vue/no-potential-component-option-typo": "error",
140+
"@mysticatea/vue/no-ref-as-operand": "error",
67141
"@mysticatea/vue/no-reserved-component-names": "error",
68142
"@mysticatea/vue/no-reserved-keys": "error",
143+
"@mysticatea/vue/no-restricted-block": "error",
144+
"@mysticatea/vue/no-restricted-call-after-await": "error",
145+
"@mysticatea/vue/no-restricted-class": "error",
146+
"@mysticatea/vue/no-restricted-component-options": "error",
147+
"@mysticatea/vue/no-restricted-custom-event": "error",
148+
"@mysticatea/vue/no-restricted-props": "error",
149+
"@mysticatea/vue/no-restricted-static-attribute": "error",
150+
"@mysticatea/vue/no-restricted-v-bind": "error",
151+
"@mysticatea/vue/no-setup-props-destructure": "error",
69152
"@mysticatea/vue/no-shared-component-data": "error",
70153
"@mysticatea/vue/no-side-effects-in-computed-properties":
71154
"error",
155+
"@mysticatea/vue/no-spaces-around-equal-signs-in-attribute":
156+
"error",
157+
"@mysticatea/vue/no-sparse-arrays": "error",
72158
"@mysticatea/vue/no-static-inline-styles": "error",
73159
"@mysticatea/vue/no-template-key": "error",
160+
"@mysticatea/vue/no-template-shadow": "error",
161+
"@mysticatea/vue/no-template-target-blank": "error",
74162
"@mysticatea/vue/no-textarea-mustache": "error",
163+
"@mysticatea/vue/no-this-in-before-route-enter": "error",
164+
"@mysticatea/vue/no-undef-properties": "error",
165+
"@mysticatea/vue/no-unregistered-components": "error",
75166
"@mysticatea/vue/no-unsupported-features": "error",
167+
"@mysticatea/vue/no-unused-components": "error",
168+
"@mysticatea/vue/no-unused-properties": "error",
169+
"@mysticatea/vue/no-unused-refs": "error",
76170
"@mysticatea/vue/no-unused-vars": "error",
171+
"@mysticatea/vue/no-use-computed-property-like-method": "error",
172+
"@mysticatea/vue/no-use-v-if-with-v-for": "error",
173+
"@mysticatea/vue/no-useless-concat": "error",
174+
"@mysticatea/vue/no-useless-mustaches": "error",
175+
"@mysticatea/vue/no-useless-template-attributes": "error",
176+
"@mysticatea/vue/no-useless-v-bind": "error",
177+
"@mysticatea/vue/no-v-for-template-key-on-child": "error",
178+
"@mysticatea/vue/no-v-for-template-key": "error",
179+
"@mysticatea/vue/no-v-html": "error",
180+
"@mysticatea/vue/no-v-model-argument": "error",
181+
"@mysticatea/vue/no-v-text": "error",
182+
"@mysticatea/vue/no-watch-after-await": "error",
183+
"@mysticatea/vue/object-curly-newline": "error",
77184
"@mysticatea/vue/object-curly-spacing": ["error", "always"],
185+
"@mysticatea/vue/object-property-newline": "error",
186+
"@mysticatea/vue/one-component-per-file": "error",
187+
"@mysticatea/vue/operator-linebreak": "error",
188+
"@mysticatea/vue/order-in-components": "error",
78189
"@mysticatea/vue/padding-line-between-blocks": "error",
190+
"@mysticatea/vue/prefer-template": "error",
191+
"@mysticatea/vue/prop-name-casing": "error",
79192
"@mysticatea/vue/require-component-is": "error",
193+
"@mysticatea/vue/require-default-prop": "error",
80194
"@mysticatea/vue/require-direct-export": "error",
195+
"@mysticatea/vue/require-emit-validator": "error",
196+
"@mysticatea/vue/require-explicit-emits": "error",
197+
"@mysticatea/vue/require-expose": "error",
81198
"@mysticatea/vue/require-name-property": "error",
199+
"@mysticatea/vue/require-prop-type-constructor": "error",
200+
"@mysticatea/vue/require-prop-types": "error",
82201
"@mysticatea/vue/require-render-return": "error",
202+
"@mysticatea/vue/require-slots-as-functions": "error",
203+
"@mysticatea/vue/require-toggle-inside-transition": "error",
83204
"@mysticatea/vue/require-v-for-key": "error",
84205
"@mysticatea/vue/require-valid-default-prop": "error",
85206
"@mysticatea/vue/return-in-computed-property": "error",
207+
"@mysticatea/vue/return-in-emits-validator": "error",
208+
"@mysticatea/vue/script-setup-uses-vars": "error",
209+
"@mysticatea/vue/singleline-html-element-content-newline":
210+
"error",
86211
"@mysticatea/vue/sort-keys": "error",
212+
"@mysticatea/vue/space-in-parens": "error",
87213
"@mysticatea/vue/space-infix-ops": "error",
88214
"@mysticatea/vue/space-unary-ops": "error",
89215
"@mysticatea/vue/static-class-names-order": "error",
216+
"@mysticatea/vue/template-curly-spacing": "error",
217+
"@mysticatea/vue/this-in-template": "error",
218+
"@mysticatea/vue/use-v-on-exact": "error",
219+
"@mysticatea/vue/v-bind-style": "error",
220+
"@mysticatea/vue/v-for-delimiter-style": "error",
221+
"@mysticatea/vue/v-on-event-hyphenation": "error",
90222
"@mysticatea/vue/v-on-function-call": "error",
223+
"@mysticatea/vue/v-on-style": "error",
91224
"@mysticatea/vue/v-slot-style": "error",
225+
"@mysticatea/vue/valid-define-emits": "error",
226+
"@mysticatea/vue/valid-define-props": "error",
227+
"@mysticatea/vue/valid-next-tick": "error",
92228
"@mysticatea/vue/valid-template-root": "error",
93229
"@mysticatea/vue/valid-v-bind-sync": "error",
94230
"@mysticatea/vue/valid-v-bind": "error",
@@ -98,53 +234,15 @@ module.exports = {
98234
"@mysticatea/vue/valid-v-for": "error",
99235
"@mysticatea/vue/valid-v-html": "error",
100236
"@mysticatea/vue/valid-v-if": "error",
237+
"@mysticatea/vue/valid-v-is": "error",
238+
"@mysticatea/vue/valid-v-memo": "error",
101239
"@mysticatea/vue/valid-v-model": "error",
102240
"@mysticatea/vue/valid-v-on": "error",
103241
"@mysticatea/vue/valid-v-once": "error",
104242
"@mysticatea/vue/valid-v-pre": "error",
105243
"@mysticatea/vue/valid-v-show": "error",
106244
"@mysticatea/vue/valid-v-slot": "error",
107245
"@mysticatea/vue/valid-v-text": "error",
108-
"@mysticatea/vue/attribute-hyphenation": "error",
109-
"@mysticatea/vue/html-end-tags": "error",
110-
"@mysticatea/vue/html-indent": ["error", 4],
111-
"@mysticatea/vue/html-self-closing": "error",
112-
"@mysticatea/vue/mustache-interpolation-spacing": "error",
113-
"@mysticatea/vue/name-property-casing": "error",
114-
"@mysticatea/vue/no-multi-spaces": "error",
115-
"@mysticatea/vue/require-default-prop": "error",
116-
"@mysticatea/vue/require-prop-types": "error",
117-
"@mysticatea/vue/v-bind-style": "error",
118-
"@mysticatea/vue/v-on-style": "error",
119-
"@mysticatea/vue/attributes-order": "error",
120-
"@mysticatea/vue/html-quotes": "error",
121-
"@mysticatea/vue/order-in-components": "error",
122-
"@mysticatea/vue/this-in-template": "error",
123-
"@mysticatea/vue/html-closing-bracket-newline": [
124-
"error",
125-
{
126-
singleline: "never",
127-
multiline: "always",
128-
},
129-
],
130-
"@mysticatea/vue/html-closing-bracket-spacing": "error",
131-
"@mysticatea/vue/prop-name-casing": "error",
132-
"@mysticatea/vue/component-name-in-template-casing": [
133-
"error",
134-
"kebab-case",
135-
],
136-
"@mysticatea/vue/multiline-html-element-content-newline":
137-
"error",
138-
"@mysticatea/vue/singleline-html-element-content-newline":
139-
"error",
140-
"@mysticatea/vue/no-spaces-around-equal-signs-in-attribute":
141-
"error",
142-
"@mysticatea/vue/no-template-shadow": "error",
143-
"@mysticatea/vue/no-unused-components": "error",
144-
"@mysticatea/vue/no-use-v-if-with-v-for": "error",
145-
"@mysticatea/vue/no-v-html": "error",
146-
"@mysticatea/vue/require-prop-type-constructor": "error",
147-
"@mysticatea/vue/use-v-on-exact": "error",
148246

149247
// Disabled rules (prefer prettier)
150248
"@mysticatea/vue/no-restricted-syntax": "off",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"eslint-plugin-eslint-plugin": "^2.3.0",
2020
"eslint-plugin-node": "^10.0.0",
2121
"eslint-plugin-prettier": "^3.4.1",
22-
"eslint-plugin-vue": "^6.2.2",
22+
"eslint-plugin-vue": "^7.20.0",
2323
"prettier": "^1.19.1",
2424
"vue-eslint-parser": "^7.11.0"
2525
},

0 commit comments

Comments
 (0)