Added deprecation warning for React.checkPropTypes and updated Rollup build scripts

This commit is contained in:
Brian Vaughn
2017-04-11 13:00:45 -07:00
parent d34109a2be
commit 488c8d2784
8 changed files with 108 additions and 70 deletions
+1
View File
@@ -46,6 +46,7 @@ src/isomorphic/__tests__/React-test.js
* should log a deprecation warning once when using React.createMixin * should log a deprecation warning once when using React.createMixin
* should warn once when attempting to access React.createClass * should warn once when attempting to access React.createClass
* should warn once when attempting to access React.PropTypes * should warn once when attempting to access React.PropTypes
* should warn once when attempting to access React.checkPropTypes
src/isomorphic/children/__tests__/ReactChildren-test.js src/isomorphic/children/__tests__/ReactChildren-test.js
* should support identity for simple * should support identity for simple
+16 -6
View File
@@ -79,7 +79,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/dom/ReactDOM.js', entry: 'src/renderers/dom/ReactDOM.js',
externals: ['prop-types'], externals: ['prop-types', 'prop-types/checkPropTypes'],
fbEntry: 'src/fb/ReactDOMFBEntry.js', fbEntry: 'src/fb/ReactDOMFBEntry.js',
hasteName: 'ReactDOMStack', hasteName: 'ReactDOMStack',
isRenderer: true, isRenderer: true,
@@ -91,6 +91,7 @@ const bundles = [
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM. 'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -107,7 +108,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/dom/fiber/ReactDOMFiber.js', entry: 'src/renderers/dom/fiber/ReactDOMFiber.js',
externals: ['prop-types'], externals: ['prop-types', 'prop-types/checkPropTypes'],
fbEntry: 'src/fb/ReactDOMFiberFBEntry.js', fbEntry: 'src/fb/ReactDOMFiberFBEntry.js',
hasteName: 'ReactDOMFiber', hasteName: 'ReactDOMFiber',
isRenderer: true, isRenderer: true,
@@ -119,6 +120,7 @@ const bundles = [
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM. 'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -138,7 +140,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/dom/ReactDOMServer.js', entry: 'src/renderers/dom/ReactDOMServer.js',
externals: ['prop-types'], externals: ['prop-types', 'prop-types/checkPropTypes'],
fbEntry: 'src/renderers/dom/ReactDOMServer.js', fbEntry: 'src/renderers/dom/ReactDOMServer.js',
hasteName: 'ReactDOMServerStack', hasteName: 'ReactDOMServerStack',
isRenderer: true, isRenderer: true,
@@ -149,6 +151,7 @@ const bundles = [
'src/renderers/dom/**/*.js', 'src/renderers/dom/**/*.js',
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -174,6 +177,7 @@ const bundles = [
'art/modes/current', 'art/modes/current',
'art/modes/fast-noSideEffects', 'art/modes/fast-noSideEffects',
'art/core/transform', 'art/core/transform',
'prop-types/checkPropTypes',
'react-dom', 'react-dom',
], ],
fbEntry: 'src/renderers/art/ReactARTStack.js', fbEntry: 'src/renderers/art/ReactARTStack.js',
@@ -186,6 +190,7 @@ const bundles = [
'src/renderers/art/**/*.js', 'src/renderers/art/**/*.js',
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -208,6 +213,7 @@ const bundles = [
'art/modes/current', 'art/modes/current',
'art/modes/fast-noSideEffects', 'art/modes/fast-noSideEffects',
'art/core/transform', 'art/core/transform',
'prop-types/checkPropTypes',
'react-dom', 'react-dom',
], ],
fbEntry: 'src/renderers/art/ReactARTFiber.js', fbEntry: 'src/renderers/art/ReactARTFiber.js',
@@ -220,6 +226,7 @@ const bundles = [
'src/renderers/art/**/*.js', 'src/renderers/art/**/*.js',
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -309,7 +316,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/testing/ReactTestRendererFiber', entry: 'src/renderers/testing/ReactTestRendererFiber',
externals: [], externals: ['prop-types/checkPropTypes'],
fbEntry: 'src/renderers/testing/ReactTestRendererFiber', fbEntry: 'src/renderers/testing/ReactTestRendererFiber',
hasteName: 'ReactTestRendererFiber', hasteName: 'ReactTestRendererFiber',
isRenderer: true, isRenderer: true,
@@ -321,6 +328,7 @@ const bundles = [
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/renderers/testing/**/*.js', 'src/renderers/testing/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -335,7 +343,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/testing/stack/ReactTestRendererStack', entry: 'src/renderers/testing/stack/ReactTestRendererStack',
externals: [], externals: ['prop-types/checkPropTypes'],
fbEntry: 'src/renderers/testing/stack/ReactTestRendererStack', fbEntry: 'src/renderers/testing/stack/ReactTestRendererStack',
hasteName: 'ReactTestRendererStack', hasteName: 'ReactTestRendererStack',
isRenderer: true, isRenderer: true,
@@ -347,6 +355,7 @@ const bundles = [
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/renderers/testing/**/*.js', 'src/renderers/testing/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
@@ -365,7 +374,7 @@ const bundles = [
sourceMap: false, sourceMap: false,
}, },
entry: 'src/renderers/noop/ReactNoop.js', entry: 'src/renderers/noop/ReactNoop.js',
externals: [], externals: ['prop-types/checkPropTypes'],
isRenderer: true, isRenderer: true,
label: 'noop-fiber', label: 'noop-fiber',
manglePropertiesOnProd: false, manglePropertiesOnProd: false,
@@ -374,6 +383,7 @@ const bundles = [
'src/renderers/noop/**/*.js', 'src/renderers/noop/**/*.js',
'src/renderers/shared/**/*.js', 'src/renderers/shared/**/*.js',
'src/isomorphic/classic/types/checkPropTypes.js',
'src/ReactVersion.js', 'src/ReactVersion.js',
'src/shared/**/*.js', 'src/shared/**/*.js',
], ],
+1 -1
View File
@@ -247,7 +247,7 @@ function replaceLegacyModuleAliases(bundleType) {
case UMD_DEV: case UMD_DEV:
case UMD_PROD: case UMD_PROD:
const modulesAlias = {}; const modulesAlias = {};
for (var legacyModule in legacyModules) { for (let legacyModule in legacyModules) {
modulesAlias[legacyModule] = resolve( modulesAlias[legacyModule] = resolve(
`./node_modules/${legacyModules[legacyModule]}` `./node_modules/${legacyModules[legacyModule]}`
); );
+57 -57
View File
@@ -2,116 +2,116 @@
"branch": "prop-types", "branch": "prop-types",
"bundleSizes": { "bundleSizes": {
"react.development.js (UMD_DEV)": { "react.development.js (UMD_DEV)": {
"size": 120916, "size": 121272,
"gzip": 30481 "gzip": 30505
}, },
"react.production.min.js (UMD_PROD)": { "react.production.min.js (UMD_PROD)": {
"size": 15685, "size": 15685,
"gzip": 5764 "gzip": 5765
}, },
"react-dom.development.js (UMD_DEV)": { "react-dom.development.js (UMD_DEV)": {
"size": 583318, "size": 583352,
"gzip": 134555 "gzip": 134572
}, },
"react-dom.production.min.js (UMD_PROD)": { "react-dom.production.min.js (UMD_PROD)": {
"size": 120740, "size": 120740,
"gzip": 38092 "gzip": 38092
}, },
"react-dom-server.development.js (UMD_DEV)": { "react-dom-server.development.js (UMD_DEV)": {
"size": 495519, "size": 495558,
"gzip": 119683 "gzip": 119685
}, },
"react-dom-server.production.min.js (UMD_PROD)": { "react-dom-server.production.min.js (UMD_PROD)": {
"size": 107033, "size": 107033,
"gzip": 33273 "gzip": 33273
}, },
"react-art.development.js (UMD_DEV)": { "react-art.development.js (UMD_DEV)": {
"size": 339929, "size": 342770,
"gzip": 76018 "gzip": 76828
}, },
"react-art.production.min.js (UMD_PROD)": { "react-art.production.min.js (UMD_PROD)": {
"size": 95013, "size": 95013,
"gzip": 28991 "gzip": 28990
}, },
"react.development.js (NODE_DEV)": { "react.development.js (NODE_DEV)": {
"size": 69612, "size": 69913,
"gzip": 17522 "gzip": 17542
}, },
"react.production.min.js (NODE_PROD)": { "react.production.min.js (NODE_PROD)": {
"size": 9226, "size": 9226,
"gzip": 3623 "gzip": 3626
}, },
"React-dev.js (FB_DEV)": { "React-dev.js (FB_DEV)": {
"size": 71469, "size": 71770,
"gzip": 18157 "gzip": 18179
}, },
"React-prod.js (FB_PROD)": { "React-prod.js (FB_PROD)": {
"size": 36701, "size": 36643,
"gzip": 9254 "gzip": 9256
}, },
"ReactDOMStack-dev.js (FB_DEV)": { "ReactDOMStack-dev.js (FB_DEV)": {
"size": 522667, "size": 522763,
"gzip": 124718 "gzip": 124727
}, },
"ReactDOMStack-prod.js (FB_PROD)": { "ReactDOMStack-prod.js (FB_PROD)": {
"size": 352737, "size": 352776,
"gzip": 84668 "gzip": 84675
}, },
"react-dom.development.js (NODE_DEV)": { "react-dom.development.js (NODE_DEV)": {
"size": 542259, "size": 542350,
"gzip": 125174 "gzip": 125199
}, },
"react-dom.production.min.js (NODE_PROD)": { "react-dom.production.min.js (NODE_PROD)": {
"size": 116884, "size": 116925,
"gzip": 36722 "gzip": 36732
}, },
"ReactDOMFiber-dev.js (FB_DEV)": { "ReactDOMFiber-dev.js (FB_DEV)": {
"size": 797309, "size": 797397,
"gzip": 184144 "gzip": 184161
}, },
"ReactDOMFiber-prod.js (FB_PROD)": { "ReactDOMFiber-prod.js (FB_PROD)": {
"size": 407569, "size": 407613,
"gzip": 93574 "gzip": 93586
}, },
"react-dom-server.development.js (NODE_DEV)": { "react-dom-server.development.js (NODE_DEV)": {
"size": 445493, "size": 445589,
"gzip": 107585 "gzip": 107597
}, },
"react-dom-server.production.min.js (NODE_PROD)": { "react-dom-server.production.min.js (NODE_PROD)": {
"size": 101370, "size": 101411,
"gzip": 31284 "gzip": 31292
}, },
"ReactDOMServerStack-dev.js (FB_DEV)": { "ReactDOMServerStack-dev.js (FB_DEV)": {
"size": 444185, "size": 444281,
"gzip": 107436 "gzip": 107443
}, },
"ReactDOMServerStack-prod.js (FB_PROD)": { "ReactDOMServerStack-prod.js (FB_PROD)": {
"size": 333773, "size": 334166,
"gzip": 80431 "gzip": 80444
}, },
"ReactARTStack-dev.js (FB_DEV)": { "ReactARTStack-dev.js (FB_DEV)": {
"size": 142890, "size": 142986,
"gzip": 32689 "gzip": 32714
}, },
"ReactARTStack-prod.js (FB_PROD)": { "ReactARTStack-prod.js (FB_PROD)": {
"size": 101099, "size": 101143,
"gzip": 22973 "gzip": 22993
}, },
"react-art.development.js (NODE_DEV)": { "react-art.development.js (NODE_DEV)": {
"size": 265123, "size": 265214,
"gzip": 56951 "gzip": 56974
}, },
"react-art.production.min.js (NODE_PROD)": { "react-art.production.min.js (NODE_PROD)": {
"size": 56591, "size": 56628,
"gzip": 17132 "gzip": 17152
}, },
"ReactARTFiber-dev.js (FB_DEV)": { "ReactARTFiber-dev.js (FB_DEV)": {
"size": 264301, "size": 264392,
"gzip": 56758 "gzip": 56780
}, },
"ReactARTFiber-prod.js (FB_PROD)": { "ReactARTFiber-prod.js (FB_PROD)": {
"size": 205292, "size": 205336,
"gzip": 43132 "gzip": 43154
}, },
"ReactNativeStack.js (RN)": { "ReactNativeStack.js (RN)": {
"size": 233993, "size": 233993,
@@ -122,20 +122,20 @@
"gzip": 84001 "gzip": 84001
}, },
"ReactTestRendererFiber-dev.js (FB_DEV)": { "ReactTestRendererFiber-dev.js (FB_DEV)": {
"size": 262210, "size": 262301,
"gzip": 55722 "gzip": 55747
}, },
"ReactTestRendererStack-dev.js (FB_DEV)": { "ReactTestRendererStack-dev.js (FB_DEV)": {
"size": 151425, "size": 151521,
"gzip": 34728 "gzip": 34765
}, },
"react-noop-renderer.development.js (NODE_DEV)": { "react-noop-renderer.development.js (NODE_DEV)": {
"size": 254207, "size": 254298,
"gzip": 53701 "gzip": 53728
}, },
"react-test-renderer.development.js (NODE_DEV)": { "react-test-renderer.development.js (NODE_DEV)": {
"size": 263041, "size": 263132,
"gzip": 55919 "gzip": 55938
} }
} }
} }
+16 -2
View File
@@ -57,12 +57,13 @@ var React = {
cloneElement: cloneElement, cloneElement: cloneElement,
isValidElement: ReactElement.isValidElement, isValidElement: ReactElement.isValidElement,
// TODO (bvaughn) Remove these getters in 16.0.0-alpha.10
PropTypes: ReactPropTypes,
checkPropTypes: checkPropTypes, checkPropTypes: checkPropTypes,
createClass: createReactClass,
// Classic // Classic
PropTypes: ReactPropTypes, // TODO (bvaughn) Remove this getter in 16.0.0-alpha.10
createClass: createReactClass, // TODO (bvaughn) Remove this getter in 16.0.0-alpha.10
createFactory: createFactory, createFactory: createFactory,
createMixin: createMixin, createMixin: createMixin,
@@ -84,6 +85,7 @@ if (__DEV__) {
ReactDebugCurrentFrame: require('ReactDebugCurrentFrame'), ReactDebugCurrentFrame: require('ReactDebugCurrentFrame'),
}); });
let warnedForCheckPropTypes = false;
let warnedForCreateMixin = false; let warnedForCreateMixin = false;
let warnedForCreateClass = false; let warnedForCreateClass = false;
let warnedForPropTypes = false; let warnedForPropTypes = false;
@@ -100,6 +102,18 @@ if (__DEV__) {
// TODO (bvaughn) Remove both of these deprecation warnings in 16.0.0-alpha.10 // TODO (bvaughn) Remove both of these deprecation warnings in 16.0.0-alpha.10
if (canDefineProperty) { if (canDefineProperty) {
Object.defineProperty(React, 'checkPropTypes', {
get() {
warning(
warnedForCheckPropTypes,
'checkPropTypes has moved out of the react package. ' +
'Use the prop-types package from npm instead.',
);
warnedForCheckPropTypes = true;
return ReactPropTypes;
},
});
Object.defineProperty(React, 'createClass', { Object.defineProperty(React, 'createClass', {
get: function() { get: function() {
warning( warning(
+12
View File
@@ -53,4 +53,16 @@ describe('React', () => {
'Use the prop-types package from npm instead.', 'Use the prop-types package from npm instead.',
); );
}); });
it('should warn once when attempting to access React.checkPropTypes', () => {
spyOn(console, 'error');
let checkPropTypes = React.checkPropTypes;
checkPropTypes = React.checkPropTypes;
expect(checkPropTypes).not.toBe(undefined);
expectDev(console.error.calls.count()).toBe(1);
expectDev(console.error.calls.argsFor(0)[0]).toContain(
'checkPropTypes has moved out of the react package. ' +
'Use the prop-types package from npm instead.',
);
});
}); });
@@ -15,7 +15,7 @@
import type {Fiber} from 'ReactFiber'; import type {Fiber} from 'ReactFiber';
import type {StackCursor} from 'ReactFiberStack'; import type {StackCursor} from 'ReactFiberStack';
var React = require('react'); var checkPropTypes = require('checkPropTypes');
var emptyObject = require('fbjs/lib/emptyObject'); var emptyObject = require('fbjs/lib/emptyObject');
var getComponentName = require('getComponentName'); var getComponentName = require('getComponentName');
var invariant = require('fbjs/lib/invariant'); var invariant = require('fbjs/lib/invariant');
@@ -106,7 +106,7 @@ exports.getMaskedContext = function(
const name = getComponentName(workInProgress) || 'Unknown'; const name = getComponentName(workInProgress) || 'Unknown';
ReactDebugCurrentFrame.current = workInProgress; ReactDebugCurrentFrame.current = workInProgress;
// $FlowFixMe - We know this export exists now, need to wait for Flow update // $FlowFixMe - We know this export exists now, need to wait for Flow update
React.checkPropTypes( checkPropTypes(
contextTypes, contextTypes,
context, context,
'context', 'context',
@@ -220,7 +220,7 @@ function processChildContext(
const workInProgress = isReconciling ? fiber : null; const workInProgress = isReconciling ? fiber : null;
ReactDebugCurrentFrame.current = workInProgress; ReactDebugCurrentFrame.current = workInProgress;
// $FlowFixMe - We know this export exists now, need to wait for Flow update // $FlowFixMe - We know this export exists now, need to wait for Flow update
React.checkPropTypes( checkPropTypes(
childContextTypes, childContextTypes,
childContext, childContext,
'child context', 'child context',
@@ -27,6 +27,7 @@ if (__DEV__) {
var warningAboutMissingGetChildContext = {}; var warningAboutMissingGetChildContext = {};
} }
var checkPropTypes = require('checkPropTypes');
var emptyObject = require('fbjs/lib/emptyObject'); var emptyObject = require('fbjs/lib/emptyObject');
var invariant = require('fbjs/lib/invariant'); var invariant = require('fbjs/lib/invariant');
var shallowEqual = require('fbjs/lib/shallowEqual'); var shallowEqual = require('fbjs/lib/shallowEqual');
@@ -729,7 +730,7 @@ var ReactCompositeComponent = {
_checkContextTypes: function(typeSpecs, values, location: string) { _checkContextTypes: function(typeSpecs, values, location: string) {
if (__DEV__) { if (__DEV__) {
ReactDebugCurrentFrame.current = this._debugID; ReactDebugCurrentFrame.current = this._debugID;
React.checkPropTypes( checkPropTypes(
typeSpecs, typeSpecs,
values, values,
location, location,