Skip to content

Commit 3437db4

Browse files
feat: update eslint-plugin-vue & vue-eslint-parser + update configs (#26)
BREAKING CHANGE: `es5`, `es2015`, `es2016`, `es2017`, `es2018`, `es2019`, `es2020`, `es2021` & `es2022` configs now have extra rules from `eslint-plugin-vue`
1 parent ba982b6 commit 3437db4

File tree

2 files changed

+34
-11
lines changed

2 files changed

+34
-11
lines changed

lib/configs/_override-vue.js

+32-9
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,22 @@ module.exports = {
4848
"error",
4949
"@eslint-community/mysticatea/vue/component-name-in-template-casing":
5050
["error", "kebab-case"],
51+
"@eslint-community/mysticatea/vue/component-options-name-casing":
52+
"error",
5153
"@eslint-community/mysticatea/vue/component-tags-order":
5254
"error",
5355
"@eslint-community/mysticatea/vue/custom-event-name-casing":
5456
"error",
57+
"@eslint-community/mysticatea/vue/define-macros-order": "error",
5558
"@eslint-community/mysticatea/vue/dot-location": "error",
5659
"@eslint-community/mysticatea/vue/dot-notation": "error",
5760
"@eslint-community/mysticatea/vue/eqeqeq": [
5861
"error",
5962
"always",
6063
{ null: "ignore" },
6164
],
65+
"@eslint-community/mysticatea/vue/first-attribute-linebreak":
66+
"error",
6267
"@eslint-community/mysticatea/vue/func-call-spacing": "error",
6368
"@eslint-community/mysticatea/vue/html-button-has-type":
6469
"error",
@@ -80,15 +85,11 @@ module.exports = {
8085
"@eslint-community/mysticatea/vue/keyword-spacing": "error",
8186
"@eslint-community/mysticatea/vue/match-component-file-name":
8287
"error",
88+
"@eslint-community/mysticatea/vue/match-component-import-name":
89+
"error",
8390
"@eslint-community/mysticatea/vue/max-attributes-per-line": [
8491
"error",
85-
{
86-
singleline: 3,
87-
multiline: {
88-
max: 1,
89-
allowFirstLine: false,
90-
},
91-
},
92+
{ multiline: 1, singleline: 3 },
9293
],
9394
"@eslint-community/mysticatea/vue/max-len": [
9495
"error",
@@ -110,6 +111,7 @@ module.exports = {
110111
"@eslint-community/mysticatea/vue/no-bare-strings-in-template":
111112
"error",
112113
"@eslint-community/mysticatea/vue/no-boolean-default": "error",
114+
"@eslint-community/mysticatea/vue/no-child-content": "error",
113115
"@eslint-community/mysticatea/vue/no-computed-properties-in-data":
114116
"error",
115117
"@eslint-community/mysticatea/vue/no-constant-condition":
@@ -164,6 +166,8 @@ module.exports = {
164166
"@eslint-community/mysticatea/vue/no-empty-pattern": "error",
165167
"@eslint-community/mysticatea/vue/no-export-in-script-setup":
166168
"error",
169+
"@eslint-community/mysticatea/vue/no-expose-after-await":
170+
"error",
167171
"@eslint-community/mysticatea/vue/no-extra-parens": "error",
168172
"@eslint-community/mysticatea/vue/no-invalid-model-keys":
169173
"error",
@@ -172,6 +176,7 @@ module.exports = {
172176
"@eslint-community/mysticatea/vue/no-lifecycle-after-await":
173177
"error",
174178
"@eslint-community/mysticatea/vue/no-lone-template": "error",
179+
"@eslint-community/mysticatea/vue/no-loss-of-precision": "off", // requires ESLint v7.1
175180
"@eslint-community/mysticatea/vue/no-multiple-objects-in-class":
176181
"error",
177182
"@eslint-community/mysticatea/vue/no-multiple-slot-args":
@@ -187,6 +192,7 @@ module.exports = {
187192
"@eslint-community/mysticatea/vue/no-reserved-component-names":
188193
"error",
189194
"@eslint-community/mysticatea/vue/no-reserved-keys": "error",
195+
"@eslint-community/mysticatea/vue/no-reserved-props": "error",
190196
"@eslint-community/mysticatea/vue/no-restricted-block": "error",
191197
"@eslint-community/mysticatea/vue/no-restricted-call-after-await":
192198
"error",
@@ -195,6 +201,8 @@ module.exports = {
195201
"error",
196202
"@eslint-community/mysticatea/vue/no-restricted-custom-event":
197203
"error",
204+
"@eslint-community/mysticatea/vue/no-restricted-html-elements":
205+
"error",
198206
"@eslint-community/mysticatea/vue/no-restricted-props": "error",
199207
"@eslint-community/mysticatea/vue/no-restricted-static-attribute":
200208
"error",
@@ -219,9 +227,8 @@ module.exports = {
219227
"error",
220228
"@eslint-community/mysticatea/vue/no-this-in-before-route-enter":
221229
"error",
230+
"@eslint-community/mysticatea/vue/no-undef-components": "error",
222231
"@eslint-community/mysticatea/vue/no-undef-properties": "error",
223-
"@eslint-community/mysticatea/vue/no-unregistered-components":
224-
"error",
225232
"@eslint-community/mysticatea/vue/no-unsupported-features":
226233
"error",
227234
"@eslint-community/mysticatea/vue/no-unused-components":
@@ -247,6 +254,8 @@ module.exports = {
247254
"@eslint-community/mysticatea/vue/no-v-html": "error",
248255
"@eslint-community/mysticatea/vue/no-v-model-argument": "error",
249256
"@eslint-community/mysticatea/vue/no-v-text": "error",
257+
"@eslint-community/mysticatea/vue/no-v-text-v-html-on-component":
258+
"error",
250259
"@eslint-community/mysticatea/vue/no-watch-after-await":
251260
"error",
252261
"@eslint-community/mysticatea/vue/object-curly-newline":
@@ -257,13 +266,26 @@ module.exports = {
257266
],
258267
"@eslint-community/mysticatea/vue/object-property-newline":
259268
"error",
269+
"@eslint-community/mysticatea/vue/object-shorthand": [
270+
"error",
271+
"always",
272+
{ avoidExplicitReturnArrows: true },
273+
],
260274
"@eslint-community/mysticatea/vue/one-component-per-file":
261275
"error",
262276
"@eslint-community/mysticatea/vue/operator-linebreak": "error",
263277
"@eslint-community/mysticatea/vue/order-in-components": "error",
264278
"@eslint-community/mysticatea/vue/padding-line-between-blocks":
265279
"error",
280+
"@eslint-community/mysticatea/vue/prefer-import-from-vue":
281+
"error",
282+
"@eslint-community/mysticatea/vue/prefer-prop-type-boolean-first":
283+
"error",
284+
"@eslint-community/mysticatea/vue/prefer-separate-static-class":
285+
"error",
266286
"@eslint-community/mysticatea/vue/prefer-template": "error",
287+
"@eslint-community/mysticatea/vue/prefer-true-attribute-shorthand":
288+
"error",
267289
"@eslint-community/mysticatea/vue/prop-name-casing": "error",
268290
"@eslint-community/mysticatea/vue/require-component-is":
269291
"error",
@@ -340,6 +362,7 @@ module.exports = {
340362

341363
// Disabled rules (prefer prettier)
342364
"@eslint-community/mysticatea/vue/no-restricted-syntax": "off",
365+
"@eslint-community/mysticatea/vue/quote-props": "off",
343366
"@eslint-community/mysticatea/vue/script-indent": "off",
344367
},
345368
},

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
"eslint-plugin-eslint-plugin": "^4.4.1",
2020
"eslint-plugin-node": "^11.1.0",
2121
"eslint-plugin-prettier": "^3.4.1",
22-
"eslint-plugin-vue": "^7.20.0",
22+
"eslint-plugin-vue": "^8.7.1",
2323
"prettier": "^2.7.1",
24-
"vue-eslint-parser": "^7.11.0"
24+
"vue-eslint-parser": "^8.3.0"
2525
},
2626
"devDependencies": {
2727
"@eslint-community/eslint-plugin-mysticatea": "file:.",

0 commit comments

Comments
 (0)