Add warnings to React module
Ben Alpert committed
Aug 24, 2015 at 16:47 UTC
c04d02e5e8de18436ac95037ab856ac5ba7d29b9
3 files changed
+48
-57
packages/react/react.js
+1
-52
@@ -1,54 +1,3 @@
1
-/* eslint-disable comma-dangle */
1
'use strict';
2
4
-var React = require('./lib/React');
5
-
6
-var assign = require('./lib/Object.assign');
7
-var deprecated = require('./lib/deprecated');
8
-
9
-// We want to warn once when any of these methods are used.
10
-if (process.env.NODE_ENV !== 'production') {
11
- var deprecations = {
12
- // ReactDOM
13
- findDOMNode: deprecated(
14
- 'findDOMNode',
15
- 'react-dom',
16
- React,
17
- React.findDOMNode
18
- ),
19
- render: deprecated(
20
- 'render',
21
- 'react-dom',
22
- React,
23
- React.render
24
- ),
25
- unmountComponentAtNode: deprecated(
26
- 'unmountComponentAtNode',
27
- 'react-dom',
28
- React,
29
- React.unmountComponentAtNode
30
- ),
31
- // ReactDOMServer
32
- renderToString: deprecated(
33
- 'renderToString',
34
- 'react-dom/server',
35
- React,
36
- React.renderToString
37
- ),
38
- renderToStaticMarkup: deprecated(
39
- 'renderToStaticMarkup',
40
- 'react-dom/server',
41
- React,
42
- React.renderToStaticMarkup
43
- )
44
- };
45
- // Export a wrapped object. We'll use assign and take advantage of the fact
46
- // that this will override the original methods in React.
47
- module.exports = assign(
48
- {},
49
- React,
50
- deprecations
51
- );
52
-} else {
53
- module.exports = React;
54
-}
3
+module.exports = require('./lib/React');
src/React.js
+42
-2
@@ -16,12 +16,52 @@ var ReactDOMServer = require('ReactDOMServer');
16
var ReactIsomorphic = require('ReactIsomorphic');
17
18
var assign = require('Object.assign');
19
+var deprecated = require('deprecated');
20
21
var React = {};
22
23
assign(React, ReactIsomorphic);
23
-assign(React, ReactDOM);
24
-assign(React, ReactDOMServer);
24
+
25
+assign(React, {
26
+ // ReactDOM
27
+ findDOMNode: deprecated(
28
+ 'findDOMNode',
29
+ 'ReactDOM',
30
+ 'react-dom',
31
+ ReactDOM,
32
+ ReactDOM.findDOMNode
33
+ ),
34
+ render: deprecated(
35
+ 'render',
36
+ 'ReactDOM',
37
+ 'react-dom',
38
+ ReactDOM,
39
+ ReactDOM.render
40
+ ),
41
+ unmountComponentAtNode: deprecated(
42
+ 'unmountComponentAtNode',
43
+ 'ReactDOM',
44
+ 'react-dom',
45
+ ReactDOM,
46
+ ReactDOM.unmountComponentAtNode
47
+ ),
48
+
49
+ // ReactDOMServer
50
+ renderToString: deprecated(
51
+ 'renderToString',
52
+ 'ReactDOMServer',
53
+ 'react-dom/server',
54
+ ReactDOMServer,
55
+ ReactDOMServer.renderToString
56
+ ),
57
+ renderToStaticMarkup: deprecated(
58
+ 'renderToStaticMarkup',
59
+ 'ReactDOMServer',
60
+ 'react-dom/server',
61
+ ReactDOMServer,
62
+ ReactDOMServer.renderToStaticMarkup
63
+ ),
64
+});
65
66
React.version = '0.14.0-beta3';
67
src/shared/utils/deprecated.js
+5
-3
@@ -20,11 +20,12 @@ var warning = require('warning');
20
*
21
* @param {string} fnName The name of the function
22
* @param {string} newModule The module that fn will exist in
23
+ * @param {string} newPackage The module that fn will exist in
24
* @param {*} ctx The context this forwarded call should run in
25
* @param {function} fn The function to forward on to
26
* @return {function} The function that will warn once and then call fn
27
*/
27
-function deprecated(fnName, newModule, ctx, fn) {
28
+function deprecated(fnName, newModule, newPackage, ctx, fn) {
29
var warned = false;
30
if (__DEV__) {
31
var newFn = function() {
@@ -33,11 +34,12 @@ function deprecated(fnName, newModule, ctx, fn) {
34
// Require examples in this string must be split to prevent React's
35
// build tools from mistaking them for real requires.
36
// Otherwise the build tools will attempt to build a '%s' module.
36
- '`require' + '("react").%s` is deprecated. Please use `require' + '("%s").%s` ' +
37
+ 'React.%s is deprecated. Please use %s.%s from require' + '(\'%s\') ' +
38
'instead.',
39
fnName,
40
newModule,
40
- fnName
41
+ fnName,
42
+ newPackage
43
);
44
warned = true;
45
return fn.apply(ctx, arguments);