@@ -175,36 +175,6 @@ module.exports = {
175
175
} ) ;
176
176
}
177
177
178
- /**
179
- * Extracts a DefaultProp from an ObjectExpression node.
180
- * @param {ASTNode } objectExpression ObjectExpression node.
181
- * @returns {Object|string } Object representation of a defaultProp, to be consumed by
182
- * `addDefaultPropsToComponent`, or string "unresolved", if the defaultProps
183
- * from this ObjectExpression can't be resolved.
184
- */
185
- function getDefaultPropsFromObjectExpression ( objectExpression ) {
186
- const hasSpread = objectExpression . properties . find ( property => property . type === 'ExperimentalSpreadProperty' || property . type === 'SpreadElement' ) ;
187
-
188
- if ( hasSpread ) {
189
- return 'unresolved' ;
190
- }
191
-
192
- return objectExpression . properties . map ( property => sourceCode . getText ( property . key ) . replace ( QUOTES_REGEX , '' ) ) ;
193
- }
194
-
195
- /**
196
- * Marks a component's DefaultProps declaration as "unresolved". A component's DefaultProps is
197
- * marked as "unresolved" if we cannot safely infer the values of its defaultProps declarations
198
- * without risking false negatives.
199
- * @param {Object } component The component to mark.
200
- * @returns {void }
201
- */
202
- function markDefaultPropsAsUnresolved ( component ) {
203
- components . set ( component . node , {
204
- defaultProps : 'unresolved'
205
- } ) ;
206
- }
207
-
208
178
/**
209
179
* Adds propTypes to the component passed in.
210
180
* @param {ASTNode } component The component to add the propTypes to.
@@ -219,35 +189,6 @@ module.exports = {
219
189
} ) ;
220
190
}
221
191
222
- /**
223
- * Adds defaultProps to the component passed in.
224
- * @param {ASTNode } component The component to add the defaultProps to.
225
- * @param {String[]|String } defaultProps defaultProps to add to the component or the string "unresolved"
226
- * if this component has defaultProps that can't be resolved.
227
- * @returns {void }
228
- */
229
- function addDefaultPropsToComponent ( component , defaultProps ) {
230
- // Early return if this component's defaultProps is already marked as "unresolved".
231
- if ( component . defaultProps === 'unresolved' ) {
232
- return ;
233
- }
234
-
235
- if ( defaultProps === 'unresolved' ) {
236
- markDefaultPropsAsUnresolved ( component ) ;
237
- return ;
238
- }
239
-
240
- const defaults = component . defaultProps || { } ;
241
-
242
- defaultProps . forEach ( defaultProp => {
243
- defaults [ defaultProp ] = true ;
244
- } ) ;
245
-
246
- components . set ( component . node , {
247
- defaultProps : defaults
248
- } ) ;
249
- }
250
-
251
192
/**
252
193
* Tries to find a props type annotation in a stateless component.
253
194
* @param {ASTNode } node The AST node to look for a props type annotation.
@@ -369,9 +310,8 @@ module.exports = {
369
310
return {
370
311
MemberExpression : function ( node ) {
371
312
const isPropType = propsUtil . isPropTypesDeclaration ( node ) ;
372
- const isDefaultProp = propsUtil . isDefaultPropsDeclaration ( node ) ;
373
313
374
- if ( ! isPropType && ! isDefaultProp ) {
314
+ if ( ! isPropType ) {
375
315
return ;
376
316
}
377
317
@@ -393,39 +333,21 @@ module.exports = {
393
333
if ( node . parent . type === 'AssignmentExpression' ) {
394
334
const expression = resolveNodeValue ( node . parent . right ) ;
395
335
if ( ! expression || expression . type !== 'ObjectExpression' ) {
396
- // If a value can't be found, we mark the defaultProps declaration as "unresolved", because
397
- // we should ignore this component and not report any errors for it, to avoid false-positives
398
- // with e.g. external defaultProps declarations.
399
- if ( isDefaultProp ) {
400
- markDefaultPropsAsUnresolved ( component ) ;
401
- }
402
-
403
336
return ;
404
337
}
405
338
406
- if ( isPropType ) {
407
- addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
408
- } else {
409
- addDefaultPropsToComponent ( component , getDefaultPropsFromObjectExpression ( expression ) ) ;
410
- }
411
-
339
+ addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
412
340
return ;
413
341
}
414
342
415
343
// e.g.:
416
344
// MyComponent.propTypes.baz = PropTypes.string;
417
345
if ( node . parent . type === 'MemberExpression' && node . parent . parent . type === 'AssignmentExpression' ) {
418
- if ( isPropType ) {
419
- addPropTypesToComponent ( component , [ {
420
- name : node . parent . property . name ,
421
- isRequired : propsUtil . isRequiredPropType ( node . parent . parent . right ) ,
422
- node : node . parent . parent
423
- } ] ) ;
424
- } else {
425
- addDefaultPropsToComponent ( component , [ node . parent . property . name ] ) ;
426
- }
427
-
428
- return ;
346
+ addPropTypesToComponent ( component , [ {
347
+ name : node . parent . property . name ,
348
+ isRequired : propsUtil . isRequiredPropType ( node . parent . parent . right ) ,
349
+ node : node . parent . parent
350
+ } ] ) ;
429
351
}
430
352
} ,
431
353
@@ -451,9 +373,8 @@ module.exports = {
451
373
}
452
374
453
375
const isPropType = propsUtil . isPropTypesDeclaration ( node ) ;
454
- const isDefaultProp = propsUtil . isDefaultPropsDeclaration ( node ) ;
455
376
456
- if ( ! isPropType && ! isDefaultProp ) {
377
+ if ( ! isPropType ) {
457
378
return ;
458
379
}
459
380
@@ -473,11 +394,7 @@ module.exports = {
473
394
return ;
474
395
}
475
396
476
- if ( isPropType ) {
477
- addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
478
- } else {
479
- addDefaultPropsToComponent ( component , getDefaultPropsFromObjectExpression ( expression ) ) ;
480
- }
397
+ addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
481
398
} ,
482
399
483
400
// e.g.:
@@ -507,9 +424,8 @@ module.exports = {
507
424
}
508
425
509
426
const isPropType = astUtil . getPropertyName ( node ) === 'propTypes' ;
510
- const isDefaultProp = astUtil . getPropertyName ( node ) === 'defaultProps' || astUtil . getPropertyName ( node ) === 'getDefaultProps' ;
511
427
512
- if ( ! isPropType && ! isDefaultProp ) {
428
+ if ( ! isPropType ) {
513
429
return ;
514
430
}
515
431
@@ -524,11 +440,7 @@ module.exports = {
524
440
return ;
525
441
}
526
442
527
- if ( isPropType ) {
528
- addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
529
- } else {
530
- addDefaultPropsToComponent ( component , getDefaultPropsFromObjectExpression ( expression ) ) ;
531
- }
443
+ addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( expression ) ) ;
532
444
} ,
533
445
534
446
// e.g.:
@@ -559,25 +471,11 @@ module.exports = {
559
471
}
560
472
561
473
const isPropType = propsUtil . isPropTypesDeclaration ( property ) ;
562
- const isDefaultProp = propsUtil . isDefaultPropsDeclaration ( property ) ;
563
-
564
- if ( ! isPropType && ! isDefaultProp ) {
565
- return ;
566
- }
567
474
568
475
if ( isPropType && property . value . type === 'ObjectExpression' ) {
569
476
addPropTypesToComponent ( component , getPropTypesFromObjectExpression ( property . value ) ) ;
570
477
return ;
571
478
}
572
-
573
- if ( isDefaultProp && property . value . type === 'FunctionExpression' ) {
574
- const returnStatement = utils . findReturnStatement ( property ) ;
575
- if ( ! returnStatement || returnStatement . argument . type !== 'ObjectExpression' ) {
576
- return ;
577
- }
578
-
579
- addDefaultPropsToComponent ( component , getDefaultPropsFromObjectExpression ( returnStatement . argument ) ) ;
580
- }
581
479
} ) ;
582
480
} ,
583
481
0 commit comments