@samitouri / QOS-React / commits / a8d37a7aa0

Remove indirection in checking propTypes (#9358)

* Remove indirection in checking propTypes * Silence flow errors

Dan Abramov committed Apr 7, 2017 at 15:23 UTC a8d37a7aa0033d1af9eb886509a96f778881fe12
5 files changed +33 -37
src/isomorphic/classic/element/ReactElementValidator.js
+8 -3
@@ -21,13 +21,12 @@
21 var ReactCurrentOwner = require('ReactCurrentOwner');
22 var ReactElement = require('ReactElement');
23
24 -var checkReactTypeSpec = require('checkReactTypeSpec');
25 -
24 var canDefineProperty = require('canDefineProperty');
25 var getComponentName = require('getComponentName');
26 var getIteratorFn = require('getIteratorFn');
27
28 if (__DEV__) {
29 + var checkPropTypes = require('checkPropTypes');
30 var warning = require('fbjs/lib/warning');
31 var ReactDebugCurrentFrame = require('ReactDebugCurrentFrame');
32 var {
@@ -193,7 +192,13 @@ function validatePropTypes(element) {
192 : componentClass.propTypes;
193
194 if (propTypes) {
196 - checkReactTypeSpec(propTypes, element.props, 'prop', name);
195 + checkPropTypes(
196 + propTypes,
197 + element.props,
198 + 'prop',
199 + name,
200 + ReactDebugCurrentFrame.getStackAddendum,
201 + );
202 }
203 if (typeof componentClass.getDefaultProps === 'function') {
204 warning(
src/isomorphic/classic/types/__tests__/ReactPropTypes-test.js
+1 -3
@@ -13,7 +13,6 @@
13
14 var PropTypes;
15 var checkPropTypes;
16 -var checkReactTypeSpec;
16 var React;
17 var ReactDOM;
18
@@ -22,7 +21,6 @@ var MyComponent;
21
22 function resetWarningCache() {
23 jest.resetModules();
25 - checkReactTypeSpec = require('checkReactTypeSpec');
24 checkPropTypes = require('checkPropTypes');
25 }
26
@@ -33,7 +31,7 @@ function getPropTypeWarningMessage(propTypes, object, componentName) {
31 console.error.calls.reset();
32 }
33 resetWarningCache();
36 - checkReactTypeSpec(propTypes, object, 'prop', 'testComponent');
34 + checkPropTypes(propTypes, object, 'prop', 'testComponent');
35 const callCount = console.error.calls.count();
36 if (callCount > 1) {
37 throw new Error('Too many warnings.');
src/renderers/shared/fiber/ReactFiberContext.js
+17 -3
@@ -15,6 +15,7 @@
15 import type {Fiber} from 'ReactFiber';
16 import type {StackCursor} from 'ReactFiberStack';
17
18 +var React = require('react');
19 var emptyObject = require('fbjs/lib/emptyObject');
20 var getComponentName = require('getComponentName');
21 var invariant = require('fbjs/lib/invariant');
@@ -33,7 +34,6 @@ const {
34 } = require('ReactFiberStack');
35
36 if (__DEV__) {
36 - var checkReactTypeSpec = require('checkReactTypeSpec');
37 var ReactDebugCurrentFrame = require('react/lib/ReactDebugCurrentFrame');
38 var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber');
39 var {
@@ -105,7 +105,14 @@ exports.getMaskedContext = function(
105 if (__DEV__) {
106 const name = getComponentName(workInProgress) || 'Unknown';
107 ReactDebugCurrentFrame.current = workInProgress;
108 - checkReactTypeSpec(contextTypes, context, 'context', name);
108 + // $FlowFixMe - We know this export exists now, need to wait for Flow update
109 + React.checkPropTypes(
110 + contextTypes,
111 + context,
112 + 'context',
113 + name,
114 + ReactDebugCurrentFrame.getStackAddendum,
115 + );
116 ReactDebugCurrentFrame.current = null;
117 }
118
@@ -212,7 +219,14 @@ function processChildContext(
219 // TODO: remove this hack when we delete unstable_renderSubtree in Fiber.
220 const workInProgress = isReconciling ? fiber : null;
221 ReactDebugCurrentFrame.current = workInProgress;
215 - checkReactTypeSpec(childContextTypes, childContext, 'child context', name);
222 + // $FlowFixMe - We know this export exists now, need to wait for Flow update
223 + React.checkPropTypes(
224 + childContextTypes,
225 + childContext,
226 + 'child context',
227 + name,
228 + ReactDebugCurrentFrame.getStackAddendum,
229 + );
230 ReactDebugCurrentFrame.current = null;
231 }
232
src/renderers/shared/stack/reconciler/ReactCompositeComponent.js
+7 -2
@@ -23,7 +23,6 @@ var ReactNodeTypes = require('ReactNodeTypes');
23 var ReactReconciler = require('ReactReconciler');
24
25 if (__DEV__) {
26 - var checkReactTypeSpec = require('checkReactTypeSpec');
26 var ReactDebugCurrentFrame = require('react/lib/ReactDebugCurrentFrame');
27 var warningAboutMissingGetChildContext = {};
28 }
@@ -730,7 +729,13 @@ var ReactCompositeComponent = {
729 _checkContextTypes: function(typeSpecs, values, location: string) {
730 if (__DEV__) {
731 ReactDebugCurrentFrame.current = this._debugID;
733 - checkReactTypeSpec(typeSpecs, values, location, this.getName());
732 + React.checkPropTypes(
733 + typeSpecs,
734 + values,
735 + location,
736 + this.getName(),
737 + ReactDebugCurrentFrame.getStackAddendum,
738 + );
739 ReactDebugCurrentFrame.current = null;
740 }
741 },
src/shared/types/checkReactTypeSpec.js deleted
-26
@@ -1,26 +0,0 @@
1 -/**
2 - * Copyright 2013-present, Facebook, Inc.
3 - * All rights reserved.
4 - *
5 - * This source code is licensed under the BSD-style license found in the
6 - * LICENSE file in the root directory of this source tree. An additional grant
7 - * of patent rights can be found in the PATENTS file in the same directory.
8 - *
9 - * @providesModule checkReactTypeSpec
10 - */
11 -
12 -'use strict';
13 -
14 -var checkPropTypes = require('react/lib/checkPropTypes');
15 -var {getStackAddendum} = require('react/lib/ReactDebugCurrentFrame');
16 -
17 -function checkReactTypeSpec(
18 - typeSpecs,
19 - values,
20 - location: string,
21 - componentName,
22 -) {
23 - checkPropTypes(typeSpecs, values, location, componentName, getStackAddendum);
24 -}
25 -
26 -module.exports = checkReactTypeSpec;