@@ -32,18 +32,16 @@ module.exports = {
32
32
33
33
create ( context ) {
34
34
const sourceCode = context . getSourceCode ( ) ;
35
+ const { scopeManager } = sourceCode ;
36
+
35
37
let contextIdentifiers ;
36
38
37
- // ----------------------------------------------------------------------
38
- // Public
39
- // ----------------------------------------------------------------------
39
+ const ruleInfo = utils . getRuleInfo ( sourceCode ) ;
40
+ const messagesNode = utils . getMessagesNode ( ruleInfo , scopeManager ) ;
40
41
41
42
return {
42
43
Program ( ast ) {
43
- contextIdentifiers = utils . getContextIdentifiers (
44
- sourceCode . scopeManager ,
45
- ast
46
- ) ;
44
+ contextIdentifiers = utils . getContextIdentifiers ( scopeManager , ast ) ;
47
45
} ,
48
46
CallExpression ( node ) {
49
47
if (
@@ -57,38 +55,30 @@ module.exports = {
57
55
return ;
58
56
}
59
57
60
- const info = utils . getRuleInfo ( sourceCode ) ;
61
- const metaNode = info . meta ;
62
- const messagesNode =
63
- metaNode &&
64
- metaNode . properties &&
65
- metaNode . properties . find (
66
- ( p ) => p . type === 'Property' && utils . getKeyName ( p ) === 'messages'
67
- ) ;
68
-
69
58
const reportMessagesAndDataArray =
70
59
utils . collectReportViolationAndSuggestionData ( reportInfo ) ;
71
60
72
- // Check for any potential instances where we can use the messageId to fill in the message for convenience.
73
- reportMessagesAndDataArray . forEach ( ( obj ) => {
74
- if (
75
- ! obj . message &&
76
- obj . messageId &&
77
- obj . messageId . type === 'Literal'
78
- ) {
79
- const correspondingMessage =
80
- messagesNode &&
81
- messagesNode . value . properties &&
82
- messagesNode . value . properties . find (
83
- ( p ) =>
84
- p . type === 'Property' &&
85
- utils . getKeyName ( p ) === obj . messageId . value
61
+ if ( messagesNode ) {
62
+ // Check for any potential instances where we can use the messageId to fill in the message for convenience.
63
+ reportMessagesAndDataArray . forEach ( ( obj ) => {
64
+ if (
65
+ ! obj . message &&
66
+ obj . messageId &&
67
+ obj . messageId . type === 'Literal' &&
68
+ typeof obj . messageId . value === 'string'
69
+ ) {
70
+ const correspondingMessage = utils . getMessageIdNodeById (
71
+ obj . messageId . value ,
72
+ ruleInfo ,
73
+ scopeManager ,
74
+ context . getScope ( )
86
75
) ;
87
- if ( correspondingMessage ) {
88
- obj . message = correspondingMessage . value ;
76
+ if ( correspondingMessage ) {
77
+ obj . message = correspondingMessage . value ;
78
+ }
89
79
}
90
- }
91
- } ) ;
80
+ } ) ;
81
+ }
92
82
93
83
for ( const { message, data } of reportMessagesAndDataArray . filter (
94
84
( obj ) => obj . message
0 commit comments