13
13
14
14
var ReactElement = require ( 'ReactElement' ) ;
15
15
var ReactPropTypeLocationNames = require ( 'ReactPropTypeLocationNames' ) ;
16
- var ReactPropTypesSecret = require ( 'ReactPropTypesSecret' ) ;
17
16
18
17
var emptyFunction = require ( 'emptyFunction' ) ;
19
18
var getIteratorFn = require ( 'getIteratorFn' ) ;
19
+ var invariant = require ( 'invariant' ) ;
20
20
var warning = require ( 'warning' ) ;
21
21
22
22
/**
@@ -68,25 +68,57 @@ var warning = require('warning');
68
68
69
69
var ANONYMOUS = '<<anonymous>>' ;
70
70
71
- var ReactPropTypes = {
72
- array : createPrimitiveTypeChecker ( 'array' ) ,
73
- bool : createPrimitiveTypeChecker ( 'boolean' ) ,
74
- func : createPrimitiveTypeChecker ( 'function' ) ,
75
- number : createPrimitiveTypeChecker ( 'number' ) ,
76
- object : createPrimitiveTypeChecker ( 'object' ) ,
77
- string : createPrimitiveTypeChecker ( 'string' ) ,
78
- symbol : createPrimitiveTypeChecker ( 'symbol' ) ,
79
-
80
- any : createAnyTypeChecker ( ) ,
81
- arrayOf : createArrayOfTypeChecker ,
82
- element : createElementTypeChecker ( ) ,
83
- instanceOf : createInstanceTypeChecker ,
84
- node : createNodeChecker ( ) ,
85
- objectOf : createObjectOfTypeChecker ,
86
- oneOf : createEnumTypeChecker ,
87
- oneOfType : createUnionTypeChecker ,
88
- shape : createShapeTypeChecker ,
89
- } ;
71
+ if ( __DEV__ ) {
72
+ // Keep in sync with production version below
73
+ var ReactPropTypes = {
74
+ array : createPrimitiveTypeChecker ( 'array' ) ,
75
+ bool : createPrimitiveTypeChecker ( 'boolean' ) ,
76
+ func : createPrimitiveTypeChecker ( 'function' ) ,
77
+ number : createPrimitiveTypeChecker ( 'number' ) ,
78
+ object : createPrimitiveTypeChecker ( 'object' ) ,
79
+ string : createPrimitiveTypeChecker ( 'string' ) ,
80
+ symbol : createPrimitiveTypeChecker ( 'symbol' ) ,
81
+
82
+ any : createAnyTypeChecker ( ) ,
83
+ arrayOf : createArrayOfTypeChecker ,
84
+ element : createElementTypeChecker ( ) ,
85
+ instanceOf : createInstanceTypeChecker ,
86
+ node : createNodeChecker ( ) ,
87
+ objectOf : createObjectOfTypeChecker ,
88
+ oneOf : createEnumTypeChecker ,
89
+ oneOfType : createUnionTypeChecker ,
90
+ shape : createShapeTypeChecker ,
91
+ } ;
92
+ } else {
93
+ var productionTypeChecker = function ( ) {
94
+ invariant (
95
+ false ,
96
+ 'React.PropTypes type checking code is stripped in production.'
97
+ ) ;
98
+ } ;
99
+ productionTypeChecker . isRequired = productionTypeChecker ;
100
+ var getProductionTypeChecker = ( ) => productionTypeChecker ;
101
+ // Keep in sync with development version above
102
+ var ReactPropTypes = {
103
+ array : productionTypeChecker ,
104
+ bool : productionTypeChecker ,
105
+ func : productionTypeChecker ,
106
+ number : productionTypeChecker ,
107
+ object : productionTypeChecker ,
108
+ string : productionTypeChecker ,
109
+ symbol : productionTypeChecker ,
110
+
111
+ any : productionTypeChecker ,
112
+ arrayOf : getProductionTypeChecker ,
113
+ element : productionTypeChecker ,
114
+ instanceOf : getProductionTypeChecker ,
115
+ node : productionTypeChecker ,
116
+ objectOf : getProductionTypeChecker ,
117
+ oneOf : getProductionTypeChecker ,
118
+ oneOfType : getProductionTypeChecker ,
119
+ shape : getProductionTypeChecker ,
120
+ } ;
121
+ }
90
122
91
123
/**
92
124
* inlined Object.is polyfill to avoid requiring consumers ship their own
@@ -120,42 +152,16 @@ function PropTypeError(message) {
120
152
PropTypeError . prototype = Error . prototype ;
121
153
122
154
function createChainableTypeChecker ( validate ) {
123
- if ( __DEV__ ) {
124
- var manualPropTypeCallCache = { } ;
125
- }
126
155
function checkType (
127
156
isRequired ,
128
157
props ,
129
158
propName ,
130
159
componentName ,
131
160
location ,
132
- propFullName ,
133
- secret
161
+ propFullName
134
162
) {
135
163
componentName = componentName || ANONYMOUS ;
136
164
propFullName = propFullName || propName ;
137
- if ( __DEV__ ) {
138
- if (
139
- secret !== ReactPropTypesSecret &&
140
- typeof console !== 'undefined'
141
- ) {
142
- var cacheKey = `${ componentName } :${ propName } ` ;
143
- if ( ! manualPropTypeCallCache [ cacheKey ] ) {
144
- warning (
145
- false ,
146
- 'You are manually calling a React.PropTypes validation ' +
147
- 'function for the `%s` prop on `%s`. This is deprecated ' +
148
- 'and will not work in production with the next major version. ' +
149
- 'You may be seeing this warning due to a third-party PropTypes ' +
150
- 'library. See https://fb.me/react-warning-dont-call-proptypes ' +
151
- 'for details.' ,
152
- propFullName ,
153
- componentName
154
- ) ;
155
- manualPropTypeCallCache [ cacheKey ] = true ;
156
- }
157
- }
158
- }
159
165
if ( props [ propName ] == null ) {
160
166
var locationName = ReactPropTypeLocationNames [ location ] ;
161
167
if ( isRequired ) {
@@ -172,13 +178,7 @@ function createChainableTypeChecker(validate) {
172
178
}
173
179
return null ;
174
180
} else {
175
- return validate (
176
- props ,
177
- propName ,
178
- componentName ,
179
- location ,
180
- propFullName ,
181
- ) ;
181
+ return validate ( props , propName , componentName , location , propFullName ) ;
182
182
}
183
183
}
184
184
@@ -189,14 +189,7 @@ function createChainableTypeChecker(validate) {
189
189
}
190
190
191
191
function createPrimitiveTypeChecker ( expectedType ) {
192
- function validate (
193
- props ,
194
- propName ,
195
- componentName ,
196
- location ,
197
- propFullName ,
198
- secret
199
- ) {
192
+ function validate ( props , propName , componentName , location , propFullName ) {
200
193
var propValue = props [ propName ] ;
201
194
var propType = getPropType ( propValue ) ;
202
195
if ( propType !== expectedType ) {
@@ -243,8 +236,7 @@ function createArrayOfTypeChecker(typeChecker) {
243
236
i ,
244
237
componentName ,
245
238
location ,
246
- `${ propFullName } [${ i } ]` ,
247
- ReactPropTypesSecret
239
+ `${ propFullName } [${ i } ]`
248
240
) ;
249
241
if ( error instanceof Error ) {
250
242
return error ;
@@ -335,8 +327,7 @@ function createObjectOfTypeChecker(typeChecker) {
335
327
key ,
336
328
componentName ,
337
329
location ,
338
- `${ propFullName } .${ key } ` ,
339
- ReactPropTypesSecret
330
+ `${ propFullName } .${ key } `
340
331
) ;
341
332
if ( error instanceof Error ) {
342
333
return error ;
@@ -358,14 +349,7 @@ function createUnionTypeChecker(arrayOfTypeCheckers) {
358
349
for ( var i = 0 ; i < arrayOfTypeCheckers . length ; i ++ ) {
359
350
var checker = arrayOfTypeCheckers [ i ] ;
360
351
if (
361
- checker (
362
- props ,
363
- propName ,
364
- componentName ,
365
- location ,
366
- propFullName ,
367
- ReactPropTypesSecret
368
- ) == null
352
+ checker ( props , propName , componentName , location , propFullName ) == null
369
353
) {
370
354
return null ;
371
355
}
@@ -415,8 +399,7 @@ function createShapeTypeChecker(shapeTypes) {
415
399
key ,
416
400
componentName ,
417
401
location ,
418
- `${ propFullName } .${ key } ` ,
419
- ReactPropTypesSecret
402
+ `${ propFullName } .${ key } `
420
403
) ;
421
404
if ( error ) {
422
405
return error ;
0 commit comments