@@ -8,7 +8,10 @@ const COMPILER_MACROS = new Set([
8
8
'defineProps' ,
9
9
'defineEmits' ,
10
10
'defineExpose' ,
11
- 'withDefaults'
11
+ 'withDefaults' ,
12
+ 'defineModel' ,
13
+ 'defineOptions' ,
14
+ 'defineSlots'
12
15
] )
13
16
14
17
const VUE_MODULES = new Set ( [ '@vue/runtime-core' , '@vue/runtime-dom' , 'vue' ] )
@@ -39,7 +42,7 @@ module.exports = {
39
42
schema : [ ] ,
40
43
messages : {
41
44
noImportCompilerMacros :
42
- "'{{name}}' is a compiler macro and no longer needs to be imported from '{{source}}' ."
45
+ "'{{name}}' is a compiler macro and doesn't need to be imported."
43
46
}
44
47
} ,
45
48
/**
@@ -53,40 +56,41 @@ module.exports = {
53
56
ImportDeclaration ( node ) {
54
57
if ( node . specifiers . length === 0 ) return
55
58
56
- if ( VUE_MODULES . has ( node . source . value ) ) {
57
- for ( const specifier of node . specifiers ) {
58
- if (
59
- specifier . type === 'ImportSpecifier' &&
60
- COMPILER_MACROS . has ( specifier . imported . name )
61
- ) {
62
- context . report ( {
63
- node : specifier ,
64
- messageId : 'noImportCompilerMacros' ,
65
- data : {
66
- name : specifier . imported . name ,
67
- source : node . source . value
68
- } ,
69
- fix : ( fixer ) => {
70
- const tokenAfter = sourceCode . getTokenAfter ( specifier )
71
- const tokenBefore = sourceCode . getTokenBefore ( specifier )
59
+ if ( ! VUE_MODULES . has ( node . source . value ) ) return
72
60
73
- const hasCommaAfter = isComma ( tokenAfter )
74
- const isFirstSpecifier = isLeftCurlyBrace ( tokenBefore )
61
+ for ( const specifier of node . specifiers ) {
62
+ if (
63
+ specifier . type !== 'ImportSpecifier' ||
64
+ ! COMPILER_MACROS . has ( specifier . imported . name )
65
+ ) {
66
+ continue
67
+ }
68
+
69
+ context . report ( {
70
+ node : specifier ,
71
+ messageId : 'noImportCompilerMacros' ,
72
+ data : {
73
+ name : specifier . imported . name
74
+ } ,
75
+ fix : ( fixer ) => {
76
+ const tokenAfter = sourceCode . getTokenAfter ( specifier )
77
+ const tokenBefore = sourceCode . getTokenBefore ( specifier )
75
78
76
- const codeStart = hasCommaAfter
77
- ? tokenBefore . range [ 1 ]
78
- : isFirstSpecifier
79
- ? specifier . range [ 0 ]
80
- : tokenBefore . range [ 0 ]
81
- const codeEnd = hasCommaAfter
82
- ? tokenAfter . range [ 1 ]
83
- : specifier . range [ 1 ]
79
+ const hasCommaAfter = isComma ( tokenAfter )
80
+ const isFirstSpecifier = isLeftCurlyBrace ( tokenBefore )
84
81
85
- return fixer . removeRange ( [ codeStart , codeEnd ] )
86
- }
87
- } )
82
+ const codeStart = hasCommaAfter
83
+ ? tokenBefore . range [ 1 ]
84
+ : isFirstSpecifier
85
+ ? specifier . range [ 0 ]
86
+ : tokenBefore . range [ 0 ]
87
+ const codeEnd = hasCommaAfter
88
+ ? tokenAfter . range [ 1 ]
89
+ : specifier . range [ 1 ]
90
+
91
+ return fixer . removeRange ( [ codeStart , codeEnd ] )
88
92
}
89
- }
93
+ } )
90
94
}
91
95
}
92
96
}
0 commit comments