@samitouri / QOS-React-2 / commits / 9d75a62d14

Depend on prop-types/checkPropTypes, not prop-types itself (#11420)

* Remove prop-types/checkPropTypes reimplementation * Remove renderer dependency on top-level PropTypes This annotation is unnecessary because we already warn for bad event listener types. * Record sizes

Dan Abramov committed Nov 1, 2017 at 10:57 UTC 9d75a62d149779c8e0818a02c442490ce113aa17
3 files changed +17 -43
packages/react-dom/src/__tests__/ReactDOMInput-test.js
+1 -1
@@ -754,7 +754,7 @@ describe('ReactDOMInput', () => {
754 );
755 expectDev(console.error.calls.count()).toBe(1);
756 expectDev(normalizeCodeLocInfo(console.error.calls.argsFor(0)[0])).toBe(
757 - 'Warning: Failed form propType: You provided a `value` prop to a form ' +
757 + 'Warning: Failed prop type: You provided a `value` prop to a form ' +
758 'field without an `onChange` handler. This will render a read-only ' +
759 'field. If the field should be mutable use `defaultValue`. ' +
760 'Otherwise, set either `onChange` or `readOnly`.\n' +
packages/react-dom/src/shared/ReactControlledValuePropTypes.js
+2 -28
@@ -12,13 +12,8 @@ var ReactControlledValuePropTypes = {
12 };
13
14 if (__DEV__) {
15 - var warning = require('fbjs/lib/warning');
16 - var emptyFunction = require('fbjs/lib/emptyFunction');
17 - var PropTypes = require('prop-types');
15 + var checkPropTypes = require('prop-types/checkPropTypes');
16
19 - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
20 -
21 - ReactControlledValuePropTypes.checkPropTypes = emptyFunction;
17 var hasReadOnlyValue = {
18 button: true,
19 checkbox: true,
@@ -63,11 +58,8 @@ if (__DEV__) {
58 'set either `onChange` or `readOnly`.',
59 );
60 },
66 - onChange: PropTypes.func,
61 };
62
69 - var loggedTypeFailures = {};
70 -
63 /**
64 * Provide a linked `value` attribute for controlled forms. You should not use
65 * this outside of the ReactDOM controlled form components.
@@ -77,25 +69,7 @@ if (__DEV__) {
69 props,
70 getStack,
71 ) {
80 - for (var propName in propTypes) {
81 - if (propTypes.hasOwnProperty(propName)) {
82 - var error = propTypes[propName](
83 - props,
84 - propName,
85 - tagName,
86 - 'prop',
87 - null,
88 - ReactPropTypesSecret,
89 - );
90 - }
91 - if (error instanceof Error && !(error.message in loggedTypeFailures)) {
92 - // Only monitor this failure once because there tends to be a lot of the
93 - // same error.
94 - loggedTypeFailures[error.message] = true;
95 -
96 - warning(false, 'Failed form propType: %s%s', error.message, getStack());
97 - }
98 - }
72 + checkPropTypes(propTypes, props, 'prop', tagName, getStack);
73 };
74 }
75
scripts/rollup/results.json
+14 -14
@@ -25,24 +25,24 @@
25 "gzip": 6776
26 },
27 "react-dom.development.js (UMD_DEV)": {
28 - "size": 629993,
29 - "gzip": 144537
28 + "size": 609118,
29 + "gzip": 139930
30 },
31 "react-dom.production.min.js (UMD_PROD)": {
32 "size": 101759,
33 "gzip": 31837
34 },
35 "react-dom.development.js (NODE_DEV)": {
36 - "size": 594328,
37 - "gzip": 136213
36 + "size": 593556,
37 + "gzip": 135968
38 },
39 "react-dom.production.min.js (NODE_PROD)": {
40 "size": 107772,
41 "gzip": 33333
42 },
43 "ReactDOM-dev.js (FB_DEV)": {
44 - "size": 594288,
45 - "gzip": 136503
44 + "size": 593516,
45 + "gzip": 136258
46 },
47 "ReactDOM-prod.js (FB_PROD)": {
48 "size": 422865,
@@ -85,32 +85,32 @@
85 "gzip": 15630
86 },
87 "react-dom-server.browser.development.js (UMD_DEV)": {
88 - "size": 126953,
89 - "gzip": 32659
88 + "size": 106084,
89 + "gzip": 27905
90 },
91 "react-dom-server.browser.production.min.js (UMD_PROD)": {
92 "size": 15612,
93 "gzip": 6067
94 },
95 "react-dom-server.browser.development.js (NODE_DEV)": {
96 - "size": 96840,
97 - "gzip": 25434
96 + "size": 96070,
97 + "gzip": 25231
98 },
99 "react-dom-server.browser.production.min.js (NODE_PROD)": {
100 "size": 15340,
101 "gzip": 5985
102 },
103 "ReactDOMServer-dev.js (FB_DEV)": {
104 - "size": 96316,
105 - "gzip": 25374
104 + "size": 95546,
105 + "gzip": 25176
106 },
107 "ReactDOMServer-prod.js (FB_PROD)": {
108 "size": 43775,
109 "gzip": 12037
110 },
111 "react-dom-server.node.development.js (NODE_DEV)": {
112 - "size": 99113,
113 - "gzip": 25973
112 + "size": 98343,
113 + "gzip": 25770
114 },
115 "react-dom-server.node.production.min.js (NODE_PROD)": {
116 "size": 16264,