@samitouri / QOS-React-2 / commits / 5f1d4d7c14

ReactInjection

Consolidate everything we can inject in core into one place. Does not expose publicly -- this is an internal moving of shit around.

Pete Hunt committed Feb 10, 2014 at 11:13 UTC 5f1d4d7c144347da1bb85f7e0e281b618bfffd55
3 files changed +73 -27
src/browser/ReactDefaultInjection.js
+25 -27
@@ -18,56 +18,54 @@
18
19 "use strict";
20
21 -var ExecutionEnvironment = require('ExecutionEnvironment');
21 +var ReactInjection = require('ReactInjection');
22
23 -var ReactDOM = require('ReactDOM');
24 -var ReactDOMButton = require('ReactDOMButton');
25 -var ReactDOMForm = require('ReactDOMForm');
26 -var ReactDOMImg = require('ReactDOMImg');
27 -var ReactDOMInput = require('ReactDOMInput');
28 -var ReactDOMOption = require('ReactDOMOption');
29 -var ReactDOMSelect = require('ReactDOMSelect');
30 -var ReactDOMTextarea = require('ReactDOMTextarea');
31 -var ReactEventEmitter = require('ReactEventEmitter');
32 -var ReactEventTopLevelCallback = require('ReactEventTopLevelCallback');
33 -var ReactMount = require('ReactMount');
34 -var ReactPerf = require('ReactPerf');
35 -var ReactRootIndex = require('ReactRootIndex');
23 +var ExecutionEnvironment = require('ExecutionEnvironment');
24
25 var DefaultDOMPropertyConfig = require('DefaultDOMPropertyConfig');
38 -var DOMProperty = require('DOMProperty');
26
27 var ChangeEventPlugin = require('ChangeEventPlugin');
28 var ClientReactRootIndex = require('ClientReactRootIndex');
29 var CompositionEventPlugin = require('CompositionEventPlugin');
30 var DefaultEventPluginOrder = require('DefaultEventPluginOrder');
31 var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
45 -var EventPluginHub = require('EventPluginHub');
32 var MobileSafariClickEventPlugin = require('MobileSafariClickEventPlugin');
33 +var ReactEventTopLevelCallback = require('ReactEventTopLevelCallback');
34 +var ReactDOM = require('ReactDOM');
35 +var ReactDOMButton = require('ReactDOMButton');
36 +var ReactDOMForm = require('ReactDOMForm');
37 +var ReactDOMImg = require('ReactDOMImg');
38 +var ReactDOMInput = require('ReactDOMInput');
39 +var ReactDOMOption = require('ReactDOMOption');
40 +var ReactDOMSelect = require('ReactDOMSelect');
41 +var ReactDOMTextarea = require('ReactDOMTextarea');
42 var ReactInstanceHandles = require('ReactInstanceHandles');
43 +var ReactMount = require('ReactMount');
44 var SelectEventPlugin = require('SelectEventPlugin');
45 var ServerReactRootIndex = require('ServerReactRootIndex');
46 var SimpleEventPlugin = require('SimpleEventPlugin');
47
48 var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
53 -var ReactUpdates = require('ReactUpdates');
49
50 var createFullPageComponent = require('createFullPageComponent');
51
52 function inject() {
58 - ReactEventEmitter.TopLevelCallbackCreator = ReactEventTopLevelCallback;
53 + ReactInjection.EventEmitter.injectTopLevelCallbackCreator(
54 + ReactEventTopLevelCallback
55 + );
56 +
57 /**
58 * Inject modules for resolving DOM hierarchy and plugin ordering.
59 */
62 - EventPluginHub.injection.injectEventPluginOrder(DefaultEventPluginOrder);
63 - EventPluginHub.injection.injectInstanceHandle(ReactInstanceHandles);
64 - EventPluginHub.injection.injectMount(ReactMount);
60 + ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);
61 + ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);
62 + ReactInjection.EventPluginHub.injectMount(ReactMount);
63
64 /**
65 * Some important event plugins included by default (without having to require
66 * them).
67 */
70 - EventPluginHub.injection.injectEventPluginsByName({
68 + ReactInjection.EventPluginHub.injectEventPluginsByName({
69 SimpleEventPlugin: SimpleEventPlugin,
70 EnterLeaveEventPlugin: EnterLeaveEventPlugin,
71 ChangeEventPlugin: ChangeEventPlugin,
@@ -76,7 +74,7 @@ function inject() {
74 SelectEventPlugin: SelectEventPlugin
75 });
76
79 - ReactDOM.injection.injectComponentClasses({
77 + ReactInjection.DOM.injectComponentClasses({
78 button: ReactDOMButton,
79 form: ReactDOMForm,
80 img: ReactDOMImg,
@@ -91,17 +89,17 @@ function inject() {
89 body: createFullPageComponent(ReactDOM.body)
90 });
91
94 - DOMProperty.injection.injectDOMPropertyConfig(DefaultDOMPropertyConfig);
92 + ReactInjection.DOMProperty.injectDOMPropertyConfig(DefaultDOMPropertyConfig);
93
94 if (__DEV__) {
97 - ReactPerf.injection.injectMeasure(require('ReactDefaultPerf').measure);
95 + ReactInjection.Perf.injectMeasure(require('ReactDefaultPerf').measure);
96 }
97
100 - ReactUpdates.injection.injectBatchingStrategy(
98 + ReactInjection.Updates.injectBatchingStrategy(
99 ReactDefaultBatchingStrategy
100 );
101
104 - ReactRootIndex.injection.injectCreateReactRootIndex(
102 + ReactInjection.RootIndex.injectCreateReactRootIndex(
103 ExecutionEnvironment.canUseDOM ?
104 ClientReactRootIndex.createReactRootIndex :
105 ServerReactRootIndex.createReactRootIndex
src/browser/ReactEventEmitter.js
+9
@@ -188,6 +188,15 @@ var ReactEventEmitter = merge(ReactEventEmitterMixin, {
188 */
189 TopLevelCallbackCreator: null,
190
191 + injection: {
192 + /**
193 + * @param {function} TopLevelCallbackCreator
194 + */
195 + injectTopLevelCallbackCreator: function(TopLevelCallbackCreator) {
196 + ReactEventEmitter.TopLevelCallbackCreator = TopLevelCallbackCreator;
197 + }
198 + },
199 +
200 /**
201 * Sets whether or not any created callbacks should be enabled.
202 *
src/core/ReactInjection.js new
+39
@@ -0,0 +1,39 @@
1 +/**
2 + * Copyright 2013 Facebook, Inc.
3 + *
4 + * Licensed under the Apache License, Version 2.0 (the "License");
5 + * you may not use this file except in compliance with the License.
6 + * You may obtain a copy of the License at
7 + *
8 + * http://www.apache.org/licenses/LICENSE-2.0
9 + *
10 + * Unless required by applicable law or agreed to in writing, software
11 + * distributed under the License is distributed on an "AS IS" BASIS,
12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + * See the License for the specific language governing permissions and
14 + * limitations under the License.
15 + *
16 + * @providesModule ReactInjection
17 + */
18 +
19 +"use strict";
20 +
21 +var DOMProperty = require('DOMProperty');
22 +var EventPluginHub = require('EventPluginHub');
23 +var ReactDOM = require('ReactDOM');
24 +var ReactEventEmitter = require('ReactEventEmitter');
25 +var ReactPerf = require('ReactPerf');
26 +var ReactRootIndex = require('ReactRootIndex');
27 +var ReactUpdates = require('ReactUpdates');
28 +
29 +var ReactInjection = {
30 + DOMProperty: DOMProperty.injection,
31 + EventPluginHub: EventPluginHub.injection,
32 + DOM: ReactDOM.injection,
33 + EventEmitter: ReactEventEmitter.injection,
34 + Perf: ReactPerf.injection,
35 + RootIndex: ReactRootIndex.injection,
36 + Updates: ReactUpdates.injection
37 +};
38 +
39 +module.exports = ReactInjection;