(typeChecker)
| 516 | } |
| 517 | |
| 518 | function createObjectOfTypeChecker(typeChecker) { |
| 519 | function validate(props, propName, componentName, location, propFullName) { |
| 520 | if (typeof typeChecker !== 'function') { |
| 521 | return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); |
| 522 | } |
| 523 | var propValue = props[propName]; |
| 524 | var propType = getPropType(propValue); |
| 525 | if (propType !== 'object') { |
| 526 | return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); |
| 527 | } |
| 528 | for (var key in propValue) { |
| 529 | if (has(propValue, key)) { |
| 530 | var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); |
| 531 | if (error instanceof Error) { |
| 532 | return error; |
| 533 | } |
| 534 | } |
| 535 | } |
| 536 | return null; |
| 537 | } |
| 538 | return createChainableTypeChecker(validate); |
| 539 | } |
| 540 | |
| 541 | function createUnionTypeChecker(arrayOfTypeCheckers) { |
| 542 | if (!Array.isArray(arrayOfTypeCheckers)) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…