@samitouri / QOS-React-2 / commits / c04d02e5e8

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);