mirror of
https://github.com/facebook/react.git
synced 2026-02-24 04:33:04 +00:00
createClass + PropTypes + checkPropTypes warnings (#9399)
(Temporarily) re-adds getters with deprecation warnings for React.PropTypes, React.checkPropTypes, and React.createClass. *08bd020: Replace all references to React.PropTypes with prop-types to avoid triggering our own warning message. *ef5b5c6: Removed several references to React.createClass that appeared after rebasing this branch. (reviewed by @flarnie) *524ce20: Added getters for createClass and PropTypes to the main React isomorphic object, behind one-time warning messages. (reviewed by @spicyj) *db48f54: Fixed Rollup bundles to inline 'prop-types' and 'create-react-class' for UMD builds only. (reviewed by @spicyj, @trueadm ) *cf49cfd: Updated tests-passing.txt to remove tests that were deleted in this branch. *d34109a: Responses to PR feedback from @spicyj. (Added package.json dependencies to packages/react and packages/react-dom. Renamed a var. Expanded on an inline comment.) *488c8d2: Added warning for moved package to React.checkPropTypes accessor too and updated build script. *83bcb29: Wordsmithing for deprecation notices (added fb.me links). *afdc9d2: Tweaked legacy module inlining to remove order-of-deps constraint *d1348b9: Removed $FlowFixMe. *7dbc3e7: More wordsmithing of deprecation notices based on Dan's feedback.
This commit is contained in:
@@ -45,6 +45,8 @@ scripts/shared/__tests__/evalToString-test.js
|
||||
src/isomorphic/__tests__/React-test.js
|
||||
* 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.PropTypes
|
||||
* should warn once when attempting to access React.checkPropTypes
|
||||
|
||||
src/isomorphic/children/__tests__/ReactChildren-test.js
|
||||
* should support identity for simple
|
||||
@@ -278,19 +280,6 @@ src/isomorphic/classic/types/__tests__/ReactPropTypes-test.js
|
||||
* should have received the validator's return value
|
||||
* should not warn if the validator returned null
|
||||
|
||||
src/isomorphic/classic/types/__tests__/ReactPropTypesProduction-test.js
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should be a no-op
|
||||
* should not have been called
|
||||
|
||||
src/isomorphic/modern/class/__tests__/ReactClassEquivalence-test.js
|
||||
* tests the same thing for es6 classes and CoffeeScript
|
||||
* tests the same thing for es6 classes and TypeScript
|
||||
|
||||
@@ -23,7 +23,7 @@ function compile(content, contentFilename) {
|
||||
getSourceFile(filename, languageVersion) {
|
||||
var source;
|
||||
var jestRegex = /jest\.d\.ts/;
|
||||
var reactRegex = /(?:React|ReactDOM)(?:\.d)?\.ts$/;
|
||||
var reactRegex = /(?:React|ReactDOM|PropTypes)(?:\.d)?\.ts$/;
|
||||
|
||||
// `path.normalize` is used to turn forward slashes in
|
||||
// the file path into backslashes on Windows.
|
||||
|
||||
@@ -45,7 +45,12 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/isomorphic/React.js',
|
||||
externals: [],
|
||||
externals: [
|
||||
'create-react-class/factory',
|
||||
'prop-types',
|
||||
'prop-types/checkPropTypes',
|
||||
'prop-types/factory',
|
||||
],
|
||||
fbEntry: 'src/fb/ReactFBEntry.js',
|
||||
hasteName: 'React',
|
||||
isRenderer: false,
|
||||
@@ -74,7 +79,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/dom/ReactDOM.js',
|
||||
externals: [],
|
||||
externals: ['prop-types', 'prop-types/checkPropTypes'],
|
||||
fbEntry: 'src/fb/ReactDOMFBEntry.js',
|
||||
hasteName: 'ReactDOMStack',
|
||||
isRenderer: true,
|
||||
@@ -86,6 +91,7 @@ const bundles = [
|
||||
'src/renderers/shared/**/*.js',
|
||||
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -102,7 +108,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/dom/fiber/ReactDOMFiber.js',
|
||||
externals: [],
|
||||
externals: ['prop-types', 'prop-types/checkPropTypes'],
|
||||
fbEntry: 'src/fb/ReactDOMFiberFBEntry.js',
|
||||
hasteName: 'ReactDOMFiber',
|
||||
isRenderer: true,
|
||||
@@ -114,6 +120,7 @@ const bundles = [
|
||||
'src/renderers/shared/**/*.js',
|
||||
'src/test/**/*.js', // ReactTestUtils is currently very coupled to DOM.
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -133,7 +140,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/dom/ReactDOMServer.js',
|
||||
externals: [],
|
||||
externals: ['prop-types', 'prop-types/checkPropTypes'],
|
||||
fbEntry: 'src/renderers/dom/ReactDOMServer.js',
|
||||
hasteName: 'ReactDOMServerStack',
|
||||
isRenderer: true,
|
||||
@@ -144,6 +151,7 @@ const bundles = [
|
||||
'src/renderers/dom/**/*.js',
|
||||
'src/renderers/shared/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -169,6 +177,7 @@ const bundles = [
|
||||
'art/modes/current',
|
||||
'art/modes/fast-noSideEffects',
|
||||
'art/core/transform',
|
||||
'prop-types/checkPropTypes',
|
||||
'react-dom',
|
||||
],
|
||||
fbEntry: 'src/renderers/art/ReactARTStack.js',
|
||||
@@ -181,6 +190,7 @@ const bundles = [
|
||||
'src/renderers/art/**/*.js',
|
||||
'src/renderers/shared/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -203,6 +213,7 @@ const bundles = [
|
||||
'art/modes/current',
|
||||
'art/modes/fast-noSideEffects',
|
||||
'art/core/transform',
|
||||
'prop-types/checkPropTypes',
|
||||
'react-dom',
|
||||
],
|
||||
fbEntry: 'src/renderers/art/ReactARTFiber.js',
|
||||
@@ -215,6 +226,7 @@ const bundles = [
|
||||
'src/renderers/art/**/*.js',
|
||||
'src/renderers/shared/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -304,7 +316,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/testing/ReactTestRendererFiber',
|
||||
externals: [],
|
||||
externals: ['prop-types/checkPropTypes'],
|
||||
fbEntry: 'src/renderers/testing/ReactTestRendererFiber',
|
||||
hasteName: 'ReactTestRendererFiber',
|
||||
isRenderer: true,
|
||||
@@ -316,6 +328,7 @@ const bundles = [
|
||||
'src/renderers/shared/**/*.js',
|
||||
'src/renderers/testing/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -330,7 +343,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/testing/stack/ReactTestRendererStack',
|
||||
externals: [],
|
||||
externals: ['prop-types/checkPropTypes'],
|
||||
fbEntry: 'src/renderers/testing/stack/ReactTestRendererStack',
|
||||
hasteName: 'ReactTestRendererStack',
|
||||
isRenderer: true,
|
||||
@@ -342,6 +355,7 @@ const bundles = [
|
||||
'src/renderers/shared/**/*.js',
|
||||
'src/renderers/testing/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
@@ -360,7 +374,7 @@ const bundles = [
|
||||
sourceMap: false,
|
||||
},
|
||||
entry: 'src/renderers/noop/ReactNoop.js',
|
||||
externals: [],
|
||||
externals: ['prop-types/checkPropTypes'],
|
||||
isRenderer: true,
|
||||
label: 'noop-fiber',
|
||||
manglePropertiesOnProd: false,
|
||||
@@ -369,6 +383,7 @@ const bundles = [
|
||||
'src/renderers/noop/**/*.js',
|
||||
'src/renderers/shared/**/*.js',
|
||||
|
||||
'src/isomorphic/classic/types/checkPropTypes.js',
|
||||
'src/ReactVersion.js',
|
||||
'src/shared/**/*.js',
|
||||
],
|
||||
|
||||
@@ -52,6 +52,14 @@ const devOnlyFilesToStubOut = [
|
||||
"'ReactTestUtils'",
|
||||
];
|
||||
|
||||
const legacyModules = [
|
||||
'create-react-class',
|
||||
'create-react-class/factory',
|
||||
'prop-types',
|
||||
'prop-types/checkPropTypes',
|
||||
'prop-types/factory',
|
||||
];
|
||||
|
||||
// this function builds up a very niave Haste-like moduleMap
|
||||
// that works to create up an alias map for modules to link
|
||||
// up to their actual disk location so Rollup can properly
|
||||
@@ -230,6 +238,29 @@ function replaceDevOnlyStubbedModules(bundleType) {
|
||||
}
|
||||
}
|
||||
|
||||
function replaceLegacyModuleAliases(bundleType) {
|
||||
switch (bundleType) {
|
||||
case UMD_DEV:
|
||||
case UMD_PROD:
|
||||
const modulesAlias = {};
|
||||
legacyModules.forEach(legacyModule => {
|
||||
const modulePath = legacyModule.includes('/')
|
||||
? legacyModule
|
||||
: `${legacyModule}/index`;
|
||||
const resolvedPath = resolve(`./node_modules/${modulePath}`);
|
||||
modulesAlias[`'${legacyModule}'`] = `'${resolvedPath}'`;
|
||||
});
|
||||
return modulesAlias;
|
||||
case NODE_DEV:
|
||||
case NODE_PROD:
|
||||
case FB_DEV:
|
||||
case FB_PROD:
|
||||
case RN_DEV:
|
||||
case RN_PROD:
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
function getAliases(paths, bundleType, isRenderer, extractErrors) {
|
||||
return Object.assign(
|
||||
createModuleMap(
|
||||
@@ -247,7 +278,8 @@ function getDefaultReplaceModules(bundleType) {
|
||||
return Object.assign(
|
||||
{},
|
||||
replaceFbjsModuleAliases(bundleType),
|
||||
replaceDevOnlyStubbedModules(bundleType)
|
||||
replaceDevOnlyStubbedModules(bundleType),
|
||||
replaceLegacyModuleAliases(bundleType)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,117 +1,117 @@
|
||||
{
|
||||
"branch": "bundle-fixes",
|
||||
"branch": "prop-types",
|
||||
"bundleSizes": {
|
||||
"react.development.js (UMD_DEV)": {
|
||||
"size": 116098,
|
||||
"gzip": 29520
|
||||
"size": 121474,
|
||||
"gzip": 30524
|
||||
},
|
||||
"react.production.min.js (UMD_PROD)": {
|
||||
"size": 13707,
|
||||
"gzip": 5073
|
||||
"size": 15685,
|
||||
"gzip": 5765
|
||||
},
|
||||
"react-dom.development.js (UMD_DEV)": {
|
||||
"size": 563844,
|
||||
"gzip": 130190
|
||||
"size": 583352,
|
||||
"gzip": 134572
|
||||
},
|
||||
"react-dom.production.min.js (UMD_PROD)": {
|
||||
"size": 120191,
|
||||
"gzip": 37860
|
||||
"size": 120740,
|
||||
"gzip": 38092
|
||||
},
|
||||
"react-dom-server.development.js (UMD_DEV)": {
|
||||
"size": 476049,
|
||||
"gzip": 115267
|
||||
"size": 495558,
|
||||
"gzip": 119685
|
||||
},
|
||||
"react-dom-server.production.min.js (UMD_PROD)": {
|
||||
"size": 106489,
|
||||
"gzip": 33035
|
||||
"size": 107033,
|
||||
"gzip": 33273
|
||||
},
|
||||
"react-art.development.js (UMD_DEV)": {
|
||||
"size": 339929,
|
||||
"gzip": 76018
|
||||
"size": 342770,
|
||||
"gzip": 76828
|
||||
},
|
||||
"react-art.production.min.js (UMD_PROD)": {
|
||||
"size": 95013,
|
||||
"gzip": 28991
|
||||
"gzip": 28990
|
||||
},
|
||||
"react.development.js (NODE_DEV)": {
|
||||
"size": 109110,
|
||||
"gzip": 27479
|
||||
"size": 70286,
|
||||
"gzip": 17600
|
||||
},
|
||||
"react.production.min.js (NODE_PROD)": {
|
||||
"size": 12598,
|
||||
"gzip": 4649
|
||||
"size": 9226,
|
||||
"gzip": 3626
|
||||
},
|
||||
"React-dev.js (FB_DEV)": {
|
||||
"size": 110875,
|
||||
"gzip": 28140
|
||||
"size": 72143,
|
||||
"gzip": 18236
|
||||
},
|
||||
"React-prod.js (FB_PROD)": {
|
||||
"size": 56406,
|
||||
"gzip": 14416
|
||||
"size": 36643,
|
||||
"gzip": 9256
|
||||
},
|
||||
"ReactDOMStack-dev.js (FB_DEV)": {
|
||||
"size": 522626,
|
||||
"gzip": 124708
|
||||
"size": 522763,
|
||||
"gzip": 124727
|
||||
},
|
||||
"ReactDOMStack-prod.js (FB_PROD)": {
|
||||
"size": 352708,
|
||||
"gzip": 84660
|
||||
"size": 352776,
|
||||
"gzip": 84675
|
||||
},
|
||||
"react-dom.development.js (NODE_DEV)": {
|
||||
"size": 542218,
|
||||
"gzip": 125162
|
||||
"size": 542350,
|
||||
"gzip": 125199
|
||||
},
|
||||
"react-dom.production.min.js (NODE_PROD)": {
|
||||
"size": 116858,
|
||||
"gzip": 36717
|
||||
"size": 116925,
|
||||
"gzip": 36732
|
||||
},
|
||||
"ReactDOMFiber-dev.js (FB_DEV)": {
|
||||
"size": 797268,
|
||||
"gzip": 184134
|
||||
"size": 797397,
|
||||
"gzip": 184161
|
||||
},
|
||||
"ReactDOMFiber-prod.js (FB_PROD)": {
|
||||
"size": 407540,
|
||||
"gzip": 93567
|
||||
"size": 407613,
|
||||
"gzip": 93586
|
||||
},
|
||||
"react-dom-server.development.js (NODE_DEV)": {
|
||||
"size": 445452,
|
||||
"gzip": 107574
|
||||
"size": 445589,
|
||||
"gzip": 107597
|
||||
},
|
||||
"react-dom-server.production.min.js (NODE_PROD)": {
|
||||
"size": 101344,
|
||||
"gzip": 31273
|
||||
"size": 101411,
|
||||
"gzip": 31292
|
||||
},
|
||||
"ReactDOMServerStack-dev.js (FB_DEV)": {
|
||||
"size": 444144,
|
||||
"gzip": 107423
|
||||
"size": 444281,
|
||||
"gzip": 107443
|
||||
},
|
||||
"ReactDOMServerStack-prod.js (FB_PROD)": {
|
||||
"size": 333744,
|
||||
"gzip": 80424
|
||||
"size": 334166,
|
||||
"gzip": 80444
|
||||
},
|
||||
"ReactARTStack-dev.js (FB_DEV)": {
|
||||
"size": 141589,
|
||||
"gzip": 32280
|
||||
"size": 142986,
|
||||
"gzip": 32714
|
||||
},
|
||||
"ReactARTStack-prod.js (FB_PROD)": {
|
||||
"size": 99762,
|
||||
"gzip": 22576
|
||||
"size": 101143,
|
||||
"gzip": 22993
|
||||
},
|
||||
"react-art.development.js (NODE_DEV)": {
|
||||
"size": 265123,
|
||||
"gzip": 56951
|
||||
"size": 265214,
|
||||
"gzip": 56974
|
||||
},
|
||||
"react-art.production.min.js (NODE_PROD)": {
|
||||
"size": 56591,
|
||||
"gzip": 17132
|
||||
"size": 56628,
|
||||
"gzip": 17152
|
||||
},
|
||||
"ReactARTFiber-dev.js (FB_DEV)": {
|
||||
"size": 264301,
|
||||
"gzip": 56758
|
||||
"size": 264392,
|
||||
"gzip": 56780
|
||||
},
|
||||
"ReactARTFiber-prod.js (FB_PROD)": {
|
||||
"size": 205292,
|
||||
"gzip": 43132
|
||||
"size": 205336,
|
||||
"gzip": 43154
|
||||
},
|
||||
"ReactNativeStack.js (RN)": {
|
||||
"size": 233993,
|
||||
@@ -122,20 +122,20 @@
|
||||
"gzip": 84001
|
||||
},
|
||||
"ReactTestRendererFiber-dev.js (FB_DEV)": {
|
||||
"size": 262210,
|
||||
"gzip": 55722
|
||||
"size": 262301,
|
||||
"gzip": 55747
|
||||
},
|
||||
"ReactTestRendererStack-dev.js (FB_DEV)": {
|
||||
"size": 151425,
|
||||
"gzip": 34728
|
||||
"size": 151521,
|
||||
"gzip": 34765
|
||||
},
|
||||
"react-noop-renderer.development.js (NODE_DEV)": {
|
||||
"size": 254207,
|
||||
"gzip": 53701
|
||||
"size": 254298,
|
||||
"gzip": 53728
|
||||
},
|
||||
"react-test-renderer.development.js (NODE_DEV)": {
|
||||
"size": 263041,
|
||||
"gzip": 55919
|
||||
"size": 263132,
|
||||
"gzip": 55938
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user