From 58d62989bd4e8da32e58db35a96868ef2258c2c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 1 Sep 2015 14:02:46 -0700 Subject: [PATCH] Move version to standalone module in preparation for reuse --- grunt/tasks/version-check.js | 7 +------ src/React.js | 3 +-- src/ReactVersion.js | 14 ++++++++++++++ src/isomorphic/ReactIsomorphic.js | 3 +++ src/renderers/dom/ReactDOM.js | 2 ++ src/renderers/dom/ReactDOMServer.js | 2 ++ 6 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 src/ReactVersion.js diff --git a/grunt/tasks/version-check.js b/grunt/tasks/version-check.js index 8da961b0bd30f..ff6da818c0de0 100644 --- a/grunt/tasks/version-check.js +++ b/grunt/tasks/version-check.js @@ -2,11 +2,6 @@ var grunt = require('grunt'); -// Check that the version we're exporting is the same one we expect in the -// package. This is not an ideal way to do this, but makes sure that we keep -// them in sync. -var reactVersionExp = /\bReact\.version\s*=\s*['"]([^'"]+)['"];/; - module.exports = function() { var pkgVersion = grunt.config.data.pkg.version; @@ -19,7 +14,7 @@ module.exports = function() { 'packages/react-addons/package.json (version)': addonsData.version, // Get the "version" without the range bit 'packages/react-addons/package.json (react dependency)': addonsData.peerDependencies.react.slice(1), - 'src/React.js': reactVersionExp.exec(grunt.file.read('./src/React.js'))[1], + 'src/ReactVersion.js': require('../../src/ReactVersion'), }; // Return true (ok) or false (failed) diff --git a/src/React.js b/src/React.js index 3a1f07f573d5b..ed7b29803e25b 100644 --- a/src/React.js +++ b/src/React.js @@ -18,6 +18,7 @@ var ReactIsomorphic = require('ReactIsomorphic'); var assign = require('Object.assign'); var deprecated = require('deprecated'); +// `version` will be added here by ReactIsomorphic. var React = {}; assign(React, ReactIsomorphic); @@ -63,6 +64,4 @@ assign(React, { ), }); -React.version = '0.14.0-beta3'; - module.exports = React; diff --git a/src/ReactVersion.js b/src/ReactVersion.js new file mode 100644 index 0000000000000..5ebfd8d8d2ce9 --- /dev/null +++ b/src/ReactVersion.js @@ -0,0 +1,14 @@ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactVersion + */ + +'use strict'; + +module.exports = '0.14.0-beta3'; diff --git a/src/isomorphic/ReactIsomorphic.js b/src/isomorphic/ReactIsomorphic.js index df49734344171..c5459c18486f3 100644 --- a/src/isomorphic/ReactIsomorphic.js +++ b/src/isomorphic/ReactIsomorphic.js @@ -18,6 +18,7 @@ var ReactDOMFactories = require('ReactDOMFactories'); var ReactElement = require('ReactElement'); var ReactElementValidator = require('ReactElementValidator'); var ReactPropTypes = require('ReactPropTypes'); +var ReactVersion = require('ReactVersion'); var assign = require('Object.assign'); var onlyChild = require('onlyChild'); @@ -64,6 +65,8 @@ var React = { // since they are just generating DOM strings. DOM: ReactDOMFactories, + version: ReactVersion, + // Hook for JSX spread, don't use this for anything else. __spread: assign, }; diff --git a/src/renderers/dom/ReactDOM.js b/src/renderers/dom/ReactDOM.js index 40f2c3cd564ef..4fb7d48d1c540 100644 --- a/src/renderers/dom/ReactDOM.js +++ b/src/renderers/dom/ReactDOM.js @@ -21,6 +21,7 @@ var ReactMount = require('ReactMount'); var ReactPerf = require('ReactPerf'); var ReactReconciler = require('ReactReconciler'); var ReactUpdates = require('ReactUpdates'); +var ReactVersion = require('ReactVersion'); var findDOMNode = require('findDOMNode'); var renderSubtreeIntoContainer = require('renderSubtreeIntoContainer'); @@ -34,6 +35,7 @@ var React = { findDOMNode: findDOMNode, render: render, unmountComponentAtNode: ReactMount.unmountComponentAtNode, + version: ReactVersion, /* eslint-disable camelcase */ unstable_batchedUpdates: ReactUpdates.batchedUpdates, diff --git a/src/renderers/dom/ReactDOMServer.js b/src/renderers/dom/ReactDOMServer.js index 19734cfea4c7c..eb19171948373 100644 --- a/src/renderers/dom/ReactDOMServer.js +++ b/src/renderers/dom/ReactDOMServer.js @@ -13,12 +13,14 @@ var ReactDefaultInjection = require('ReactDefaultInjection'); var ReactServerRendering = require('ReactServerRendering'); +var ReactVersion = require('ReactVersion'); ReactDefaultInjection.inject(); var ReactDOMServer = { renderToString: ReactServerRendering.renderToString, renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup, + version: ReactVersion, }; module.exports = ReactDOMServer;