@@ -85,7 +85,7 @@ const commonPropertiesSchema = {
85
85
* ----------------------------------------------------------------------
86
86
*
87
87
* @typedef ElementConfig
88
- * @property {boolean } isOverride
88
+ * @property {'element' | 'override' } type
89
89
* @property {boolean } noStrings
90
90
* @property {Set<string> } allowedStrings
91
91
* @property {boolean } ignoreProps
@@ -102,6 +102,8 @@ const commonPropertiesSchema = {
102
102
* @property {Record<string, OverrideConfig> } elementOverrides
103
103
*
104
104
* @typedef {ElementConfig & OverrideProperty } Config
105
+ *
106
+ * @typedef {Config | OverrideConfig } ResolvedConfig
105
107
*/
106
108
107
109
/**
@@ -113,7 +115,7 @@ const commonPropertiesSchema = {
113
115
function normalizeConfig ( config , handleElementOverrides = true ) {
114
116
/** @type {Config } */
115
117
const normalizedConfig = {
116
- isOverride : false ,
118
+ type : 'element' ,
117
119
noStrings : config . noStrings || false ,
118
120
allowedStrings : config . allowedStrings
119
121
? new Set ( map ( iterFrom ( config . allowedStrings ) , trimIfString ) )
@@ -133,8 +135,8 @@ function normalizeConfig(config, handleElementOverrides = true) {
133
135
acc . push ( [
134
136
key ,
135
137
Object . assign ( normalizeConfig ( value , false ) , {
138
+ type : 'override' ,
136
139
name : key ,
137
- isOverride : true ,
138
140
allowElement : value . allowElement || false ,
139
141
applyToNestedElements : value . applyToNestedElements !== undefined ? value . applyToNestedElements : true ,
140
142
} ) ,
@@ -335,7 +337,7 @@ module.exports = {
335
337
* Determines whether a given node's value and its immediate parent are
336
338
* viable text nodes that can/should be reported on
337
339
* @param {ASTNode } node
338
- * @param {Config | OverrideConfig } resolvedConfig
340
+ * @param {ResolvedConfig } resolvedConfig
339
341
* @returns {boolean }
340
342
*/
341
343
function isViableTextNode ( node , resolvedConfig ) {
@@ -395,41 +397,41 @@ module.exports = {
395
397
}
396
398
397
399
/**
398
- * @param {Config | ElementConfig } resolvedConfig
400
+ * @param {ResolvedConfig } resolvedConfig
399
401
* @returns {boolean }
400
402
*/
401
403
function shouldAllowElement ( resolvedConfig ) {
402
- return resolvedConfig . isOverride && ! ! resolvedConfig . allowElement ;
404
+ return resolvedConfig . type === 'override' && 'allowElement' in resolvedConfig && ! ! resolvedConfig . allowElement ;
403
405
}
404
406
405
407
/**
406
408
* @param {boolean } ancestorIsJSXElement
407
- * @param {Config | ElementConfig } resolvedConfig
409
+ * @param {ResolvedConfig } resolvedConfig
408
410
* @returns {string }
409
411
*/
410
412
function defaultMessageId ( ancestorIsJSXElement , resolvedConfig ) {
411
413
if ( resolvedConfig . noAttributeStrings && ! ancestorIsJSXElement ) {
412
- return resolvedConfig . isOverride ? 'noStringsInAttributesInElement' : 'noStringsInAttributes' ;
414
+ return resolvedConfig . type === 'override' ? 'noStringsInAttributesInElement' : 'noStringsInAttributes' ;
413
415
}
414
416
415
417
if ( resolvedConfig . noStrings ) {
416
- return resolvedConfig . isOverride ? 'noStringsInJSXInElement' : 'noStringsInJSX' ;
418
+ return resolvedConfig . type === 'override' ? 'noStringsInJSXInElement' : 'noStringsInJSX' ;
417
419
}
418
420
419
- return resolvedConfig . isOverride ? 'literalNotInJSXExpressionInElement' : 'literalNotInJSXExpression' ;
421
+ return resolvedConfig . type === 'override' ? 'literalNotInJSXExpressionInElement' : 'literalNotInJSXExpression' ;
420
422
}
421
423
422
424
/**
423
425
* @param {ASTNode } node
424
426
* @param {string } messageId
425
- * @param {Config | ElementConfig } resolvedConfig
427
+ * @param {ResolvedConfig } resolvedConfig
426
428
*/
427
429
function reportLiteralNode ( node , messageId , resolvedConfig ) {
428
430
report ( context , messages [ messageId ] , messageId , {
429
431
node,
430
432
data : {
431
433
text : getText ( context , node ) . trim ( ) ,
432
- element : resolvedConfig . isOverride ? resolvedConfig . name : undefined ,
434
+ element : resolvedConfig . type === 'override' && 'name' in resolvedConfig ? resolvedConfig . name : undefined ,
433
435
} ,
434
436
} ) ;
435
437
}
@@ -499,7 +501,7 @@ module.exports = {
499
501
&& ! resolvedConfig . ignoreProps
500
502
&& ! resolvedConfig . allowedStrings . has ( node . value . value )
501
503
) {
502
- const messageId = resolvedConfig . isOverride ? 'invalidPropValueInElement' : 'invalidPropValue' ;
504
+ const messageId = resolvedConfig . type === 'override' ? 'invalidPropValueInElement' : 'invalidPropValue' ;
503
505
reportLiteralNode ( node , messageId , resolvedConfig ) ;
504
506
}
505
507
}
0 commit comments