eslint-plugin-mpx 0.0.21 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/lib/.DS_Store +0 -0
- package/lib/configs/base.js +10 -5
- package/lib/configs/mpx-essential.js +0 -30
- package/lib/index.js +1 -150
- package/lib/rules/comment-directive.js +2 -2
- package/lib/rules/component-tags-order.js +2 -2
- package/lib/rules/eqeqeq.js +4 -2
- package/lib/rules/html-end-tags.js +1 -1
- package/lib/rules/no-arrow-functions-in-watch.js +2 -2
- package/lib/rules/no-async-in-computed-properties.js +5 -5
- package/lib/rules/no-dupe-keys.js +3 -3
- package/lib/rules/no-dupe-wx-elif.js +8 -3
- package/lib/rules/no-duplicate-attributes.js +6 -16
- package/lib/rules/no-parsing-error.js +2 -2
- package/lib/rules/no-reserved-keys.js +3 -3
- package/lib/rules/no-side-effects-in-computed-properties.js +8 -9
- package/lib/rules/return-in-computed-property.js +3 -3
- package/lib/rules/syntaxes/dynamic-directive-arguments.js +2 -1
- package/lib/rules/syntaxes/scope-attribute.js +2 -1
- package/lib/rules/syntaxes/slot-attribute.js +2 -1
- package/lib/rules/syntaxes/v-bind-prop-modifier-shorthand.js +2 -1
- package/lib/rules/valid-wx-elif.js +1 -1
- package/lib/rules/valid-wx-else.js +1 -1
- package/lib/rules/valid-wx-for.js +2 -2
- package/lib/rules/valid-wx-if.js +1 -1
- package/lib/rules/valid-wx-model.js +2 -2
- package/lib/utils/index.js +504 -490
- package/lib/utils/keycode-to-key.js +60 -60
- package/lib/utils/{vue-reserved.json → mpx-reserved.json} +2 -2
- package/package.json +18 -15
- package/lib/configs/essential.js +0 -51
- package/lib/configs/no-layout-rules.js +0 -47
- package/lib/configs/recommended.js +0 -17
- package/lib/configs/strongly-recommended.js +0 -32
- package/lib/configs/vue3-essential.js +0 -71
- package/lib/configs/vue3-recommended.js +0 -17
- package/lib/configs/vue3-strongly-recommended.js +0 -33
- package/lib/rules/array-bracket-spacing.js +0 -12
- package/lib/rules/arrow-spacing.js +0 -9
- package/lib/rules/attribute-hyphenation.js +0 -121
- package/lib/rules/attributes-order.js +0 -281
- package/lib/rules/block-spacing.js +0 -11
- package/lib/rules/brace-style.js +0 -11
- package/lib/rules/camelcase.js +0 -9
- package/lib/rules/comma-dangle.js +0 -9
- package/lib/rules/comma-spacing.js +0 -12
- package/lib/rules/comma-style.js +0 -20
- package/lib/rules/component-definition-name-casing.js +0 -108
- package/lib/rules/component-name-in-template-casing.js +0 -164
- package/lib/rules/custom-event-name-casing.js +0 -214
- package/lib/rules/dot-location.js +0 -9
- package/lib/rules/dot-notation.js +0 -9
- package/lib/rules/func-call-spacing.js +0 -11
- package/lib/rules/html-closing-bracket-newline.js +0 -115
- package/lib/rules/html-closing-bracket-spacing.js +0 -137
- package/lib/rules/html-comment-content-newline.js +0 -215
- package/lib/rules/html-comment-content-spacing.js +0 -179
- package/lib/rules/html-comment-indent.js +0 -258
- package/lib/rules/html-indent.js +0 -81
- package/lib/rules/html-quotes.js +0 -107
- package/lib/rules/html-self-closing.js +0 -222
- package/lib/rules/jsx-uses-vars.js +0 -73
- package/lib/rules/key-spacing.js +0 -11
- package/lib/rules/keyword-spacing.js +0 -11
- package/lib/rules/match-component-file-name.js +0 -151
- package/lib/rules/max-attributes-per-line.js +0 -194
- package/lib/rules/max-len.js +0 -561
- package/lib/rules/multiline-html-element-content-newline.js +0 -246
- package/lib/rules/mustache-interpolation-spacing.js +0 -107
- package/lib/rules/name-property-casing.js +0 -71
- package/lib/rules/no-bare-strings-in-template.js +0 -275
- package/lib/rules/no-boolean-default.js +0 -114
- package/lib/rules/no-confusing-v-for-v-if.js +0 -69
- package/lib/rules/no-custom-modifiers-on-v-model.js +0 -59
- package/lib/rules/no-deprecated-data-object-declaration.js +0 -95
- package/lib/rules/no-deprecated-destroyed-lifecycle.js +0 -101
- package/lib/rules/no-deprecated-dollar-listeners-api.js +0 -72
- package/lib/rules/no-deprecated-dollar-scopedslots-api.js +0 -79
- package/lib/rules/no-deprecated-events-api.js +0 -69
- package/lib/rules/no-deprecated-filter.js +0 -44
- package/lib/rules/no-deprecated-functional-template.js +0 -56
- package/lib/rules/no-deprecated-html-element-is.js +0 -54
- package/lib/rules/no-deprecated-inline-template.js +0 -47
- package/lib/rules/no-deprecated-scope-attribute.js +0 -31
- package/lib/rules/no-deprecated-slot-attribute.js +0 -29
- package/lib/rules/no-deprecated-slot-scope-attribute.js +0 -34
- package/lib/rules/no-deprecated-v-bind-sync.js +0 -62
- package/lib/rules/no-deprecated-v-on-native-modifier.js +0 -50
- package/lib/rules/no-deprecated-v-on-number-modifiers.js +0 -61
- package/lib/rules/no-deprecated-vue-config-keycodes.js +0 -53
- package/lib/rules/no-duplicate-attr-inheritance.js +0 -67
- package/lib/rules/no-empty-component-block.js +0 -109
- package/lib/rules/no-empty-pattern.js +0 -9
- package/lib/rules/no-extra-parens.js +0 -182
- package/lib/rules/no-irregular-whitespace.js +0 -251
- package/lib/rules/no-lifecycle-after-await.js +0 -133
- package/lib/rules/no-lone-template.js +0 -129
- package/lib/rules/no-multi-spaces.js +0 -107
- package/lib/rules/no-multiple-objects-in-class.js +0 -59
- package/lib/rules/no-multiple-slot-args.js +0 -118
- package/lib/rules/no-multiple-template-root.js +0 -101
- package/lib/rules/no-mutating-props.js +0 -323
- package/lib/rules/no-potential-component-option-typo.js +0 -125
- package/lib/rules/no-ref-as-operand.js +0 -189
- package/lib/rules/no-reserved-component-names.js +0 -187
- package/lib/rules/no-restricted-component-options.js +0 -215
- package/lib/rules/no-restricted-static-attribute.js +0 -164
- package/lib/rules/no-restricted-syntax.js +0 -9
- package/lib/rules/no-restricted-v-bind.js +0 -184
- package/lib/rules/no-setup-props-destructure.js +0 -149
- package/lib/rules/no-spaces-around-equal-signs-in-attribute.js +0 -57
- package/lib/rules/no-sparse-arrays.js +0 -9
- package/lib/rules/no-static-inline-styles.js +0 -141
- package/lib/rules/no-template-key.js +0 -48
- package/lib/rules/no-template-shadow.js +0 -101
- package/lib/rules/no-template-target-blank.js +0 -138
- package/lib/rules/no-textarea-mustache.js +0 -46
- package/lib/rules/no-unregistered-components.js +0 -187
- package/lib/rules/no-unsupported-features.js +0 -157
- package/lib/rules/no-unused-components.js +0 -143
- package/lib/rules/no-unused-properties.js +0 -742
- package/lib/rules/no-unused-vars.js +0 -147
- package/lib/rules/no-use-v-if-with-v-for.js +0 -119
- package/lib/rules/no-useless-concat.js +0 -9
- package/lib/rules/no-useless-mustaches.js +0 -154
- package/lib/rules/no-useless-v-bind.js +0 -150
- package/lib/rules/no-v-html.js +0 -36
- package/lib/rules/no-v-model-argument.js +0 -49
- package/lib/rules/no-watch-after-await.js +0 -142
- package/lib/rules/object-curly-newline.js +0 -12
- package/lib/rules/object-curly-spacing.js +0 -12
- package/lib/rules/object-property-newline.js +0 -12
- package/lib/rules/one-component-per-file.js +0 -50
- package/lib/rules/operator-linebreak.js +0 -9
- package/lib/rules/order-in-components.js +0 -341
- package/lib/rules/padding-line-between-blocks.js +0 -220
- package/lib/rules/prefer-template.js +0 -9
- package/lib/rules/prop-name-casing.js +0 -66
- package/lib/rules/require-component-is.js +0 -45
- package/lib/rules/require-default-prop.js +0 -190
- package/lib/rules/require-direct-export.js +0 -128
- package/lib/rules/require-explicit-emits.js +0 -511
- package/lib/rules/require-name-property.js +0 -43
- package/lib/rules/require-prop-type-constructor.js +0 -99
- package/lib/rules/require-prop-types.js +0 -103
- package/lib/rules/require-render-return.js +0 -50
- package/lib/rules/require-slots-as-functions.js +0 -120
- package/lib/rules/require-toggle-inside-transition.js +0 -89
- package/lib/rules/require-v-for-key.js +0 -62
- package/lib/rules/require-valid-default-prop.js +0 -338
- package/lib/rules/return-in-emits-validator.js +0 -141
- package/lib/rules/script-indent.js +0 -56
- package/lib/rules/singleline-html-element-content-newline.js +0 -215
- package/lib/rules/sort-keys.js +0 -282
- package/lib/rules/space-in-parens.js +0 -12
- package/lib/rules/space-infix-ops.js +0 -11
- package/lib/rules/space-unary-ops.js +0 -11
- package/lib/rules/static-class-names-order.js +0 -61
- package/lib/rules/template-curly-spacing.js +0 -12
- package/lib/rules/this-in-template.js +0 -128
- package/lib/rules/use-v-on-exact.js +0 -228
- package/lib/rules/v-bind-style.js +0 -76
- package/lib/rules/v-for-delimiter-style.js +0 -69
- package/lib/rules/v-on-function-call.js +0 -172
- package/lib/rules/v-on-style.js +0 -58
- package/lib/rules/v-slot-style.js +0 -155
- package/lib/rules/valid-template-root.js +0 -69
- package/lib/rules/valid-v-bind-sync.js +0 -179
- package/lib/rules/valid-v-bind.js +0 -62
- package/lib/rules/valid-v-cloak.js +0 -58
- package/lib/rules/valid-v-html.js +0 -58
- package/lib/rules/valid-v-is.js +0 -95
- package/lib/rules/valid-v-on.js +0 -153
- package/lib/rules/valid-v-once.js +0 -58
- package/lib/rules/valid-v-pre.js +0 -58
- package/lib/rules/valid-v-show.js +0 -58
- package/lib/rules/valid-v-slot.js +0 -290
- package/lib/rules/valid-v-text.js +0 -58
- package/lib/utils/indent-common.js +0 -2085
package/README.md
CHANGED
package/lib/.DS_Store
ADDED
|
Binary file
|
package/lib/configs/base.js
CHANGED
|
@@ -10,21 +10,26 @@ module.exports = {
|
|
|
10
10
|
sourceType: 'module'
|
|
11
11
|
},
|
|
12
12
|
env: {
|
|
13
|
+
node: true,
|
|
13
14
|
browser: true,
|
|
14
15
|
es6: true
|
|
15
16
|
},
|
|
16
17
|
globals: {
|
|
17
18
|
wx: 'readonly',
|
|
19
|
+
my: 'readonly',
|
|
20
|
+
getCurrentPages: 'readonly',
|
|
18
21
|
getApp: 'readonly',
|
|
19
22
|
App: 'readonly',
|
|
23
|
+
Page: 'readonly',
|
|
24
|
+
Component: 'readonly',
|
|
25
|
+
Behavior: 'readonly',
|
|
26
|
+
requirePlugin: 'readonly',
|
|
27
|
+
requireMiniProgram: 'readonly',
|
|
20
28
|
__mpx_mode__: 'readonly',
|
|
21
|
-
__mpx_env__: 'readonly'
|
|
22
|
-
requirePlugin: 'readonly'
|
|
29
|
+
__mpx_env__: 'readonly'
|
|
23
30
|
},
|
|
24
31
|
plugins: ['mpx'],
|
|
25
32
|
rules: {
|
|
26
|
-
'mpx/comment-directive': 'error'
|
|
27
|
-
// 'mpx/jsx-uses-vars': 'error',
|
|
28
|
-
camelcase: ['error', { allow: ['__mpx_mode__', '__mpx_env__'] }]
|
|
33
|
+
'mpx/comment-directive': 'error'
|
|
29
34
|
}
|
|
30
35
|
}
|
|
@@ -6,37 +6,7 @@
|
|
|
6
6
|
module.exports = {
|
|
7
7
|
extends: require.resolve('./base'),
|
|
8
8
|
rules: {
|
|
9
|
-
// 'mpx/no-deprecated-html-element-is': 'error',
|
|
10
|
-
// 'mpx/no-multiple-template-root': 'error',
|
|
11
|
-
// 'mpx/attribute-hyphenation': 'error',
|
|
12
|
-
// 'mpx/html-closing-bracket-newline': 'error',
|
|
13
|
-
// 'mpx/html-closing-bracket-spacing': 'error',
|
|
14
9
|
'mpx/html-end-tags': 'error',
|
|
15
|
-
// 'mpx/html-indent': 'error',
|
|
16
|
-
// 'mpx/html-quotes': 'error',
|
|
17
|
-
// 'mpx/html-self-closing': 'error',
|
|
18
|
-
// 'mpx/max-attributes-per-line': 'error',
|
|
19
|
-
// 'mpx/multiline-html-element-content-newline': 'error',
|
|
20
|
-
// 'mpx/mustache-interpolation-spacing': 'error',
|
|
21
|
-
// 'mpx/no-multi-spaces': 'error',
|
|
22
|
-
// 'mpx/no-spaces-around-equal-signs-in-attribute': 'error',
|
|
23
|
-
// 'mpx/no-template-shadow': 'error',
|
|
24
|
-
// 'mpx/prop-name-casing': 'error',
|
|
25
|
-
// 'mpx/require-default-prop': 'error',
|
|
26
|
-
// 'mpx/require-prop-types': 'error',
|
|
27
|
-
// 'mpx/html-comment-content-newline': 'error',
|
|
28
|
-
// 'mpx/html-comment-content-spacing': 'error',
|
|
29
|
-
// 'mpx/html-comment-indent': 'error',
|
|
30
|
-
// 'mpx/no-empty-component-block': 'error',
|
|
31
|
-
// 'mpx/no-potential-component-option-typo': 'error',
|
|
32
|
-
// 'mpx/no-restricted-component-options': 'error',
|
|
33
|
-
// 'mpx/no-unused-properties': 'error',
|
|
34
|
-
// 'mpx/no-useless-mustaches': 'error',
|
|
35
|
-
// 'mpx/padding-line-between-blocks': 'error',
|
|
36
|
-
// 'mpx/script-indent': 'error',
|
|
37
|
-
// 'mpx/array-bracket-spacing': 'error',
|
|
38
|
-
// 'mpx/arrow-spacing': 'error',
|
|
39
|
-
// 'mpx/block-spacing': 'error',
|
|
40
10
|
'mpx/no-arrow-functions-in-watch': 'error',
|
|
41
11
|
'mpx/no-async-in-computed-properties': 'error',
|
|
42
12
|
'mpx/no-dupe-keys': 'error',
|
package/lib/index.js
CHANGED
|
@@ -7,175 +7,26 @@
|
|
|
7
7
|
|
|
8
8
|
module.exports = {
|
|
9
9
|
rules: {
|
|
10
|
-
'array-bracket-spacing': require('./rules/array-bracket-spacing'),
|
|
11
|
-
'arrow-spacing': require('./rules/arrow-spacing'),
|
|
12
|
-
'attribute-hyphenation': require('./rules/attribute-hyphenation'),
|
|
13
|
-
'attributes-order': require('./rules/attributes-order'),
|
|
14
|
-
'block-spacing': require('./rules/block-spacing'),
|
|
15
|
-
'brace-style': require('./rules/brace-style'),
|
|
16
|
-
camelcase: require('./rules/camelcase'),
|
|
17
|
-
'comma-dangle': require('./rules/comma-dangle'),
|
|
18
|
-
'comma-spacing': require('./rules/comma-spacing'),
|
|
19
|
-
'comma-style': require('./rules/comma-style'),
|
|
20
10
|
'comment-directive': require('./rules/comment-directive'),
|
|
21
|
-
'component-definition-name-casing': require('./rules/component-definition-name-casing'),
|
|
22
|
-
'component-name-in-template-casing': require('./rules/component-name-in-template-casing'),
|
|
23
11
|
'component-tags-order': require('./rules/component-tags-order'),
|
|
24
|
-
'custom-event-name-casing': require('./rules/custom-event-name-casing'),
|
|
25
|
-
'dot-location': require('./rules/dot-location'),
|
|
26
|
-
'dot-notation': require('./rules/dot-notation'),
|
|
27
|
-
eqeqeq: require('./rules/eqeqeq'),
|
|
28
|
-
'func-call-spacing': require('./rules/func-call-spacing'),
|
|
29
|
-
'html-closing-bracket-newline': require('./rules/html-closing-bracket-newline'),
|
|
30
|
-
'html-closing-bracket-spacing': require('./rules/html-closing-bracket-spacing'),
|
|
31
|
-
'html-comment-content-newline': require('./rules/html-comment-content-newline'),
|
|
32
|
-
'html-comment-content-spacing': require('./rules/html-comment-content-spacing'),
|
|
33
|
-
'html-comment-indent': require('./rules/html-comment-indent'),
|
|
34
12
|
'html-end-tags': require('./rules/html-end-tags'),
|
|
35
|
-
'html-indent': require('./rules/html-indent'),
|
|
36
|
-
'html-quotes': require('./rules/html-quotes'),
|
|
37
|
-
'html-self-closing': require('./rules/html-self-closing'),
|
|
38
|
-
'jsx-uses-vars': require('./rules/jsx-uses-vars'),
|
|
39
|
-
'key-spacing': require('./rules/key-spacing'),
|
|
40
|
-
'keyword-spacing': require('./rules/keyword-spacing'),
|
|
41
|
-
'match-component-file-name': require('./rules/match-component-file-name'),
|
|
42
|
-
'max-attributes-per-line': require('./rules/max-attributes-per-line'),
|
|
43
|
-
'max-len': require('./rules/max-len'),
|
|
44
|
-
'multiline-html-element-content-newline': require('./rules/multiline-html-element-content-newline'),
|
|
45
|
-
'mustache-interpolation-spacing': require('./rules/mustache-interpolation-spacing'),
|
|
46
|
-
'name-property-casing': require('./rules/name-property-casing'),
|
|
47
13
|
'no-arrow-functions-in-watch': require('./rules/no-arrow-functions-in-watch'),
|
|
48
14
|
'no-async-in-computed-properties': require('./rules/no-async-in-computed-properties'),
|
|
49
|
-
'no-bare-strings-in-template': require('./rules/no-bare-strings-in-template'),
|
|
50
|
-
'no-boolean-default': require('./rules/no-boolean-default'),
|
|
51
|
-
'no-confusing-v-for-v-if': require('./rules/no-confusing-v-for-v-if'),
|
|
52
|
-
'no-custom-modifiers-on-v-model': require('./rules/no-custom-modifiers-on-v-model'),
|
|
53
|
-
'no-deprecated-data-object-declaration': require('./rules/no-deprecated-data-object-declaration'),
|
|
54
|
-
'no-deprecated-destroyed-lifecycle': require('./rules/no-deprecated-destroyed-lifecycle'),
|
|
55
|
-
'no-deprecated-dollar-listeners-api': require('./rules/no-deprecated-dollar-listeners-api'),
|
|
56
|
-
'no-deprecated-dollar-scopedslots-api': require('./rules/no-deprecated-dollar-scopedslots-api'),
|
|
57
|
-
'no-deprecated-events-api': require('./rules/no-deprecated-events-api'),
|
|
58
|
-
'no-deprecated-filter': require('./rules/no-deprecated-filter'),
|
|
59
|
-
'no-deprecated-functional-template': require('./rules/no-deprecated-functional-template'),
|
|
60
|
-
'no-deprecated-html-element-is': require('./rules/no-deprecated-html-element-is'),
|
|
61
|
-
'no-deprecated-inline-template': require('./rules/no-deprecated-inline-template'),
|
|
62
|
-
'no-deprecated-scope-attribute': require('./rules/no-deprecated-scope-attribute'),
|
|
63
|
-
'no-deprecated-slot-attribute': require('./rules/no-deprecated-slot-attribute'),
|
|
64
|
-
'no-deprecated-slot-scope-attribute': require('./rules/no-deprecated-slot-scope-attribute'),
|
|
65
|
-
'no-deprecated-v-bind-sync': require('./rules/no-deprecated-v-bind-sync'),
|
|
66
|
-
'no-deprecated-v-on-native-modifier': require('./rules/no-deprecated-v-on-native-modifier'),
|
|
67
|
-
'no-deprecated-v-on-number-modifiers': require('./rules/no-deprecated-v-on-number-modifiers'),
|
|
68
|
-
'no-deprecated-vue-config-keycodes': require('./rules/no-deprecated-vue-config-keycodes'),
|
|
69
15
|
'no-dupe-keys': require('./rules/no-dupe-keys'),
|
|
70
16
|
'no-dupe-wx-elif': require('./rules/no-dupe-wx-elif'),
|
|
71
|
-
'no-duplicate-attr-inheritance': require('./rules/no-duplicate-attr-inheritance'),
|
|
72
17
|
'no-duplicate-attributes': require('./rules/no-duplicate-attributes'),
|
|
73
|
-
'no-empty-component-block': require('./rules/no-empty-component-block'),
|
|
74
|
-
'no-empty-pattern': require('./rules/no-empty-pattern'),
|
|
75
|
-
'no-extra-parens': require('./rules/no-extra-parens'),
|
|
76
|
-
'no-irregular-whitespace': require('./rules/no-irregular-whitespace'),
|
|
77
|
-
'no-lifecycle-after-await': require('./rules/no-lifecycle-after-await'),
|
|
78
|
-
'no-lone-template': require('./rules/no-lone-template'),
|
|
79
|
-
'no-multi-spaces': require('./rules/no-multi-spaces'),
|
|
80
|
-
'no-multiple-objects-in-class': require('./rules/no-multiple-objects-in-class'),
|
|
81
|
-
'no-multiple-slot-args': require('./rules/no-multiple-slot-args'),
|
|
82
|
-
'no-multiple-template-root': require('./rules/no-multiple-template-root'),
|
|
83
|
-
'no-mutating-props': require('./rules/no-mutating-props'),
|
|
84
18
|
'no-parsing-error': require('./rules/no-parsing-error'),
|
|
85
|
-
'no-potential-component-option-typo': require('./rules/no-potential-component-option-typo'),
|
|
86
|
-
'no-ref-as-operand': require('./rules/no-ref-as-operand'),
|
|
87
|
-
'no-reserved-component-names': require('./rules/no-reserved-component-names'),
|
|
88
19
|
'no-reserved-keys': require('./rules/no-reserved-keys'),
|
|
89
|
-
'no-restricted-component-options': require('./rules/no-restricted-component-options'),
|
|
90
|
-
'no-restricted-static-attribute': require('./rules/no-restricted-static-attribute'),
|
|
91
|
-
'no-restricted-syntax': require('./rules/no-restricted-syntax'),
|
|
92
|
-
'no-restricted-v-bind': require('./rules/no-restricted-v-bind'),
|
|
93
|
-
'no-setup-props-destructure': require('./rules/no-setup-props-destructure'),
|
|
94
20
|
'no-side-effects-in-computed-properties': require('./rules/no-side-effects-in-computed-properties'),
|
|
95
|
-
'no-spaces-around-equal-signs-in-attribute': require('./rules/no-spaces-around-equal-signs-in-attribute'),
|
|
96
|
-
'no-sparse-arrays': require('./rules/no-sparse-arrays'),
|
|
97
|
-
'no-static-inline-styles': require('./rules/no-static-inline-styles'),
|
|
98
|
-
'no-template-key': require('./rules/no-template-key'),
|
|
99
|
-
'no-template-shadow': require('./rules/no-template-shadow'),
|
|
100
|
-
'no-template-target-blank': require('./rules/no-template-target-blank'),
|
|
101
|
-
'no-textarea-mustache': require('./rules/no-textarea-mustache'),
|
|
102
|
-
'no-unregistered-components': require('./rules/no-unregistered-components'),
|
|
103
|
-
'no-unsupported-features': require('./rules/no-unsupported-features'),
|
|
104
|
-
'no-unused-components': require('./rules/no-unused-components'),
|
|
105
|
-
'no-unused-properties': require('./rules/no-unused-properties'),
|
|
106
|
-
'no-unused-vars': require('./rules/no-unused-vars'),
|
|
107
|
-
'no-use-v-if-with-v-for': require('./rules/no-use-v-if-with-v-for'),
|
|
108
|
-
'no-useless-concat': require('./rules/no-useless-concat'),
|
|
109
|
-
'no-useless-mustaches': require('./rules/no-useless-mustaches'),
|
|
110
|
-
'no-useless-v-bind': require('./rules/no-useless-v-bind'),
|
|
111
|
-
'no-v-html': require('./rules/no-v-html'),
|
|
112
|
-
'no-v-model-argument': require('./rules/no-v-model-argument'),
|
|
113
|
-
'no-watch-after-await': require('./rules/no-watch-after-await'),
|
|
114
|
-
'object-curly-newline': require('./rules/object-curly-newline'),
|
|
115
|
-
'object-curly-spacing': require('./rules/object-curly-spacing'),
|
|
116
|
-
'object-property-newline': require('./rules/object-property-newline'),
|
|
117
|
-
'one-component-per-file': require('./rules/one-component-per-file'),
|
|
118
|
-
'operator-linebreak': require('./rules/operator-linebreak'),
|
|
119
|
-
'order-in-components': require('./rules/order-in-components'),
|
|
120
|
-
'padding-line-between-blocks': require('./rules/padding-line-between-blocks'),
|
|
121
|
-
'prefer-template': require('./rules/prefer-template'),
|
|
122
|
-
'prop-name-casing': require('./rules/prop-name-casing'),
|
|
123
|
-
'require-component-is': require('./rules/require-component-is'),
|
|
124
|
-
'require-default-prop': require('./rules/require-default-prop'),
|
|
125
|
-
'require-direct-export': require('./rules/require-direct-export'),
|
|
126
|
-
'require-explicit-emits': require('./rules/require-explicit-emits'),
|
|
127
|
-
'require-name-property': require('./rules/require-name-property'),
|
|
128
|
-
'require-prop-type-constructor': require('./rules/require-prop-type-constructor'),
|
|
129
|
-
'require-prop-types': require('./rules/require-prop-types'),
|
|
130
|
-
'require-render-return': require('./rules/require-render-return'),
|
|
131
|
-
'require-slots-as-functions': require('./rules/require-slots-as-functions'),
|
|
132
|
-
'require-toggle-inside-transition': require('./rules/require-toggle-inside-transition'),
|
|
133
|
-
'require-v-for-key': require('./rules/require-v-for-key'),
|
|
134
|
-
'require-valid-default-prop': require('./rules/require-valid-default-prop'),
|
|
135
21
|
'return-in-computed-property': require('./rules/return-in-computed-property'),
|
|
136
|
-
'return-in-emits-validator': require('./rules/return-in-emits-validator'),
|
|
137
|
-
'script-indent': require('./rules/script-indent'),
|
|
138
|
-
'singleline-html-element-content-newline': require('./rules/singleline-html-element-content-newline'),
|
|
139
|
-
'sort-keys': require('./rules/sort-keys'),
|
|
140
|
-
'space-in-parens': require('./rules/space-in-parens'),
|
|
141
|
-
'space-infix-ops': require('./rules/space-infix-ops'),
|
|
142
|
-
'space-unary-ops': require('./rules/space-unary-ops'),
|
|
143
|
-
'static-class-names-order': require('./rules/static-class-names-order'),
|
|
144
|
-
'template-curly-spacing': require('./rules/template-curly-spacing'),
|
|
145
|
-
'this-in-template': require('./rules/this-in-template'),
|
|
146
|
-
'use-v-on-exact': require('./rules/use-v-on-exact'),
|
|
147
|
-
'v-bind-style': require('./rules/v-bind-style'),
|
|
148
|
-
'v-for-delimiter-style': require('./rules/v-for-delimiter-style'),
|
|
149
|
-
'v-on-function-call': require('./rules/v-on-function-call'),
|
|
150
|
-
'v-on-style': require('./rules/v-on-style'),
|
|
151
|
-
'v-slot-style': require('./rules/v-slot-style'),
|
|
152
|
-
'valid-template-root': require('./rules/valid-template-root'),
|
|
153
|
-
'valid-v-bind-sync': require('./rules/valid-v-bind-sync'),
|
|
154
|
-
'valid-v-bind': require('./rules/valid-v-bind'),
|
|
155
|
-
'valid-v-cloak': require('./rules/valid-v-cloak'),
|
|
156
22
|
'valid-wx-elif': require('./rules/valid-wx-elif'),
|
|
157
23
|
'valid-wx-else': require('./rules/valid-wx-else'),
|
|
158
|
-
'valid-wx-for': require('./rules/valid-wx-for'),
|
|
159
|
-
'valid-v-html': require('./rules/valid-v-html'),
|
|
160
24
|
'valid-wx-if': require('./rules/valid-wx-if'),
|
|
161
|
-
'valid-v-is': require('./rules/valid-v-is'),
|
|
162
25
|
'valid-wx-model': require('./rules/valid-wx-model'),
|
|
163
|
-
|
|
164
|
-
'valid-v-once': require('./rules/valid-v-once'),
|
|
165
|
-
'valid-v-pre': require('./rules/valid-v-pre'),
|
|
166
|
-
'valid-v-show': require('./rules/valid-v-show'),
|
|
167
|
-
'valid-v-slot': require('./rules/valid-v-slot'),
|
|
168
|
-
'valid-v-text': require('./rules/valid-v-text')
|
|
26
|
+
eqeqeq: require('./rules/eqeqeq')
|
|
169
27
|
},
|
|
170
28
|
configs: {
|
|
171
29
|
base: require('./configs/base'),
|
|
172
|
-
essential: require('./configs/essential'),
|
|
173
|
-
'no-layout-rules': require('./configs/no-layout-rules'),
|
|
174
|
-
recommended: require('./configs/recommended'),
|
|
175
|
-
'strongly-recommended': require('./configs/strongly-recommended'),
|
|
176
|
-
'vue3-essential': require('./configs/vue3-essential'),
|
|
177
|
-
'vue3-recommended': require('./configs/vue3-recommended'),
|
|
178
|
-
'vue3-strongly-recommended': require('./configs/vue3-strongly-recommended'),
|
|
179
30
|
'mpx-essential': require('./configs/mpx-essential')
|
|
180
31
|
},
|
|
181
32
|
processors: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author Toru Nagashima <https://github.com/mysticatea>
|
|
3
3
|
*/
|
|
4
|
-
/* eslint-disable eslint-plugin/report-message-format
|
|
4
|
+
/* eslint-disable eslint-plugin/report-message-format */
|
|
5
5
|
|
|
6
6
|
'use strict'
|
|
7
7
|
|
|
@@ -287,7 +287,7 @@ module.exports = {
|
|
|
287
287
|
docs: {
|
|
288
288
|
description: 'support comment-directives in `<template>`',
|
|
289
289
|
categories: ['base'],
|
|
290
|
-
url: 'https://
|
|
290
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/comment-directive.html'
|
|
291
291
|
},
|
|
292
292
|
schema: [
|
|
293
293
|
{
|
|
@@ -21,8 +21,8 @@ module.exports = {
|
|
|
21
21
|
type: 'suggestion',
|
|
22
22
|
docs: {
|
|
23
23
|
description: 'enforce order of component top-level elements',
|
|
24
|
-
categories: ['
|
|
25
|
-
url: 'https://
|
|
24
|
+
categories: ['recommended'],
|
|
25
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/component-tags-order.html'
|
|
26
26
|
},
|
|
27
27
|
fixable: null,
|
|
28
28
|
schema: [
|
package/lib/rules/eqeqeq.js
CHANGED
|
@@ -5,5 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
const { wrapCoreRule } = require('../utils')
|
|
7
7
|
|
|
8
|
-
// eslint-disable-next-line
|
|
9
|
-
module.exports = wrapCoreRule(
|
|
8
|
+
// eslint-disable-next-line
|
|
9
|
+
module.exports = wrapCoreRule('eqeqeq', {
|
|
10
|
+
applyDocument: true
|
|
11
|
+
})
|
|
@@ -21,7 +21,7 @@ module.exports = {
|
|
|
21
21
|
docs: {
|
|
22
22
|
description: 'enforce end tag style',
|
|
23
23
|
categories: ['mpx-essential'],
|
|
24
|
-
url: 'https://
|
|
24
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/html-end-tags.html'
|
|
25
25
|
},
|
|
26
26
|
fixable: 'code',
|
|
27
27
|
schema: []
|
|
@@ -11,14 +11,14 @@ module.exports = {
|
|
|
11
11
|
docs: {
|
|
12
12
|
description: 'disallow using arrow functions to define watcher',
|
|
13
13
|
categories: ['mpx-essential'],
|
|
14
|
-
url: 'https://
|
|
14
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-arrow-functions-in-watch.html'
|
|
15
15
|
},
|
|
16
16
|
fixable: null,
|
|
17
17
|
schema: []
|
|
18
18
|
},
|
|
19
19
|
/** @param {RuleContext} context */
|
|
20
20
|
create(context) {
|
|
21
|
-
return utils.
|
|
21
|
+
return utils.executeOnMpx(context, (obj) => {
|
|
22
22
|
const watchNode = utils.findProperty(obj, 'watch')
|
|
23
23
|
if (watchNode == null) {
|
|
24
24
|
return
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
const utils = require('../utils')
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @typedef {import('../utils').
|
|
10
|
+
* @typedef {import('../utils').MpxObjectData} MpxObjectData
|
|
11
11
|
* @typedef {import('../utils').ComponentComputedProperty} ComponentComputedProperty
|
|
12
12
|
*/
|
|
13
13
|
|
|
@@ -70,7 +70,7 @@ module.exports = {
|
|
|
70
70
|
docs: {
|
|
71
71
|
description: 'disallow asynchronous actions in computed properties',
|
|
72
72
|
categories: ['mpx-essential'],
|
|
73
|
-
url: 'https://
|
|
73
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-async-in-computed-properties.html'
|
|
74
74
|
},
|
|
75
75
|
fixable: null,
|
|
76
76
|
schema: []
|
|
@@ -97,7 +97,7 @@ module.exports = {
|
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
99
|
* @param {FunctionExpression | FunctionDeclaration | ArrowFunctionExpression} node
|
|
100
|
-
* @param {
|
|
100
|
+
* @param {MpxObjectData} data
|
|
101
101
|
*/
|
|
102
102
|
function onFunctionEnter(node, { node: vueNode }) {
|
|
103
103
|
if (node.async) {
|
|
@@ -140,8 +140,8 @@ module.exports = {
|
|
|
140
140
|
}
|
|
141
141
|
})
|
|
142
142
|
}
|
|
143
|
-
return utils.
|
|
144
|
-
|
|
143
|
+
return utils.defineMpxVisitor(context, {
|
|
144
|
+
onMpxObjectEnter(node) {
|
|
145
145
|
computedPropertiesMap.set(node, utils.getComputedProperties(node))
|
|
146
146
|
},
|
|
147
147
|
':function': onFunctionEnter,
|
|
@@ -14,7 +14,7 @@ const utils = require('../utils')
|
|
|
14
14
|
// Rule Definition
|
|
15
15
|
// ------------------------------------------------------------------------------
|
|
16
16
|
/** @type {GroupName[]} */
|
|
17
|
-
const GROUP_NAMES = ['properties', 'computed', 'data', 'methods']
|
|
17
|
+
const GROUP_NAMES = ['properties', 'computed', 'data', 'methods', 'setup']
|
|
18
18
|
|
|
19
19
|
module.exports = {
|
|
20
20
|
meta: {
|
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
|
22
22
|
docs: {
|
|
23
23
|
description: 'disallow duplication of field names',
|
|
24
24
|
categories: ['mpx-essential'],
|
|
25
|
-
url: 'https://
|
|
25
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-dupe-keys.html'
|
|
26
26
|
},
|
|
27
27
|
fixable: null, // or "code" or "whitespace"
|
|
28
28
|
schema: [
|
|
@@ -46,7 +46,7 @@ module.exports = {
|
|
|
46
46
|
// Public
|
|
47
47
|
// ----------------------------------------------------------------------
|
|
48
48
|
|
|
49
|
-
return utils.
|
|
49
|
+
return utils.executeOnMpx(context, (obj) => {
|
|
50
50
|
const usedNames = []
|
|
51
51
|
const properties = utils.iterateProperties(obj, groups)
|
|
52
52
|
|
|
@@ -84,7 +84,7 @@ module.exports = {
|
|
|
84
84
|
description:
|
|
85
85
|
'disallow duplicate conditions in `wx:if` / `wx:elif` chains',
|
|
86
86
|
categories: ['mpx-essential'],
|
|
87
|
-
url: 'https://
|
|
87
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-dupe-wx-elif.html'
|
|
88
88
|
},
|
|
89
89
|
fixable: null,
|
|
90
90
|
schema: [],
|
|
@@ -139,10 +139,15 @@ module.exports = {
|
|
|
139
139
|
operandsB.operands.some((operandB) => equal(operandA, operandB))
|
|
140
140
|
)
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
const sourceCode = context.getSourceCode()
|
|
143
143
|
return utils.defineTemplateBodyVisitor(context, {
|
|
144
144
|
"VAttribute[directive=true][key.name.name='elif']"(node) {
|
|
145
|
-
|
|
145
|
+
const text = sourceCode.getText(node).slice(-3)
|
|
146
|
+
if (
|
|
147
|
+
!node.value ||
|
|
148
|
+
!node.value.expression ||
|
|
149
|
+
!['}}"', "}}'"].includes(text)
|
|
150
|
+
) {
|
|
146
151
|
return
|
|
147
152
|
}
|
|
148
153
|
const test = node.value.expression
|
|
@@ -24,11 +24,12 @@ function getName(attribute) {
|
|
|
24
24
|
if (!attribute.directive) {
|
|
25
25
|
return attribute.key.name
|
|
26
26
|
}
|
|
27
|
-
if (attribute.key.name.name
|
|
27
|
+
if (attribute.key.name.name.startsWith('bind')) {
|
|
28
28
|
return (
|
|
29
29
|
(attribute.key.argument &&
|
|
30
30
|
attribute.key.argument.type === 'VIdentifier' &&
|
|
31
|
-
attribute.key.argument.name) ||
|
|
31
|
+
attribute.key.name.name + attribute.key.argument.name) ||
|
|
32
|
+
attribute.key.name.name ||
|
|
32
33
|
null
|
|
33
34
|
)
|
|
34
35
|
}
|
|
@@ -45,7 +46,7 @@ module.exports = {
|
|
|
45
46
|
docs: {
|
|
46
47
|
description: 'disallow duplication of attributes',
|
|
47
48
|
categories: ['mpx-essential'],
|
|
48
|
-
url: 'https://
|
|
49
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-duplicate-attributes.html'
|
|
49
50
|
},
|
|
50
51
|
fixable: null,
|
|
51
52
|
|
|
@@ -65,10 +66,6 @@ module.exports = {
|
|
|
65
66
|
},
|
|
66
67
|
/** @param {RuleContext} context */
|
|
67
68
|
create(context) {
|
|
68
|
-
const options = context.options[0] || {}
|
|
69
|
-
const allowCoexistStyle = options.allowCoexistStyle !== false
|
|
70
|
-
const allowCoexistClass = options.allowCoexistClass !== false
|
|
71
|
-
|
|
72
69
|
/** @type {Set<string>} */
|
|
73
70
|
const directiveNames = new Set()
|
|
74
71
|
/** @type {Set<string>} */
|
|
@@ -76,15 +73,8 @@ module.exports = {
|
|
|
76
73
|
|
|
77
74
|
/**
|
|
78
75
|
* @param {string} name
|
|
79
|
-
* @param {boolean} isDirective
|
|
80
76
|
*/
|
|
81
|
-
function isDuplicate(name
|
|
82
|
-
if (
|
|
83
|
-
(allowCoexistStyle && name === 'style') ||
|
|
84
|
-
(allowCoexistClass && name === 'class')
|
|
85
|
-
) {
|
|
86
|
-
return isDirective ? directiveNames.has(name) : attributeNames.has(name)
|
|
87
|
-
}
|
|
77
|
+
function isDuplicate(name) {
|
|
88
78
|
return directiveNames.has(name) || attributeNames.has(name)
|
|
89
79
|
}
|
|
90
80
|
|
|
@@ -99,7 +89,7 @@ module.exports = {
|
|
|
99
89
|
return
|
|
100
90
|
}
|
|
101
91
|
|
|
102
|
-
if (isDuplicate(name
|
|
92
|
+
if (isDuplicate(name)) {
|
|
103
93
|
context.report({
|
|
104
94
|
node,
|
|
105
95
|
loc: node.loc,
|
|
@@ -60,8 +60,8 @@ module.exports = {
|
|
|
60
60
|
type: 'problem',
|
|
61
61
|
docs: {
|
|
62
62
|
description: 'disallow parsing errors in `<template>`',
|
|
63
|
-
categories: ['
|
|
64
|
-
url: 'https://
|
|
63
|
+
categories: ['mpx-essential'],
|
|
64
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-parsing-error.html'
|
|
65
65
|
},
|
|
66
66
|
fixable: null,
|
|
67
67
|
schema: [
|
|
@@ -14,7 +14,7 @@ const utils = require('../utils')
|
|
|
14
14
|
// Rule Definition
|
|
15
15
|
// ------------------------------------------------------------------------------
|
|
16
16
|
|
|
17
|
-
const RESERVED_KEYS = require('../utils/
|
|
17
|
+
const RESERVED_KEYS = require('../utils/mpx-reserved.json')
|
|
18
18
|
/** @type {GroupName[]} */
|
|
19
19
|
const GROUP_NAMES = ['properties', 'computed', 'data', 'methods', 'setup']
|
|
20
20
|
|
|
@@ -24,7 +24,7 @@ module.exports = {
|
|
|
24
24
|
docs: {
|
|
25
25
|
description: 'disallow overwriting reserved keys',
|
|
26
26
|
categories: ['mpx-essential'],
|
|
27
|
-
url: 'https://
|
|
27
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-reserved-keys.html'
|
|
28
28
|
},
|
|
29
29
|
fixable: null,
|
|
30
30
|
schema: [
|
|
@@ -52,7 +52,7 @@ module.exports = {
|
|
|
52
52
|
// Public
|
|
53
53
|
// ----------------------------------------------------------------------
|
|
54
54
|
|
|
55
|
-
return utils.
|
|
55
|
+
return utils.executeOnMpx(context, (obj) => {
|
|
56
56
|
const properties = utils.iterateProperties(obj, groups)
|
|
57
57
|
for (const o of properties) {
|
|
58
58
|
if (o.groupName === 'data' && o.name[0] === '_') {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
const utils = require('../utils')
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @typedef {import('../utils').
|
|
10
|
+
* @typedef {import('../utils').MpxObjectData} MpxObjectData
|
|
11
11
|
* @typedef {import('../utils').ComponentComputedProperty} ComponentComputedProperty
|
|
12
12
|
*/
|
|
13
13
|
|
|
@@ -21,8 +21,7 @@ module.exports = {
|
|
|
21
21
|
docs: {
|
|
22
22
|
description: 'disallow side effects in computed properties',
|
|
23
23
|
categories: ['mpx-essential'],
|
|
24
|
-
url:
|
|
25
|
-
'https://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html'
|
|
24
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/no-side-effects-in-computed-properties.html'
|
|
26
25
|
},
|
|
27
26
|
fixable: null,
|
|
28
27
|
schema: []
|
|
@@ -54,8 +53,8 @@ module.exports = {
|
|
|
54
53
|
scopeStack = scopeStack && scopeStack.upper
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
return utils.
|
|
58
|
-
|
|
56
|
+
return utils.defineMpxVisitor(context, {
|
|
57
|
+
onMpxObjectEnter(node) {
|
|
59
58
|
computedPropertiesMap.set(node, utils.getComputedProperties(node))
|
|
60
59
|
},
|
|
61
60
|
':function': onFunctionEnter,
|
|
@@ -63,7 +62,7 @@ module.exports = {
|
|
|
63
62
|
|
|
64
63
|
/**
|
|
65
64
|
* @param {(Identifier | ThisExpression) & {parent: MemberExpression}} node
|
|
66
|
-
* @param {
|
|
65
|
+
* @param {MpxObjectData} data
|
|
67
66
|
*/
|
|
68
67
|
'MemberExpression > :matches(Identifier, ThisExpression)'(
|
|
69
68
|
node,
|
|
@@ -73,9 +72,9 @@ module.exports = {
|
|
|
73
72
|
return
|
|
74
73
|
}
|
|
75
74
|
const targetBody = scopeStack.body
|
|
76
|
-
const computedProperty = /** @type {ComponentComputedProperty[]} */ (
|
|
77
|
-
vueNode
|
|
78
|
-
)
|
|
75
|
+
const computedProperty = /** @type {ComponentComputedProperty[]} */ (
|
|
76
|
+
computedPropertiesMap.get(vueNode)
|
|
77
|
+
).find((cp) => {
|
|
79
78
|
return (
|
|
80
79
|
cp.value &&
|
|
81
80
|
node.loc.start.line >= cp.value.loc.start.line &&
|
|
@@ -21,7 +21,7 @@ module.exports = {
|
|
|
21
21
|
description:
|
|
22
22
|
'enforce that a return statement is present in computed property',
|
|
23
23
|
categories: ['mpx-essential'],
|
|
24
|
-
url: 'https://
|
|
24
|
+
url: 'https://mpx-ecology.github.io/eslint-plugin-mpx/rules/return-in-computed-property.html'
|
|
25
25
|
},
|
|
26
26
|
fixable: null, // or "code" or "whitespace"
|
|
27
27
|
schema: [
|
|
@@ -54,8 +54,8 @@ module.exports = {
|
|
|
54
54
|
|
|
55
55
|
return Object.assign(
|
|
56
56
|
{},
|
|
57
|
-
utils.
|
|
58
|
-
|
|
57
|
+
utils.defineMpxVisitor(context, {
|
|
58
|
+
onMpxObjectEnter(obj) {
|
|
59
59
|
for (const computedProperty of utils.getComputedProperties(obj)) {
|
|
60
60
|
computedProperties.add(computedProperty)
|
|
61
61
|
}
|
|
@@ -128,7 +128,8 @@ module.exports = {
|
|
|
128
128
|
|
|
129
129
|
return {
|
|
130
130
|
"VAttribute[directive=false][key.name='slot']": reportSlot,
|
|
131
|
-
"VAttribute[directive=true][key.name.name='bind'][key.argument.name='slot']":
|
|
131
|
+
"VAttribute[directive=true][key.name.name='bind'][key.argument.name='slot']":
|
|
132
|
+
reportVBindSlot
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
135
|
}
|
|
@@ -27,7 +27,8 @@ module.exports = {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
return {
|
|
30
|
-
"VAttribute[directive=true] > VDirectiveKey[name.name='bind'][name.rawName='.']":
|
|
30
|
+
"VAttribute[directive=true] > VDirectiveKey[name.name='bind'][name.rawName='.']":
|
|
31
|
+
reportPropModifierShorthand
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
}
|