@@ -36,20 +36,39 @@ module.exports = {
36
36
// ----------------------------------------------------------------------
37
37
38
38
function convertName ( node ) {
39
- const value = casing . getConverter ( caseType ) ( node . value )
40
- if ( value !== node . value ) {
39
+ let nodeValue
40
+ let range
41
+ if ( node . type === 'TemplateLiteral' ) {
42
+ const quasis = node . quasis [ 0 ]
43
+ nodeValue = quasis . value . cooked
44
+ range = quasis . range
45
+ } else {
46
+ nodeValue = node . value
47
+ range = node . range
48
+ }
49
+
50
+ const value = casing . getConverter ( caseType ) ( nodeValue )
51
+ if ( value !== nodeValue ) {
41
52
context . report ( {
42
53
node : node ,
43
54
message : 'Property name "{{value}}" is not {{caseType}}.' ,
44
55
data : {
45
- value : node . value ,
56
+ value : nodeValue ,
46
57
caseType : caseType
47
58
} ,
48
- fix : fixer => fixer . replaceText ( node , node . raw . replace ( node . value , value ) )
59
+ fix : fixer => fixer . replaceTextRange ( [ range [ 0 ] + 1 , range [ 1 ] - 1 ] , value )
49
60
} )
50
61
}
51
62
}
52
63
64
+ function canConvert ( node ) {
65
+ return node . type === 'Literal' || (
66
+ node . type === 'TemplateLiteral' &&
67
+ node . expressions . length === 0 &&
68
+ node . quasis . length === 1
69
+ )
70
+ }
71
+
53
72
return Object . assign ( { } ,
54
73
{
55
74
"CallExpression > MemberExpression > Identifier[name='component']" ( node ) {
@@ -59,7 +78,7 @@ module.exports = {
59
78
if ( calleeObject . type === 'Identifier' && calleeObject . name === 'Vue' ) {
60
79
if ( parent . arguments && parent . arguments . length === 2 ) {
61
80
const argument = parent . arguments [ 0 ]
62
- if ( argument . type === 'Literal' ) {
81
+ if ( canConvert ( argument ) ) {
63
82
convertName ( argument )
64
83
}
65
84
}
@@ -71,7 +90,7 @@ module.exports = {
71
90
. find ( item => (
72
91
item . type === 'Property' &&
73
92
item . key . name === 'name' &&
74
- item . value . type === 'Literal'
93
+ canConvert ( item . value )
75
94
) )
76
95
77
96
if ( ! node ) return
0 commit comments