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