diff --git a/lib/configs/_override-vue.js b/lib/configs/_override-vue.js index 005f32e..a91fd80 100644 --- a/lib/configs/_override-vue.js +++ b/lib/configs/_override-vue.js @@ -15,9 +15,14 @@ module.exports = { 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": [ @@ -30,15 +35,41 @@ module.exports = { functions: "always", }, ], + "@mysticatea/vue/comma-spacing": "error", + "@mysticatea/vue/comma-style": "error", "@mysticatea/vue/comment-directive": "error", + "@mysticatea/vue/component-api-style": "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", @@ -54,41 +85,146 @@ module.exports = { }, ], "@mysticatea/vue/max-len": ["error", { tabWidth: 4 }], + "@mysticatea/vue/multiline-html-element-content-newline": + "error", + "@mysticatea/vue/multi-word-component-names": "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-computed-properties-in-data": "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-router-link-tag-prop": "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-multiple-objects-in-class": "error", + "@mysticatea/vue/no-multiple-slot-args": "error", + "@mysticatea/vue/no-multiple-template-root": "error", + "@mysticatea/vue/no-multi-spaces": "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-class": "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-undef-properties": "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-template-attributes": "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-v-text": "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", @@ -98,6 +234,8 @@ module.exports = { "@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", @@ -105,46 +243,6 @@ module.exports = { "@mysticatea/vue/valid-v-show": "error", "@mysticatea/vue/valid-v-slot": "error", "@mysticatea/vue/valid-v-text": "error", - "@mysticatea/vue/attribute-hyphenation": "error", - "@mysticatea/vue/html-end-tags": "error", - "@mysticatea/vue/html-indent": ["error", 4], - "@mysticatea/vue/html-self-closing": "error", - "@mysticatea/vue/mustache-interpolation-spacing": "error", - "@mysticatea/vue/name-property-casing": "error", - "@mysticatea/vue/no-multi-spaces": "error", - "@mysticatea/vue/require-default-prop": "error", - "@mysticatea/vue/require-prop-types": "error", - "@mysticatea/vue/v-bind-style": "error", - "@mysticatea/vue/v-on-style": "error", - "@mysticatea/vue/attributes-order": "error", - "@mysticatea/vue/html-quotes": "error", - "@mysticatea/vue/order-in-components": "error", - "@mysticatea/vue/this-in-template": "error", - "@mysticatea/vue/html-closing-bracket-newline": [ - "error", - { - singleline: "never", - multiline: "always", - }, - ], - "@mysticatea/vue/html-closing-bracket-spacing": "error", - "@mysticatea/vue/prop-name-casing": "error", - "@mysticatea/vue/component-name-in-template-casing": [ - "error", - "kebab-case", - ], - "@mysticatea/vue/multiline-html-element-content-newline": - "error", - "@mysticatea/vue/singleline-html-element-content-newline": - "error", - "@mysticatea/vue/no-spaces-around-equal-signs-in-attribute": - "error", - "@mysticatea/vue/no-template-shadow": "error", - "@mysticatea/vue/no-unused-components": "error", - "@mysticatea/vue/no-use-v-if-with-v-for": "error", - "@mysticatea/vue/no-v-html": "error", - "@mysticatea/vue/require-prop-type-constructor": "error", - "@mysticatea/vue/use-v-on-exact": "error", // Disabled rules (prefer prettier) "@mysticatea/vue/no-restricted-syntax": "off", diff --git a/package.json b/package.json index 99120dd..dafd8b2 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-plugin-eslint-plugin": "^2.3.0", "eslint-plugin-node": "^10.0.0", "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-vue": "^6.2.2", + "eslint-plugin-vue": "^7.20.0", "prettier": "^1.19.1", "vue-eslint-parser": "^7.11.0" },