@samitouri / QOS-React-2 / commits / 1eed302d34

Drop Haste (#11303)

* Use relative paths in packages/react * Use relative paths in packages/react-art * Use relative paths in packages/react-cs * Use relative paths in other packages * Fix as many issues as I can This uncovered an interesting problem where ./b from package/src/a would resolve to a different instantiation of package/src/b in Jest. Either this is a showstopper or we can solve it by completely fobbidding remaining /src/. * Fix all tests It seems we can't use relative requires in tests anymore. Otherwise Jest becomes confused between real file and symlink. https://github.com/facebook/jest/issues/3830 This seems bad... Except that we already *don't* want people to create tests that import individual source files. All existing cases of us doing so are actually TODOs waiting to be fixed. So perhaps this requirement isn't too bad because it makes bad code looks bad. Of course, if we go with this, we'll have to lint against relative requires in tests. It also makes moving things more painful. * Prettier * Remove @providesModule * Fix remaining Haste imports I missed earlier * Fix up paths to reflect new flat structure * Fix Flow * Fix CJS and UMD builds * Fix FB bundles * Fix RN bundles * Prettier * Fix lint * Fix warning printing and error codes * Fix buggy return * Fix lint and Flow * Use Yarn on CI * Unbreak Jest * Fix lint * Fix aliased originals getting included in DEV Shouldn't affect correctness (they were ignored) but fixes DEV size regression. * Record sizes * Fix weird version in package.json * Tweak bundle labels * Get rid of output option by introducing react-dom/server.node * Reconciler should depend on prop-types * Update sizes last time

Dan Abramov committed Oct 25, 2017 at 02:55 UTC 1eed302d346bfb8f5db8d88b0e7096d8999d3548
262 files changed +1180 -1809
package.json
+1 -1
@@ -116,7 +116,7 @@
116 ".*": "./scripts/jest/preprocessor.js"
117 },
118 "transformIgnorePatterns": [
119 - "/node_modules/(?!react)"
119 + "/node_modules/(?!react|shared|events)"
120 ],
121 "setupFiles": [
122 "./scripts/jest/setup.js",
packages/events/EventPluginHub.js
+5 -7
@@ -3,18 +3,16 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule EventPluginHub
6 */
7
8 'use strict';
9
12 -var EventPluginRegistry = require('EventPluginRegistry');
13 -var EventPluginUtils = require('EventPluginUtils');
14 -var ReactErrorUtils = require('ReactErrorUtils');
10 +var EventPluginRegistry = require('./EventPluginRegistry');
11 +var EventPluginUtils = require('./EventPluginUtils');
12 +var ReactErrorUtils = require('shared/ReactErrorUtils');
13
16 -var accumulateInto = require('accumulateInto');
17 -var forEachAccumulated = require('forEachAccumulated');
14 +var accumulateInto = require('./accumulateInto');
15 +var forEachAccumulated = require('./forEachAccumulated');
16 var invariant = require('fbjs/lib/invariant');
17
18 /**
packages/events/EventPluginRegistry.js
+6 -3
@@ -4,15 +4,18 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule EventPluginRegistry
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {DispatchConfig} from 'ReactSyntheticEventType';
12 +import type {DispatchConfig} from './ReactSyntheticEventType';
13
15 -import type {AnyNativeEvent, PluginName, PluginModule} from 'PluginModuleType';
14 +import type {
15 + AnyNativeEvent,
16 + PluginName,
17 + PluginModule,
18 +} from './PluginModuleType';
19
20 type NamesToPlugins = {[key: PluginName]: PluginModule<AnyNativeEvent>};
21
packages/events/EventPluginUtils.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule EventPluginUtils
6 */
7
8 'use strict';
9
12 -var ReactErrorUtils = require('ReactErrorUtils');
10 +var ReactErrorUtils = require('shared/ReactErrorUtils');
11
12 var invariant = require('fbjs/lib/invariant');
13
packages/events/EventPropagators.js
+4 -6
@@ -3,17 +3,15 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule EventPropagators
6 */
7
8 'use strict';
9
12 -var EventPluginHub = require('EventPluginHub');
13 -var ReactTreeTraversal = require('ReactTreeTraversal');
10 +var EventPluginHub = require('./EventPluginHub');
11 +var ReactTreeTraversal = require('shared/ReactTreeTraversal');
12
15 -var accumulateInto = require('accumulateInto');
16 -var forEachAccumulated = require('forEachAccumulated');
13 +var accumulateInto = require('./accumulateInto');
14 +var forEachAccumulated = require('./forEachAccumulated');
15
16 type PropagationPhases = 'bubbled' | 'captured';
17
packages/events/PluginModuleType.js
+2 -3
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule PluginModuleType
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
13 import type {
14 DispatchConfig,
15 ReactSyntheticEvent,
17 -} from 'ReactSyntheticEventType';
16 +} from './ReactSyntheticEventType';
17
18 export type EventTypes = {[key: string]: DispatchConfig};
19
packages/events/ReactControlledComponent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactControlledComponent
6 */
7
8 'use strict';
9
12 -var EventPluginUtils = require('EventPluginUtils');
10 +var EventPluginUtils = require('./EventPluginUtils');
11
12 var invariant = require('fbjs/lib/invariant');
13
packages/events/ReactEventEmitterMixin.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactEventEmitterMixin
6 */
7
8 'use strict';
9
12 -var EventPluginHub = require('EventPluginHub');
10 +var EventPluginHub = require('./EventPluginHub');
11
12 function runEventQueueInBatch(events) {
13 EventPluginHub.enqueueEvents(events);
packages/events/ReactGenericBatching.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactGenericBatching
6 */
7
8 'use strict';
9
12 -var ReactControlledComponent = require('ReactControlledComponent');
10 +var ReactControlledComponent = require('./ReactControlledComponent');
11
12 // Used as a way to call batchedUpdates when we don't have a reference to
13 // the renderer. Such as when we're dispatching events or if third party
packages/events/ReactSyntheticEventType.js
+1 -3
@@ -5,14 +5,12 @@
5 * LICENSE file in the root directory of this source tree.
6 *
7 * Flow type for SyntheticEvent class that includes private properties
8 - *
9 - * @providesModule ReactSyntheticEventType
8 * @flow
9 */
10
11 'use strict';
12
15 -import type {Fiber} from 'ReactFiber';
13 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
14
15 export type DispatchConfig = {
16 dependencies: Array<string>,
packages/events/ResponderEventPlugin.js
+6 -8
@@ -3,19 +3,17 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ResponderEventPlugin
6 */
7
8 'use strict';
9
12 -var EventPluginUtils = require('EventPluginUtils');
13 -var EventPropagators = require('EventPropagators');
14 -var ReactTreeTraversal = require('ReactTreeTraversal');
15 -var ResponderSyntheticEvent = require('ResponderSyntheticEvent');
16 -var ResponderTouchHistoryStore = require('ResponderTouchHistoryStore');
10 +var EventPluginUtils = require('./EventPluginUtils');
11 +var EventPropagators = require('./EventPropagators');
12 +var ReactTreeTraversal = require('shared/ReactTreeTraversal');
13 +var ResponderSyntheticEvent = require('./ResponderSyntheticEvent');
14 +var ResponderTouchHistoryStore = require('./ResponderTouchHistoryStore');
15
18 -var accumulate = require('accumulate');
16 +var accumulate = require('./accumulate');
17
18 var isStartish = EventPluginUtils.isStartish;
19 var isMoveish = EventPluginUtils.isMoveish;
packages/events/ResponderSyntheticEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ResponderSyntheticEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('./SyntheticEvent');
11
12 /**
13 * `touchHistory` isn't actually on the native event, but putting it in the
packages/events/ResponderTouchHistoryStore.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ResponderTouchHistoryStore
7 * @flow
8 */
9
10 'use strict';
11
13 -const EventPluginUtils = require('EventPluginUtils');
12 +const EventPluginUtils = require('./EventPluginUtils');
13
14 const invariant = require('fbjs/lib/invariant');
15
packages/events/SyntheticEvent.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticEvent
6 */
7
8 /* eslint valid-typeof: 0 */
packages/events/__tests__/EventPluginRegistry-test.js
+1 -1
@@ -16,7 +16,7 @@ describe('EventPluginRegistry', () => {
16 beforeEach(() => {
17 jest.resetModuleRegistry();
18 // TODO: can we express this test with only public API?
19 - EventPluginRegistry = require('EventPluginRegistry');
19 + EventPluginRegistry = require('events/EventPluginRegistry');
20
21 createPlugin = function(properties) {
22 return Object.assign({extractEvents: function() {}}, properties);
packages/events/__tests__/ResponderEventPlugin-test.js
+1 -1
@@ -9,7 +9,7 @@
9
10 'use strict';
11
12 -var {HostComponent} = require('ReactTypeOfWork');
12 +var {HostComponent} = require('shared/ReactTypeOfWork');
13
14 var EventPluginHub;
15 var ResponderEventPlugin;
packages/events/__tests__/accumulateInto-test.js
+1 -1
@@ -13,7 +13,7 @@ var accumulateInto;
13
14 describe('accumulateInto', () => {
15 beforeEach(() => {
16 - accumulateInto = require('accumulateInto');
16 + accumulateInto = require('events/accumulateInto');
17 });
18
19 it('throws if the second item is null', () => {
packages/events/accumulate.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule accumulate
7 * @flow
8 */
9
packages/events/accumulateInto.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule accumulateInto
7 * @flow
8 */
9
packages/events/forEachAccumulated.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule forEachAccumulated
7 * @flow
8 */
9
packages/events/package.json new
+5
@@ -0,0 +1,5 @@
1 +{
2 + "private": true,
3 + "name": "events",
4 + "version": "0.0.0"
5 +}
packages/react-art/npm/Circle.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule Circle.art
6 * @typechecks
7 *
8 * Example usage:
packages/react-art/npm/Rectangle.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule Rectangle.art
6 * @typechecks
7 *
8 * Example usage:
packages/react-art/npm/Wedge.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule Wedge.art
6 * @typechecks
7 *
8 * Example usage:
packages/react-art/package.json
+1
@@ -26,6 +26,7 @@
26 "prop-types": "^15.6.0"
27 },
28 "peerDependencies": {
29 + "art": "^0.10.1",
30 "react": "^16.0.0"
31 },
32 "files": [
packages/react-art/src/ReactART.js
+1 -1
@@ -18,7 +18,7 @@ const invariant = require('fbjs/lib/invariant');
18 const emptyObject = require('fbjs/lib/emptyObject');
19 const React = require('react');
20 const ReactFiberReconciler = require('react-reconciler');
21 -const ReactDOMFrameScheduling = require('ReactDOMFrameScheduling');
21 +const ReactDOMFrameScheduling = require('shared/ReactDOMFrameScheduling');
22
23 const {Component} = React;
24
packages/react-cs-renderer/package.json
+5 -1
@@ -5,6 +5,10 @@
5 "repository": "facebook/react",
6 "dependencies": {
7 "fbjs": "^0.8.16",
8 - "object-assign": "^4.1.1"
8 + "object-assign": "^4.1.1",
9 + "prop-types": "^15.6.0"
10 + },
11 + "peerDependencies": {
12 + "react": "^16.0.0"
13 }
14 }
packages/react-cs-renderer/src/ReactNativeCS.js
+7 -4
@@ -9,12 +9,15 @@
9
10 'use strict';
11
12 -const ReactGenericBatching = require('ReactGenericBatching');
13 -const ReactVersion = require('ReactVersion');
12 +const ReactGenericBatching = require('events/ReactGenericBatching');
13 +const ReactVersion = require('shared/ReactVersion');
14
15 -const {injectInternals} = require('ReactFiberDevToolsHook');
15 +// TODO: direct imports like some-package/src/* are bad. Fix me.
16 +const {
17 + injectInternals,
18 +} = require('react-reconciler/src/ReactFiberDevToolsHook');
19
17 -import type {ReactNativeCSType} from 'ReactNativeCSTypes';
20 +import type {ReactNativeCSType} from './ReactNativeCSTypes';
21
22 const ReactFiberReconciler = require('react-reconciler');
23
packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeCSFeatureFlags
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {FeatureFlags} from 'ReactFeatureFlags';
12 +import type {FeatureFlags} from 'shared/ReactFeatureFlags';
13
14 var ReactNativeCSFeatureFlags: FeatureFlags = {
15 enableAsyncSubtreeAPI: true,
packages/react-cs-renderer/src/ReactNativeCSTypes.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeCSTypes
7 * @flow
8 */
9 'use strict';
packages/react-cs-renderer/src/__tests__/ReactNativeCS-test.js
+3 -1
@@ -12,7 +12,9 @@
12 var React;
13 var ReactNativeCS;
14
15 -jest.mock('ReactFeatureFlags', () => require('ReactNativeCSFeatureFlags'));
15 +jest.mock('shared/ReactFeatureFlags', () =>
16 + require('react-cs-renderer/src/ReactNativeCSFeatureFlags'),
17 +);
18
19 describe('ReactNativeCS', () => {
20 beforeEach(() => {
packages/react-dom/index.fb.js
+10 -9
@@ -11,16 +11,17 @@ var ReactDOM = require('./src/client/ReactDOM');
11
12 Object.assign(ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, {
13 // These are real internal dependencies that are trickier to remove:
14 - ReactBrowserEventEmitter: require('ReactBrowserEventEmitter'),
15 - ReactErrorUtils: require('ReactErrorUtils'),
16 - ReactFiberErrorLogger: require('ReactFiberErrorLogger'),
17 - ReactFiberTreeReflection: require('ReactFiberTreeReflection'),
18 - ReactDOMComponentTree: require('ReactDOMComponentTree'),
19 - ReactInstanceMap: require('ReactInstanceMap'),
14 + ReactBrowserEventEmitter: require('./src/events/ReactBrowserEventEmitter'),
15 + ReactErrorUtils: require('shared/ReactErrorUtils'),
16 + // TODO: direct imports like some-package/src/* are bad. Fix me.
17 + ReactFiberErrorLogger: require('react-reconciler/src/ReactFiberErrorLogger'),
18 + ReactFiberTreeReflection: require('shared/ReactFiberTreeReflection'),
19 + ReactDOMComponentTree: require('./src/client/ReactDOMComponentTree'),
20 + ReactInstanceMap: require('shared/ReactInstanceMap'),
21 // These are dependencies of TapEventPlugin:
21 - EventPluginUtils: require('EventPluginUtils'),
22 - EventPropagators: require('EventPropagators'),
23 - SyntheticUIEvent: require('SyntheticUIEvent'),
22 + EventPluginUtils: require('events/EventPluginUtils'),
23 + EventPropagators: require('events/EventPropagators'),
24 + SyntheticUIEvent: require('./src/events/SyntheticUIEvent'),
25 });
26
27 module.exports = ReactDOM;
packages/react-dom/npm/server.js
+1 -5
@@ -1,7 +1,3 @@
1 'use strict';
2
3 -if (process.env.NODE_ENV === 'production') {
4 - module.exports = require('./cjs/react-dom-server.node.production.min.js');
5 -} else {
6 - module.exports = require('./cjs/react-dom-server.node.development.js');
7 -}
3 +module.exports = require('./server.node');
packages/react-dom/npm/server.node.js new
+7
@@ -0,0 +1,7 @@
1 +'use strict';
2 +
3 +if (process.env.NODE_ENV === 'production') {
4 + module.exports = require('./cjs/react-dom-server.node.production.min.js');
5 +} else {
6 + module.exports = require('./cjs/react-dom-server.node.development.js');
7 +}
packages/react-dom/package.json
+1
@@ -27,6 +27,7 @@
27 "index.js",
28 "server.js",
29 "server.browser.js",
30 + "server.node.js",
31 "test-utils.js",
32 "unstable-native-dependencies.js",
33 "cjs/",
packages/react-dom/server.js
+1 -1
@@ -9,4 +9,4 @@
9
10 'use strict';
11
12 -module.exports = require('./src/server/ReactDOMServerNode');
12 +module.exports = require('./server.node');
packages/react-dom/server.node.js new
+12
@@ -0,0 +1,12 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @flow
8 + */
9 +
10 +'use strict';
11 +
12 +module.exports = require('./src/server/ReactDOMServerNode');
packages/react-dom/src/__tests__/EventPluginHub-test.js
+1 -1
@@ -9,7 +9,7 @@
9
10 'use strict';
11
12 -jest.mock('isEventSupported');
12 +jest.mock('react-dom/src/events/isEventSupported');
13
14 describe('EventPluginHub', () => {
15 var React;
packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js
+5 -5
@@ -59,14 +59,14 @@ describe('ReactBrowserEventEmitter', () => {
59 LISTENER.mockClear();
60 EventListener = require('fbjs/lib/EventListener');
61 // TODO: can we express this test with only public API?
62 - EventPluginHub = require('EventPluginHub');
63 - EventPluginRegistry = require('EventPluginRegistry');
62 + EventPluginHub = require('events/EventPluginHub');
63 + EventPluginRegistry = require('events/EventPluginRegistry');
64 React = require('react');
65 ReactDOM = require('react-dom');
66 - ReactDOMComponentTree = require('ReactDOMComponentTree');
67 - ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
66 + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
67 + ReactBrowserEventEmitter = require('react-dom/src/events/ReactBrowserEventEmitter');
68 ReactTestUtils = require('react-dom/test-utils');
69 - TapEventPlugin = require('TapEventPlugin');
69 + TapEventPlugin = require('react-dom/src/events/TapEventPlugin');
70
71 var container = document.createElement('div');
72
packages/react-dom/src/__tests__/ReactDOMComponent-test.js
+1 -1
@@ -27,7 +27,7 @@ describe('ReactDOMComponent', () => {
27 ReactDOMServer = require('react-dom/server');
28 ReactTestUtils = require('react-dom/test-utils');
29 // TODO: can we express this test with only public API?
30 - inputValueTracking = require('inputValueTracking');
30 + inputValueTracking = require('react-dom/src/client/inputValueTracking');
31 });
32
33 describe('updateDOM', () => {
packages/react-dom/src/__tests__/ReactDOMComponentTree-test.js
+1 -1
@@ -34,7 +34,7 @@ describe('ReactDOMComponentTree', () => {
34 React = require('react');
35 ReactDOM = require('react-dom');
36 // TODO: can we express this test with only public API?
37 - ReactDOMComponentTree = require('ReactDOMComponentTree');
37 + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
38 ReactDOMServer = require('react-dom/server');
39 });
40
packages/react-dom/src/__tests__/ReactDOMEventListener-test.js
+2 -2
@@ -24,8 +24,8 @@ describe('ReactDOMEventListener', () => {
24 React = require('react');
25 ReactDOM = require('react-dom');
26 // TODO: can we express this test with only public API?
27 - ReactDOMComponentTree = require('ReactDOMComponentTree');
28 - ReactDOMEventListener = require('ReactDOMEventListener');
27 + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
28 + ReactDOMEventListener = require('react-dom/src/events/ReactDOMEventListener');
29 ReactTestUtils = require('react-dom/test-utils');
30
31 handleTopLevel = jest.fn();
packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js
+14 -3
@@ -1,5 +1,16 @@
1 +/**
2 + * Copyright (c) 2013-present, Facebook, Inc.
3 + *
4 + * This source code is licensed under the MIT license found in the
5 + * LICENSE file in the root directory of this source tree.
6 + *
7 + * @emails react-core
8 + */
9 +
10 +'use strict';
11 +
12 var React = require('react');
2 -var ReactFeatureFlags = require('ReactFeatureFlags');
13 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
14
15 var ReactDOM;
16
@@ -27,7 +38,7 @@ describe('ReactDOMFiberAsync', () => {
38 describe('with feature flag disabled', () => {
39 beforeEach(() => {
40 jest.resetModules();
30 - ReactFeatureFlags = require('ReactFeatureFlags');
41 + ReactFeatureFlags = require('shared/ReactFeatureFlags');
42 container = document.createElement('div');
43 ReactFeatureFlags.enableAsyncSubtreeAPI = false;
44 ReactDOM = require('react-dom');
@@ -51,7 +62,7 @@ describe('ReactDOMFiberAsync', () => {
62 describe('with feature flag enabled', () => {
63 beforeEach(() => {
64 jest.resetModules();
54 - ReactFeatureFlags = require('ReactFeatureFlags');
65 + ReactFeatureFlags = require('shared/ReactFeatureFlags');
66 container = document.createElement('div');
67 ReactFeatureFlags.enableAsyncSubtreeAPI = true;
68 ReactDOM = require('react-dom');
packages/react-dom/src/__tests__/ReactDOMInput-test.js
+1 -1
@@ -36,7 +36,7 @@ describe('ReactDOMInput', () => {
36 ReactDOMServer = require('react-dom/server');
37 ReactTestUtils = require('react-dom/test-utils');
38 // TODO: can we express this test with only public API?
39 - inputValueTracking = require('inputValueTracking');
39 + inputValueTracking = require('react-dom/src/client/inputValueTracking');
40 spyOn(console, 'error');
41 });
42
packages/react-dom/src/__tests__/ReactDOMSelection-test.js
+2 -2
@@ -20,8 +20,8 @@ describe('ReactDOMSelection', () => {
20 beforeEach(() => {
21 React = require('react');
22 ReactDOM = require('react-dom');
23 - ReactDOMSelection = require('ReactDOMSelection');
24 - invariant = require('invariant');
23 + ReactDOMSelection = require('react-dom/src/client/ReactDOMSelection');
24 + invariant = require('fbjs/lib/invariant');
25
26 ({getModernOffsetsFromPoints} = ReactDOMSelection);
27 });
packages/react-dom/src/__tests__/ReactDOMServerIntegration-test.js
+1 -1
@@ -314,7 +314,7 @@ function resetModules() {
314 jest.resetModuleRegistry();
315
316 // TODO: can we express this test with only public API?
317 - ExecutionEnvironment = require('ExecutionEnvironment');
317 + ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
318
319 PropTypes = require('prop-types');
320 React = require('react');
packages/react-dom/src/__tests__/ReactMount-test.js
+1 -1
@@ -9,7 +9,7 @@
9
10 'use strict';
11
12 -const {COMMENT_NODE} = require('HTMLNodeType');
12 +const {COMMENT_NODE} = require('react-dom/src/shared/HTMLNodeType');
13
14 const invariant = require('invariant');
15
packages/react-dom/src/__tests__/ReactServerRendering-test.js
+1 -1
@@ -34,7 +34,7 @@ describe('ReactDOMServer', () => {
34 ExecutionEnvironment.canUseDOM = false;
35 ReactDOMServer = require('react-dom/server');
36
37 - var DOMProperty = require('DOMProperty');
37 + var DOMProperty = require('react-dom/src/shared/DOMProperty');
38 ROOT_ATTRIBUTE_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;
39 });
40
packages/react-dom/src/__tests__/ReactTreeTraversal-test.js
+2 -2
@@ -11,7 +11,7 @@
11
12 var React = require('react');
13 // TODO: can we express this test with only public API?
14 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
14 +var ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
15 var ReactTestUtils = require('react-dom/test-utils');
16
17 /**
@@ -62,7 +62,7 @@ describe('ReactTreeTraversal', () => {
62 }
63
64 beforeEach(() => {
65 - ReactTreeTraversal = require('ReactTreeTraversal');
65 + ReactTreeTraversal = require('shared/ReactTreeTraversal');
66 mockFn.mockReset();
67 });
68
packages/react-dom/src/__tests__/escapeTextContentForBrowser-test.js
+1 -1
@@ -11,7 +11,7 @@
11
12 describe('escapeTextContentForBrowser', () => {
13 // TODO: can we express this test with only public API?
14 - var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
14 + var escapeTextContentForBrowser = require('react-dom/src/shared/escapeTextContentForBrowser');
15
16 it('should escape boolean to string', () => {
17 expect(escapeTextContentForBrowser(true)).toBe('true');
packages/react-dom/src/__tests__/inputValueTracking-test.js
+1 -1
@@ -13,7 +13,7 @@ var React = require('react');
13 var ReactDOM = require('react-dom');
14 var ReactTestUtils = require('react-dom/test-utils');
15 // TODO: can we express this test with only public API?
16 -var inputValueTracking = require('inputValueTracking');
16 +var inputValueTracking = require('react-dom/src/client/inputValueTracking');
17
18 var getTracker = inputValueTracking._getTrackerFromNode;
19
packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js
+1 -1
@@ -11,7 +11,7 @@
11
12 describe('quoteAttributeValueForBrowser', () => {
13 // TODO: can we express this test with only public API?
14 - var quoteAttributeValueForBrowser = require('quoteAttributeValueForBrowser');
14 + var quoteAttributeValueForBrowser = require('react-dom/src/shared/quoteAttributeValueForBrowser');
15
16 it('should escape boolean to string', () => {
17 expect(quoteAttributeValueForBrowser(true)).toBe('"true"');
packages/react-dom/src/__tests__/validateDOMNesting-test.js
+1 -1
@@ -136,7 +136,7 @@ describe('ReactContextValidator', () => {
136 jest.resetModules();
137
138 // TODO: can we express this test with only public API?
139 - validateDOMNesting = require('validateDOMNesting');
139 + validateDOMNesting = require('react-dom/src/client/validateDOMNesting');
140 });
141
142 it('allows any tag with no context', () => {
packages/react-dom/src/client/DOMPropertyOperations.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule DOMPropertyOperations
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
10 +var DOMProperty = require('../shared/DOMProperty');
11
12 if (__DEV__) {
13 var warning = require('fbjs/lib/warning');
packages/react-dom/src/client/ReactDOM.js
+29 -27
@@ -9,35 +9,37 @@
9
10 'use strict';
11
12 -import type {ReactNodeList} from 'ReactTypes';
12 +import type {ReactNodeList} from 'shared/ReactTypes';
13
14 -require('checkReact');
15 -var DOMNamespaces = require('DOMNamespaces');
14 +require('../shared/checkReact');
15 +var DOMNamespaces = require('../shared/DOMNamespaces');
16 var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
17 -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
18 -var ReactControlledComponent = require('ReactControlledComponent');
19 -var ReactFeatureFlags = require('ReactFeatureFlags');
20 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
21 -var ReactDOMFiberComponent = require('ReactDOMFiberComponent');
22 -var ReactDOMFrameScheduling = require('ReactDOMFrameScheduling');
23 -var ReactGenericBatching = require('ReactGenericBatching');
17 +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter');
18 +var ReactControlledComponent = require('events/ReactControlledComponent');
19 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
20 +var ReactDOMComponentTree = require('./ReactDOMComponentTree');
21 +var ReactDOMFiberComponent = require('./ReactDOMFiberComponent');
22 +var ReactDOMFrameScheduling = require('shared/ReactDOMFrameScheduling');
23 +var ReactGenericBatching = require('events/ReactGenericBatching');
24 var ReactFiberReconciler = require('react-reconciler');
25 -var ReactInputSelection = require('ReactInputSelection');
26 -var ReactInstanceMap = require('ReactInstanceMap');
27 -var ReactPortal = require('ReactPortal');
28 -var ReactVersion = require('ReactVersion');
29 -var {ReactCurrentOwner} = require('ReactGlobalSharedState');
30 -var {injectInternals} = require('ReactFiberDevToolsHook');
25 +var ReactInputSelection = require('./ReactInputSelection');
26 +var ReactInstanceMap = require('shared/ReactInstanceMap');
27 +var ReactVersion = require('shared/ReactVersion');
28 +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState');
29 var {
30 ELEMENT_NODE,
31 TEXT_NODE,
32 COMMENT_NODE,
33 DOCUMENT_NODE,
34 DOCUMENT_FRAGMENT_NODE,
37 -} = require('HTMLNodeType');
38 -var {ROOT_ATTRIBUTE_NAME} = require('DOMProperty');
35 +} = require('../shared/HTMLNodeType');
36 +var {ROOT_ATTRIBUTE_NAME} = require('../shared/DOMProperty');
37
40 -var getComponentName = require('getComponentName');
38 +// TODO: direct imports like some-package/src/* are bad. Fix me.
39 +var ReactPortal = require('react-reconciler/src/ReactPortal');
40 +var {injectInternals} = require('react-reconciler/src/ReactFiberDevToolsHook');
41 +
42 +var getComponentName = require('shared/getComponentName');
43 var invariant = require('fbjs/lib/invariant');
44
45 var {getChildNamespace} = DOMNamespaces;
@@ -59,9 +61,9 @@ var {precacheFiberNode, updateFiberProps} = ReactDOMComponentTree;
61
62 if (__DEV__) {
63 var SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';
62 - var lowPriorityWarning = require('lowPriorityWarning');
64 + var lowPriorityWarning = require('shared/lowPriorityWarning');
65 var warning = require('fbjs/lib/warning');
64 - var validateDOMNesting = require('validateDOMNesting');
66 + var validateDOMNesting = require('./validateDOMNesting');
67 var {updatedAncestorInfo} = validateDOMNesting;
68
69 if (
@@ -81,8 +83,8 @@ if (__DEV__) {
83 }
84 }
85
84 -require('ReactDOMClientInjection');
85 -require('ReactDOMInjection');
86 +require('./ReactDOMClientInjection');
87 +require('../shared/ReactDOMInjection');
88 ReactControlledComponent.injection.injectFiberControlledHostComponent(
89 ReactDOMFiberComponent,
90 );
@@ -938,13 +940,13 @@ var ReactDOM = {
940
941 __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
942 // For TapEventPlugin which is popular in open source
941 - EventPluginHub: require('EventPluginHub'),
943 + EventPluginHub: require('events/EventPluginHub'),
944 // Used by test-utils
943 - EventPluginRegistry: require('EventPluginRegistry'),
944 - EventPropagators: require('EventPropagators'),
945 + EventPluginRegistry: require('events/EventPluginRegistry'),
946 + EventPropagators: require('events/EventPropagators'),
947 ReactControlledComponent,
948 ReactDOMComponentTree,
947 - ReactDOMEventListener: require('ReactDOMEventListener'),
949 + ReactDOMEventListener: require('../events/ReactDOMEventListener'),
950 },
951 };
952
packages/react-dom/src/client/ReactDOMClientInjection.js
+11 -13
@@ -3,23 +3,21 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMClientInjection
6 */
7
8 'use strict';
9
12 -var BeforeInputEventPlugin = require('BeforeInputEventPlugin');
13 -var ChangeEventPlugin = require('ChangeEventPlugin');
14 -var DOMEventPluginOrder = require('DOMEventPluginOrder');
15 -var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
16 -var EventPluginHub = require('EventPluginHub');
17 -var EventPluginUtils = require('EventPluginUtils');
18 -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
19 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
20 -var ReactDOMEventListener = require('ReactDOMEventListener');
21 -var SelectEventPlugin = require('SelectEventPlugin');
22 -var SimpleEventPlugin = require('SimpleEventPlugin');
10 +var BeforeInputEventPlugin = require('../events/BeforeInputEventPlugin');
11 +var ChangeEventPlugin = require('../events/ChangeEventPlugin');
12 +var DOMEventPluginOrder = require('../events/DOMEventPluginOrder');
13 +var EnterLeaveEventPlugin = require('../events/EnterLeaveEventPlugin');
14 +var EventPluginHub = require('events/EventPluginHub');
15 +var EventPluginUtils = require('events/EventPluginUtils');
16 +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter');
17 +var ReactDOMComponentTree = require('./ReactDOMComponentTree');
18 +var ReactDOMEventListener = require('../events/ReactDOMEventListener');
19 +var SelectEventPlugin = require('../events/SelectEventPlugin');
20 +var SimpleEventPlugin = require('../events/SimpleEventPlugin');
21
22 ReactDOMEventListener.setHandleTopLevel(
23 ReactBrowserEventEmitter.handleTopLevel,
packages/react-dom/src/client/ReactDOMComponentTree.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMComponentTree
6 */
7
8 'use strict';
9
12 -var {HostComponent, HostText} = require('ReactTypeOfWork');
10 +var {HostComponent, HostText} = require('shared/ReactTypeOfWork');
11
12 var invariant = require('fbjs/lib/invariant');
13
packages/react-dom/src/client/ReactDOMFiberComponent.js
+29 -22
@@ -4,38 +4,45 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFiberComponent
7 * @flow
8 */
9
10 'use strict';
11
13 -var CSSPropertyOperations = require('CSSPropertyOperations');
14 -var DOMNamespaces = require('DOMNamespaces');
15 -var DOMProperty = require('DOMProperty');
16 -var DOMPropertyOperations = require('DOMPropertyOperations');
17 -var EventPluginRegistry = require('EventPluginRegistry');
18 -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
19 -var ReactDOMFiberInput = require('ReactDOMFiberInput');
20 -var ReactDOMFiberOption = require('ReactDOMFiberOption');
21 -var ReactDOMFiberSelect = require('ReactDOMFiberSelect');
22 -var ReactDOMFiberTextarea = require('ReactDOMFiberTextarea');
23 -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber');
24 -var {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE} = require('HTMLNodeType');
12 +var CSSPropertyOperations = require('../shared/CSSPropertyOperations');
13 +var DOMNamespaces = require('../shared/DOMNamespaces');
14 +var DOMProperty = require('../shared/DOMProperty');
15 +var DOMPropertyOperations = require('./DOMPropertyOperations');
16 +var EventPluginRegistry = require('events/EventPluginRegistry');
17 +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter');
18 +var ReactDOMFiberInput = require('./ReactDOMFiberInput');
19 +var ReactDOMFiberOption = require('./ReactDOMFiberOption');
20 +var ReactDOMFiberSelect = require('./ReactDOMFiberSelect');
21 +var ReactDOMFiberTextarea = require('./ReactDOMFiberTextarea');
22
26 -var assertValidProps = require('assertValidProps');
23 +// TODO: direct imports like some-package/src/* are bad. Fix me.
24 +var {
25 + getCurrentFiberOwnerName,
26 +} = require('react-reconciler/src/ReactDebugCurrentFiber');
27 +
28 +var {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE} = require('../shared/HTMLNodeType');
29 +
30 +var assertValidProps = require('../shared/assertValidProps');
31 var emptyFunction = require('fbjs/lib/emptyFunction');
28 -var inputValueTracking = require('inputValueTracking');
29 -var isCustomComponent = require('isCustomComponent');
30 -var setInnerHTML = require('setInnerHTML');
31 -var setTextContent = require('setTextContent');
32 +var inputValueTracking = require('./inputValueTracking');
33 +var isCustomComponent = require('../shared/isCustomComponent');
34 +var setInnerHTML = require('./setInnerHTML');
35 +var setTextContent = require('./setTextContent');
36
37 if (__DEV__) {
38 var warning = require('fbjs/lib/warning');
35 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
36 - var ReactDOMInvalidARIAHook = require('ReactDOMInvalidARIAHook');
37 - var ReactDOMNullInputValuePropHook = require('ReactDOMNullInputValuePropHook');
38 - var ReactDOMUnknownPropertyHook = require('ReactDOMUnknownPropertyHook');
39 + // TODO: direct imports like some-package/src/* are bad. Fix me.
40 + var {
41 + getCurrentFiberStackAddendum,
42 + } = require('react-reconciler/src/ReactDebugCurrentFiber');
43 + var ReactDOMInvalidARIAHook = require('../shared/ReactDOMInvalidARIAHook');
44 + var ReactDOMNullInputValuePropHook = require('../shared/ReactDOMNullInputValuePropHook');
45 + var ReactDOMUnknownPropertyHook = require('../shared/ReactDOMUnknownPropertyHook');
46 var {validateProperties: validateARIAProperties} = ReactDOMInvalidARIAHook;
47 var {
48 validateProperties: validateInputProperties,
packages/react-dom/src/client/ReactDOMFiberInput.js
+12 -6
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFiberInput
7 * @flow
8 */
9
@@ -18,13 +17,20 @@ type InputWithWrapperState = HTMLInputElement & {
17 },
18 };
19
21 -var DOMPropertyOperations = require('DOMPropertyOperations');
22 -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes');
23 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
24 -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber');
20 +var DOMPropertyOperations = require('./DOMPropertyOperations');
21 +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes');
22 +var ReactDOMComponentTree = require('./ReactDOMComponentTree');
23 +
24 +// TODO: direct imports like some-package/src/* are bad. Fix me.
25 +var {
26 + getCurrentFiberOwnerName,
27 +} = require('react-reconciler/src/ReactDebugCurrentFiber');
28
29 if (__DEV__) {
27 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
30 + // TODO: direct imports like some-package/src/* are bad. Fix me.
31 + var {
32 + getCurrentFiberStackAddendum,
33 + } = require('react-reconciler/src/ReactDebugCurrentFiber');
34 var warning = require('fbjs/lib/warning');
35 }
36
packages/react-dom/src/client/ReactDOMFiberOption.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFiberOption
7 * @flow
8 */
9
packages/react-dom/src/client/ReactDOMFiberSelect.js
+8 -4
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFiberSelect
7 * @flow
8 */
9
@@ -17,13 +16,18 @@ type SelectWithWrapperState = HTMLSelectElement & {
16 },
17 };
18
20 -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes');
21 -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber');
19 +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes');
20 +var {
21 + getCurrentFiberOwnerName,
22 +} = require('react-reconciler/src/ReactDebugCurrentFiber');
23
24 if (__DEV__) {
25 var didWarnValueDefaultValue = false;
26 var warning = require('fbjs/lib/warning');
26 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
27 + // TODO: direct imports like some-package/src/* are bad. Fix me.
28 + var {
29 + getCurrentFiberStackAddendum,
30 + } = require('react-reconciler/src/ReactDebugCurrentFiber');
31 }
32
33 function getDeclarationErrorAddendum() {
packages/react-dom/src/client/ReactDOMFiberTextarea.js
+5 -3
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFiberTextarea
7 * @flow
8 */
9
@@ -16,13 +15,16 @@ type TextAreaWithWrapperState = HTMLTextAreaElement & {
15 },
16 };
17
19 -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes');
18 +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes');
19
20 var invariant = require('fbjs/lib/invariant');
21
22 if (__DEV__) {
23 var warning = require('fbjs/lib/warning');
25 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
24 + // TODO: direct imports like some-package/src/* are bad. Fix me.
25 + var {
26 + getCurrentFiberStackAddendum,
27 + } = require('react-reconciler/src/ReactDebugCurrentFiber');
28 }
29
30 var didWarnValDefaultVal = false;
packages/react-dom/src/client/ReactDOMSelection.js
+3 -5
@@ -3,16 +3,14 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMSelection
6 */
7
8 'use strict';
9
12 -var {TEXT_NODE} = require('HTMLNodeType');
10 +var {TEXT_NODE} = require('../shared/HTMLNodeType');
11
14 -var getNodeForCharacterOffset = require('getNodeForCharacterOffset');
15 -var getTextContentAccessor = require('getTextContentAccessor');
12 +var getNodeForCharacterOffset = require('./getNodeForCharacterOffset');
13 +var getTextContentAccessor = require('./getTextContentAccessor');
14
15 /**
16 * @param {DOMElement} outerNode
packages/react-dom/src/client/ReactInputSelection.js
+2 -4
@@ -3,14 +3,12 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactInputSelection
6 */
7
8 'use strict';
9
12 -var ReactDOMSelection = require('ReactDOMSelection');
13 -var {ELEMENT_NODE} = require('HTMLNodeType');
10 +var ReactDOMSelection = require('./ReactDOMSelection');
11 +var {ELEMENT_NODE} = require('../shared/HTMLNodeType');
12
13 var containsNode = require('fbjs/lib/containsNode');
14 var focusNode = require('fbjs/lib/focusNode');
packages/react-dom/src/client/__tests__/getNodeForCharacterOffset-test.js
+1 -1
@@ -10,7 +10,7 @@
10 'use strict';
11
12 // TODO: can we express this test with only public API?
13 -var getNodeForCharacterOffset = require('getNodeForCharacterOffset');
13 +var getNodeForCharacterOffset = require('react-dom/src/client/getNodeForCharacterOffset');
14
15 // Create node from HTML string
16 function createNode(html) {
packages/react-dom/src/client/__tests__/setInnerHTML-test.js
+2 -2
@@ -10,8 +10,8 @@
10 'use strict';
11
12 // TODO: can we express this test with only public API?
13 -var setInnerHTML = require('setInnerHTML');
14 -var Namespaces = require('DOMNamespaces').Namespaces;
13 +var setInnerHTML = require('react-dom/src/client/setInnerHTML');
14 +var Namespaces = require('react-dom/src/shared/DOMNamespaces').Namespaces;
15
16 describe('setInnerHTML', () => {
17 describe('when the node has innerHTML property', () => {
packages/react-dom/src/client/getNodeForCharacterOffset.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getNodeForCharacterOffset
6 */
7
8 'use strict';
9
12 -var {TEXT_NODE} = require('HTMLNodeType');
10 +var {TEXT_NODE} = require('../shared/HTMLNodeType');
11
12 /**
13 * Given any node return the first leaf node without children.
packages/react-dom/src/client/getTextContentAccessor.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getTextContentAccessor
6 */
7
8 'use strict';
packages/react-dom/src/client/inputValueTracking.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule inputValueTracking
7 * @flow
8 */
9
packages/react-dom/src/client/setInnerHTML.js
+2 -4
@@ -3,14 +3,12 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule setInnerHTML
6 */
7
8 'use strict';
9
12 -var Namespaces = require('DOMNamespaces').Namespaces;
13 -var createMicrosoftUnsafeLocalFunction = require('createMicrosoftUnsafeLocalFunction');
10 +var Namespaces = require('../shared/DOMNamespaces').Namespaces;
11 +var createMicrosoftUnsafeLocalFunction = require('../shared/createMicrosoftUnsafeLocalFunction');
12
13 // SVG temp container for IE lacking innerHTML
14 var reusableSVGContainer;
packages/react-dom/src/client/setTextContent.js
+3 -5
@@ -3,16 +3,14 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule setTextContent
6 */
7
8 'use strict';
9
10 var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
13 -var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
14 -var setInnerHTML = require('setInnerHTML');
15 -var {TEXT_NODE} = require('HTMLNodeType');
11 +var escapeTextContentForBrowser = require('../shared/escapeTextContentForBrowser');
12 +var setInnerHTML = require('./setInnerHTML');
13 +var {TEXT_NODE} = require('../shared/HTMLNodeType');
14
15 /**
16 * Set the textContent property of a node, ensuring that whitespace is preserved
packages/react-dom/src/client/validateDOMNesting.js
+4 -3
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule validateDOMNesting
6 */
7
8 'use strict';
@@ -15,7 +13,10 @@ var validateDOMNesting = emptyFunction;
13
14 if (__DEV__) {
15 var warning = require('fbjs/lib/warning');
18 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
16 + // TODO: direct imports like some-package/src/* are bad. Fix me.
17 + var {
18 + getCurrentFiberStackAddendum,
19 + } = require('react-reconciler/src/ReactDebugCurrentFiber');
20
21 // This validation code was written based on the HTML5 parsing spec:
22 // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
packages/react-dom/src/events/BeforeInputEventPlugin.js
+4 -6
@@ -3,17 +3,15 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule BeforeInputEventPlugin
6 */
7
8 'use strict';
9
12 -var EventPropagators = require('EventPropagators');
10 +var EventPropagators = require('events/EventPropagators');
11 var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
14 -var FallbackCompositionState = require('FallbackCompositionState');
15 -var SyntheticCompositionEvent = require('SyntheticCompositionEvent');
16 -var SyntheticInputEvent = require('SyntheticInputEvent');
12 +var FallbackCompositionState = require('./FallbackCompositionState');
13 +var SyntheticCompositionEvent = require('./SyntheticCompositionEvent');
14 +var SyntheticInputEvent = require('./SyntheticInputEvent');
15
16 import type {TopLevelTypes} from 'BrowserEventConstants';
17
packages/react-dom/src/events/BrowserEventConstants.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule BrowserEventConstants
6 */
7
8 'use strict';
9
12 -var getVendorPrefixedEventName = require('getVendorPrefixedEventName');
10 +var getVendorPrefixedEventName = require('./getVendorPrefixedEventName');
11
12 /**
13 * Types of raw signals from the browser caught at the top level.
packages/react-dom/src/events/ChangeEventPlugin.js
+11 -13
@@ -3,24 +3,22 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ChangeEventPlugin
6 */
7
8 'use strict';
9
12 -var EventPluginHub = require('EventPluginHub');
13 -var EventPropagators = require('EventPropagators');
10 +var EventPluginHub = require('events/EventPluginHub');
11 +var EventPropagators = require('events/EventPropagators');
12 var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
15 -var ReactControlledComponent = require('ReactControlledComponent');
16 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
17 -var ReactGenericBatching = require('ReactGenericBatching');
18 -var SyntheticEvent = require('SyntheticEvent');
19 -
20 -var inputValueTracking = require('inputValueTracking');
21 -var getEventTarget = require('getEventTarget');
22 -var isEventSupported = require('isEventSupported');
23 -var isTextInputElement = require('isTextInputElement');
13 +var ReactControlledComponent = require('events/ReactControlledComponent');
14 +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
15 +var ReactGenericBatching = require('events/ReactGenericBatching');
16 +var SyntheticEvent = require('events/SyntheticEvent');
17 +
18 +var inputValueTracking = require('../client/inputValueTracking');
19 +var getEventTarget = require('./getEventTarget');
20 +var isEventSupported = require('./isEventSupported');
21 +var isTextInputElement = require('shared/isTextInputElement');
22
23 var eventTypes = {
24 change: {
packages/react-dom/src/events/DOMEventPluginOrder.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule DOMEventPluginOrder
6 */
7
8 'use strict';
packages/react-dom/src/events/EnterLeaveEventPlugin.js
+3 -5
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule EnterLeaveEventPlugin
6 */
7
8 'use strict';
9
12 -var EventPropagators = require('EventPropagators');
13 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
14 -var SyntheticMouseEvent = require('SyntheticMouseEvent');
10 +var EventPropagators = require('events/EventPropagators');
11 +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
12 +var SyntheticMouseEvent = require('./SyntheticMouseEvent');
13
14 var eventTypes = {
15 mouseEnter: {
packages/react-dom/src/events/FallbackCompositionState.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule FallbackCompositionState
6 */
7
8 'use strict';
9
12 -var getTextContentAccessor = require('getTextContentAccessor');
10 +var getTextContentAccessor = require('../client/getTextContentAccessor');
11
12 /**
13 * This helper object stores information about text content of a target node,
packages/react-dom/src/events/ReactBrowserEventEmitter.js
+5 -7
@@ -3,18 +3,16 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactBrowserEventEmitter
6 */
7
8 'use strict';
9
12 -var EventPluginRegistry = require('EventPluginRegistry');
13 -var ReactDOMEventListener = require('ReactDOMEventListener');
14 -var ReactEventEmitterMixin = require('ReactEventEmitterMixin');
10 +var EventPluginRegistry = require('events/EventPluginRegistry');
11 +var ReactDOMEventListener = require('./ReactDOMEventListener');
12 +var ReactEventEmitterMixin = require('events/ReactEventEmitterMixin');
13
16 -var isEventSupported = require('isEventSupported');
17 -var {topLevelTypes} = require('BrowserEventConstants');
14 +var isEventSupported = require('./isEventSupported');
15 +var {topLevelTypes} = require('./BrowserEventConstants');
16
17 /**
18 * Summary of `ReactBrowserEventEmitter` event handling:
packages/react-dom/src/events/ReactDOMEventListener.js
+5 -7
@@ -3,19 +3,17 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMEventListener
6 */
7
8 'use strict';
9
10 var EventListener = require('fbjs/lib/EventListener');
13 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
14 -var ReactFiberTreeReflection = require('ReactFiberTreeReflection');
15 -var ReactGenericBatching = require('ReactGenericBatching');
16 -var ReactTypeOfWork = require('ReactTypeOfWork');
11 +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
12 +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection');
13 +var ReactGenericBatching = require('events/ReactGenericBatching');
14 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
15
18 -var getEventTarget = require('getEventTarget');
16 +var getEventTarget = require('./getEventTarget');
17
18 var {HostRoot} = ReactTypeOfWork;
19
packages/react-dom/src/events/SelectEventPlugin.js
+7 -9
@@ -3,22 +3,20 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SelectEventPlugin
6 */
7
8 'use strict';
9
12 -var EventPropagators = require('EventPropagators');
10 +var EventPropagators = require('events/EventPropagators');
11 var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
14 -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
15 -var ReactDOMComponentTree = require('ReactDOMComponentTree');
16 -var ReactInputSelection = require('ReactInputSelection');
17 -var SyntheticEvent = require('SyntheticEvent');
18 -var {DOCUMENT_NODE} = require('HTMLNodeType');
12 +var ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');
13 +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree');
14 +var ReactInputSelection = require('../client/ReactInputSelection');
15 +var SyntheticEvent = require('events/SyntheticEvent');
16 +var {DOCUMENT_NODE} = require('../shared/HTMLNodeType');
17
18 var getActiveElement = require('fbjs/lib/getActiveElement');
21 -var isTextInputElement = require('isTextInputElement');
19 +var isTextInputElement = require('shared/isTextInputElement');
20 var shallowEqual = require('fbjs/lib/shallowEqual');
21
22 var skipSelectionChangeEvent =
packages/react-dom/src/events/SimpleEventPlugin.js
+17 -18
@@ -4,38 +4,37 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule SimpleEventPlugin
7 * @flow
8 */
9
10 'use strict';
11
13 -var EventPropagators = require('EventPropagators');
14 -var SyntheticAnimationEvent = require('SyntheticAnimationEvent');
15 -var SyntheticClipboardEvent = require('SyntheticClipboardEvent');
16 -var SyntheticEvent = require('SyntheticEvent');
17 -var SyntheticFocusEvent = require('SyntheticFocusEvent');
18 -var SyntheticKeyboardEvent = require('SyntheticKeyboardEvent');
19 -var SyntheticMouseEvent = require('SyntheticMouseEvent');
20 -var SyntheticDragEvent = require('SyntheticDragEvent');
21 -var SyntheticTouchEvent = require('SyntheticTouchEvent');
22 -var SyntheticTransitionEvent = require('SyntheticTransitionEvent');
23 -var SyntheticUIEvent = require('SyntheticUIEvent');
24 -var SyntheticWheelEvent = require('SyntheticWheelEvent');
12 +var EventPropagators = require('events/EventPropagators');
13 +var SyntheticAnimationEvent = require('./SyntheticAnimationEvent');
14 +var SyntheticClipboardEvent = require('./SyntheticClipboardEvent');
15 +var SyntheticEvent = require('events/SyntheticEvent');
16 +var SyntheticFocusEvent = require('./SyntheticFocusEvent');
17 +var SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');
18 +var SyntheticMouseEvent = require('./SyntheticMouseEvent');
19 +var SyntheticDragEvent = require('./SyntheticDragEvent');
20 +var SyntheticTouchEvent = require('./SyntheticTouchEvent');
21 +var SyntheticTransitionEvent = require('./SyntheticTransitionEvent');
22 +var SyntheticUIEvent = require('./SyntheticUIEvent');
23 +var SyntheticWheelEvent = require('./SyntheticWheelEvent');
24
26 -var getEventCharCode = require('getEventCharCode');
25 +var getEventCharCode = require('./getEventCharCode');
26
27 if (__DEV__) {
28 var warning = require('fbjs/lib/warning');
29 }
30
32 -import type {TopLevelTypes} from 'BrowserEventConstants';
31 +import type {TopLevelTypes} from './BrowserEventConstants';
32 import type {
33 DispatchConfig,
34 ReactSyntheticEvent,
36 -} from 'ReactSyntheticEventType';
37 -import type {Fiber} from 'ReactFiber';
38 -import type {EventTypes, PluginModule} from 'PluginModuleType';
35 +} from 'events/ReactSyntheticEventType';
36 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
37 +import type {EventTypes, PluginModule} from 'events/PluginModuleType';
38
39 /**
40 * Turns
packages/react-dom/src/events/SyntheticAnimationEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticAnimationEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface Event
packages/react-dom/src/events/SyntheticClipboardEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticClipboardEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface Event
packages/react-dom/src/events/SyntheticCompositionEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticCompositionEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface Event
packages/react-dom/src/events/SyntheticDragEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticDragEvent
6 */
7
8 'use strict';
9
12 -var SyntheticMouseEvent = require('SyntheticMouseEvent');
10 +var SyntheticMouseEvent = require('./SyntheticMouseEvent');
11
12 /**
13 * @interface DragEvent
packages/react-dom/src/events/SyntheticFocusEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticFocusEvent
6 */
7
8 'use strict';
9
12 -var SyntheticUIEvent = require('SyntheticUIEvent');
10 +var SyntheticUIEvent = require('./SyntheticUIEvent');
11
12 /**
13 * @interface FocusEvent
packages/react-dom/src/events/SyntheticInputEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticInputEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface Event
packages/react-dom/src/events/SyntheticKeyboardEvent.js
+4 -6
@@ -3,17 +3,15 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticKeyboardEvent
6 */
7
8 'use strict';
9
12 -var SyntheticUIEvent = require('SyntheticUIEvent');
10 +var SyntheticUIEvent = require('./SyntheticUIEvent');
11
14 -var getEventCharCode = require('getEventCharCode');
15 -var getEventKey = require('getEventKey');
16 -var getEventModifierState = require('getEventModifierState');
12 +var getEventCharCode = require('./getEventCharCode');
13 +var getEventKey = require('./getEventKey');
14 +var getEventModifierState = require('./getEventModifierState');
15
16 /**
17 * @interface KeyboardEvent
packages/react-dom/src/events/SyntheticMouseEvent.js
+2 -4
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticMouseEvent
6 */
7
8 'use strict';
9
12 -var SyntheticUIEvent = require('SyntheticUIEvent');
10 +var SyntheticUIEvent = require('./SyntheticUIEvent');
11
14 -var getEventModifierState = require('getEventModifierState');
12 +var getEventModifierState = require('./getEventModifierState');
13
14 /**
15 * @interface MouseEvent
packages/react-dom/src/events/SyntheticTouchEvent.js
+2 -4
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticTouchEvent
6 */
7
8 'use strict';
9
12 -var SyntheticUIEvent = require('SyntheticUIEvent');
10 +var SyntheticUIEvent = require('./SyntheticUIEvent');
11
14 -var getEventModifierState = require('getEventModifierState');
12 +var getEventModifierState = require('./getEventModifierState');
13
14 /**
15 * @interface TouchEvent
packages/react-dom/src/events/SyntheticTransitionEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticTransitionEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface Event
packages/react-dom/src/events/SyntheticUIEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticUIEvent
6 */
7
8 'use strict';
9
12 -var SyntheticEvent = require('SyntheticEvent');
10 +var SyntheticEvent = require('events/SyntheticEvent');
11
12 /**
13 * @interface UIEvent
packages/react-dom/src/events/SyntheticWheelEvent.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SyntheticWheelEvent
6 */
7
8 'use strict';
9
12 -var SyntheticMouseEvent = require('SyntheticMouseEvent');
10 +var SyntheticMouseEvent = require('./SyntheticMouseEvent');
11
12 /**
13 * @interface WheelEvent
packages/react-dom/src/events/TapEventPlugin.js
+3 -4
@@ -4,15 +4,14 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule TapEventPlugin
7 * @flow
8 */
9
10 'use strict';
11
13 -var EventPluginUtils = require('EventPluginUtils');
14 -var EventPropagators = require('EventPropagators');
15 -var SyntheticUIEvent = require('SyntheticUIEvent');
12 +var EventPluginUtils = require('events/EventPluginUtils');
13 +var EventPropagators = require('events/EventPropagators');
14 +var SyntheticUIEvent = require('./SyntheticUIEvent');
15 var TouchEventUtils = require('fbjs/lib/TouchEventUtils');
16
17 var isStartish = EventPluginUtils.isStartish;
packages/react-dom/src/events/__tests__/BeforeInputEventPlugin-test.js
+4 -4
@@ -49,10 +49,10 @@ describe('BeforeInputEventPlugin', function() {
49 this.ReactDOM = require('react-dom');
50
51 // TODO: can we express this test with only public API?
52 - this.ReactDOMComponentTree = require('ReactDOMComponentTree');
53 - this.SyntheticCompositionEvent = require('SyntheticCompositionEvent');
54 - this.SyntheticInputEvent = require('SyntheticInputEvent');
55 - this.BeforeInputEventPlugin = require('BeforeInputEventPlugin');
52 + this.ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
53 + this.SyntheticCompositionEvent = require('react-dom/src/events/SyntheticCompositionEvent');
54 + this.SyntheticInputEvent = require('react-dom/src/events/SyntheticInputEvent');
55 + this.BeforeInputEventPlugin = require('react-dom/src/events/BeforeInputEventPlugin');
56 }
57
58 function extract(node, eventType, optionalData) {
packages/react-dom/src/events/__tests__/ChangeEventPlugin-test.js
+2 -2
@@ -13,8 +13,8 @@ var React = require('react');
13 var ReactDOM = require('react-dom');
14 var ReactTestUtils = require('react-dom/test-utils');
15 // TODO: can we express this test with only public API?
16 -var ChangeEventPlugin = require('ChangeEventPlugin');
17 -var inputValueTracking = require('inputValueTracking');
16 +var ChangeEventPlugin = require('react-dom/src/events/ChangeEventPlugin');
17 +var inputValueTracking = require('react-dom/src/client/inputValueTracking');
18
19 function getTrackedValue(elem) {
20 var tracker = inputValueTracking._getTrackerFromNode(elem);
packages/react-dom/src/events/__tests__/EnterLeaveEventPlugin-test.js
+2 -2
@@ -23,8 +23,8 @@ describe('EnterLeaveEventPlugin', () => {
23 ReactDOM = require('react-dom');
24 ReactTestUtils = require('react-dom/test-utils');
25 // TODO: can we express this test with only public API?
26 - ReactDOMComponentTree = require('ReactDOMComponentTree');
27 - EnterLeaveEventPlugin = require('EnterLeaveEventPlugin');
26 + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
27 + EnterLeaveEventPlugin = require('react-dom/src/events/EnterLeaveEventPlugin');
28 });
29
30 it('should set relatedTarget properly in iframe', () => {
packages/react-dom/src/events/__tests__/FallbackCompositionState-test.js
+1 -1
@@ -16,7 +16,7 @@ describe('FallbackCompositionState', () => {
16
17 beforeEach(() => {
18 // TODO: can we express this test with only public API?
19 - FallbackCompositionState = require('FallbackCompositionState');
19 + FallbackCompositionState = require('react-dom/src/events/FallbackCompositionState');
20 });
21
22 function getInput() {
packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js
+2 -2
@@ -30,8 +30,8 @@ describe('SelectEventPlugin', () => {
30 ReactDOM = require('react-dom');
31 ReactTestUtils = require('react-dom/test-utils');
32 // TODO: can we express this test with only public API?
33 - ReactDOMComponentTree = require('ReactDOMComponentTree');
34 - SelectEventPlugin = require('SelectEventPlugin');
33 + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree');
34 + SelectEventPlugin = require('react-dom/src/events/SelectEventPlugin');
35 });
36
37 it('should skip extraction if no listeners are present', () => {
packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js
+2 -2
@@ -16,9 +16,9 @@ describe('SyntheticClipboardEvent', () => {
16
17 beforeEach(() => {
18 // TODO: can we express this test with only public API?
19 - SyntheticClipboardEvent = require('SyntheticClipboardEvent');
19 + SyntheticClipboardEvent = require('react-dom/src/events/SyntheticClipboardEvent');
20 createEvent = function(nativeEvent) {
21 - var target = require('getEventTarget')(nativeEvent);
21 + var target = require('react-dom/src/events/getEventTarget')(nativeEvent);
22 return SyntheticClipboardEvent.getPooled({}, '', nativeEvent, target);
23 };
24 });
packages/react-dom/src/events/__tests__/SyntheticEvent-test.js
+2 -2
@@ -19,13 +19,13 @@ describe('SyntheticEvent', () => {
19
20 beforeEach(() => {
21 // TODO: can we express this test with only public API?
22 - SyntheticEvent = require('SyntheticEvent');
22 + SyntheticEvent = require('events/SyntheticEvent');
23 React = require('react');
24 ReactDOM = require('react-dom');
25 ReactTestUtils = require('react-dom/test-utils');
26
27 createEvent = function(nativeEvent) {
28 - var target = require('getEventTarget')(nativeEvent);
28 + var target = require('react-dom/src/events/getEventTarget')(nativeEvent);
29 return SyntheticEvent.getPooled({}, '', nativeEvent, target);
30 };
31 });
packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js
+4 -4
@@ -17,13 +17,13 @@ describe('SyntheticKeyboardEvent', () => {
17
18 beforeEach(() => {
19 // Mock getEventCharCode for proper unit testing
20 - jest.mock('getEventCharCode');
21 - getEventCharCode = require('getEventCharCode');
20 + jest.mock('react-dom/src/events/getEventCharCode');
21 + getEventCharCode = require('react-dom/src/events/getEventCharCode');
22
23 // TODO: can we express this test with only public API?
24 - SyntheticKeyboardEvent = require('SyntheticKeyboardEvent');
24 + SyntheticKeyboardEvent = require('react-dom/src/events/SyntheticKeyboardEvent');
25 createEvent = function(nativeEvent) {
26 - var target = require('getEventTarget')(nativeEvent);
26 + var target = require('react-dom/src/events/getEventTarget')(nativeEvent);
27 return SyntheticKeyboardEvent.getPooled({}, '', nativeEvent, target);
28 };
29 });
packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js
+2 -2
@@ -16,10 +16,10 @@ describe('SyntheticWheelEvent', () => {
16
17 beforeEach(() => {
18 // TODO: can we express this test with only public API?
19 - SyntheticWheelEvent = require('SyntheticWheelEvent');
19 + SyntheticWheelEvent = require('react-dom/src/events/SyntheticWheelEvent');
20
21 createEvent = function(nativeEvent) {
22 - var target = require('getEventTarget')(nativeEvent);
22 + var target = require('react-dom/src/events/getEventTarget')(nativeEvent);
23 return SyntheticWheelEvent.getPooled({}, '', nativeEvent, target);
24 };
25 });
packages/react-dom/src/events/__tests__/getEventCharCode-test.js
+1 -1
@@ -10,7 +10,7 @@
10 'use strict';
11
12 // TODO: can we express this test with only public API?
13 -var getEventCharCode = require('getEventCharCode');
13 +var getEventCharCode = require('react-dom/src/events/getEventCharCode');
14
15 describe('getEventCharCode', () => {
16 describe('when charCode is present in nativeEvent', () => {
packages/react-dom/src/events/__tests__/getEventKey-test.js
+1 -1
@@ -10,7 +10,7 @@
10 'use strict';
11
12 // TODO: can we express this test with only public API?
13 -var getEventKey = require('getEventKey');
13 +var getEventKey = require('react-dom/src/events/getEventKey');
14
15 describe('getEventKey', () => {
16 describe('when key is implemented in a browser', () => {
packages/react-dom/src/events/getEventCharCode.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getEventCharCode
6 */
7
8 'use strict';
packages/react-dom/src/events/getEventKey.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getEventKey
6 */
7
8 'use strict';
9
12 -var getEventCharCode = require('getEventCharCode');
10 +var getEventCharCode = require('./getEventCharCode');
11
12 /**
13 * Normalization of deprecated HTML5 `key` values
packages/react-dom/src/events/getEventModifierState.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getEventModifierState
6 */
7
8 'use strict';
packages/react-dom/src/events/getEventTarget.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getEventTarget
6 */
7
8 'use strict';
9
12 -var {TEXT_NODE} = require('HTMLNodeType');
10 +var {TEXT_NODE} = require('../shared/HTMLNodeType');
11
12 /**
13 * Gets the target node from a native browser event by accounting for
packages/react-dom/src/events/getVendorPrefixedEventName.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule getVendorPrefixedEventName
6 */
7
8 'use strict';
packages/react-dom/src/events/isEventSupported.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule isEventSupported
6 */
7
8 'use strict';
packages/react-dom/src/server/DOMMarkupOperations.js
+2 -4
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule DOMMarkupOperations
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
10 +var DOMProperty = require('../shared/DOMProperty');
11
14 -var quoteAttributeValueForBrowser = require('quoteAttributeValueForBrowser');
12 +var quoteAttributeValueForBrowser = require('../shared/quoteAttributeValueForBrowser');
13
14 if (__DEV__) {
15 var warning = require('fbjs/lib/warning');
packages/react-dom/src/server/ReactDOMNodeStreamRenderer.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMNodeStreamRenderer
6 */
7
8 'use strict';
9
12 -var ReactPartialRenderer = require('ReactPartialRenderer');
10 +var ReactPartialRenderer = require('./ReactPartialRenderer');
11 var Readable = require('stream').Readable;
12
13 // This is a Readable Node.js stream which wraps the ReactDOMPartialRenderer.
packages/react-dom/src/server/ReactDOMServerBrowser.js
+3 -3
@@ -7,11 +7,11 @@
7
8 'use strict';
9
10 -var ReactDOMStringRenderer = require('ReactDOMStringRenderer');
11 -var ReactVersion = require('ReactVersion');
10 +var ReactDOMStringRenderer = require('./ReactDOMStringRenderer');
11 +var ReactVersion = require('shared/ReactVersion');
12 var invariant = require('fbjs/lib/invariant');
13
14 -require('ReactDOMInjection');
14 +require('../shared/ReactDOMInjection');
15
16 module.exports = {
17 renderToString: ReactDOMStringRenderer.renderToString,
packages/react-dom/src/server/ReactDOMServerNode.js
+4 -4
@@ -7,11 +7,11 @@
7
8 'use strict';
9
10 -var ReactDOMStringRenderer = require('ReactDOMStringRenderer');
11 -var ReactDOMNodeStreamRenderer = require('ReactDOMNodeStreamRenderer');
12 -var ReactVersion = require('ReactVersion');
10 +var ReactDOMStringRenderer = require('./ReactDOMStringRenderer');
11 +var ReactDOMNodeStreamRenderer = require('./ReactDOMNodeStreamRenderer');
12 +var ReactVersion = require('shared/ReactVersion');
13
14 -require('ReactDOMInjection');
14 +require('../shared/ReactDOMInjection');
15
16 module.exports = {
17 renderToString: ReactDOMStringRenderer.renderToString,
packages/react-dom/src/server/ReactDOMStringRenderer.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMStringRenderer
6 */
7
8 'use strict';
9
12 -var ReactPartialRenderer = require('ReactPartialRenderer');
10 +var ReactPartialRenderer = require('./ReactPartialRenderer');
11
12 /**
13 * Render a ReactElement to its initial HTML. This should only be used on the
packages/react-dom/src/server/ReactPartialRenderer.js
+14 -16
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactPartialRenderer
6 */
7
8 'use strict';
@@ -13,21 +11,21 @@ var {
11 Namespaces,
12 getIntrinsicNamespace,
13 getChildNamespace,
16 -} = require('DOMNamespaces');
17 -var DOMMarkupOperations = require('DOMMarkupOperations');
14 +} = require('../shared/DOMNamespaces');
15 +var DOMMarkupOperations = require('./DOMMarkupOperations');
16 var React = require('react');
19 -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes');
17 +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes');
18
21 -var assertValidProps = require('assertValidProps');
22 -var dangerousStyleValue = require('dangerousStyleValue');
19 +var assertValidProps = require('../shared/assertValidProps');
20 +var dangerousStyleValue = require('../shared/dangerousStyleValue');
21 var emptyFunction = require('fbjs/lib/emptyFunction');
22 var emptyObject = require('fbjs/lib/emptyObject');
25 -var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
23 +var escapeTextContentForBrowser = require('../shared/escapeTextContentForBrowser');
24 var hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');
25 var invariant = require('fbjs/lib/invariant');
26 var memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');
29 -var omittedCloseTags = require('omittedCloseTags');
30 -var isCustomComponent = require('isCustomComponent');
27 +var omittedCloseTags = require('../shared/omittedCloseTags');
28 +var isCustomComponent = require('../shared/isCustomComponent');
29
30 var toArray = React.Children.toArray;
31 var getStackAddendum = emptyFunction.thatReturns('');
@@ -35,23 +33,23 @@ var getStackAddendum = emptyFunction.thatReturns('');
33 if (__DEV__) {
34 var warning = require('fbjs/lib/warning');
35 var checkPropTypes = require('prop-types/checkPropTypes');
38 - var warnValidStyle = require('warnValidStyle');
36 + var warnValidStyle = require('../shared/warnValidStyle');
37 var {
38 validateProperties: validateARIAProperties,
41 - } = require('ReactDOMInvalidARIAHook');
39 + } = require('../shared/ReactDOMInvalidARIAHook');
40 var {
41 validateProperties: validateInputProperties,
44 - } = require('ReactDOMNullInputValuePropHook');
42 + } = require('../shared/ReactDOMNullInputValuePropHook');
43 var {
44 validateProperties: validateUnknownProperties,
47 - } = require('ReactDOMUnknownPropertyHook');
45 + } = require('../shared/ReactDOMUnknownPropertyHook');
46 var validatePropertiesInDevelopment = function(type, props) {
47 validateARIAProperties(type, props);
48 validateInputProperties(type, props);
49 validateUnknownProperties(type, props);
50 };
51
54 - var describeComponentFrame = require('describeComponentFrame');
52 + var describeComponentFrame = require('shared/describeComponentFrame');
53 var describeStackFrame = function(element): string {
54 var source = element._source;
55 var type = element.type;
@@ -60,7 +58,7 @@ if (__DEV__) {
58 return describeComponentFrame(name, source, ownerName);
59 };
60
63 - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState');
61 + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState');
62 var currentDebugStack = null;
63 var currentDebugElementStack = null;
64 var setCurrentDebugStack = function(stack) {
packages/react-dom/src/shared/CSSProperty.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule CSSProperty
6 */
7
8 'use strict';
packages/react-dom/src/shared/CSSPropertyOperations.js
+2 -4
@@ -3,17 +3,15 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule CSSPropertyOperations
6 */
7
8 'use strict';
9
12 -var dangerousStyleValue = require('dangerousStyleValue');
10 +var dangerousStyleValue = require('./dangerousStyleValue');
11
12 if (__DEV__) {
13 var hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');
16 - var warnValidStyle = require('warnValidStyle');
14 + var warnValidStyle = require('./warnValidStyle');
15 }
16
17 /**
packages/react-dom/src/shared/DOMNamespaces.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule DOMNamespaces
6 */
7
8 'use strict';
packages/react-dom/src/shared/DOMProperty.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule DOMProperty
6 */
7
8 'use strict';
packages/react-dom/src/shared/HTMLDOMPropertyConfig.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule HTMLDOMPropertyConfig
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
10 +var DOMProperty = require('./DOMProperty');
11
12 var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;
13 var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;
packages/react-dom/src/shared/HTMLNodeType.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule HTMLNodeType
6 */
7
8 'use strict';
packages/react-dom/src/shared/ReactControlledValuePropTypes.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactControlledValuePropTypes
6 */
7
8 'use strict';
packages/react-dom/src/shared/ReactDOMInjection.js
+3 -5
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMInjection
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
13 -var HTMLDOMPropertyConfig = require('HTMLDOMPropertyConfig');
14 -var SVGDOMPropertyConfig = require('SVGDOMPropertyConfig');
10 +var DOMProperty = require('./DOMProperty');
11 +var HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');
12 +var SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');
13
14 DOMProperty.injection.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
15 DOMProperty.injection.injectDOMPropertyConfig(SVGDOMPropertyConfig);
packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js
+3 -5
@@ -3,14 +3,12 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMInvalidARIAHook
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
13 -var isCustomComponent = require('isCustomComponent');
10 +var DOMProperty = require('./DOMProperty');
11 +var isCustomComponent = require('./isCustomComponent');
12
13 var warnedProperties = {};
14 var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
@@ -22,7 +20,7 @@ var hasOwnProperty = Object.prototype.hasOwnProperty;
20
21 if (__DEV__) {
22 var warning = require('fbjs/lib/warning');
25 - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState');
23 + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState');
24
25 var validAriaProperties = require('./validAriaProperties');
26 }
packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js
+1 -3
@@ -3,15 +3,13 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMNullInputValuePropHook
6 */
7
8 'use strict';
9
10 if (__DEV__) {
11 var warning = require('fbjs/lib/warning');
14 - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState');
12 + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState');
13 }
14
15 var didWarnValueNull = false;
packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js
+5 -7
@@ -3,19 +3,17 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactDOMUnknownPropertyHook
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
13 -var EventPluginRegistry = require('EventPluginRegistry');
14 -var isCustomComponent = require('isCustomComponent');
10 +var DOMProperty = require('./DOMProperty');
11 +var EventPluginRegistry = require('events/EventPluginRegistry');
12 +var isCustomComponent = require('./isCustomComponent');
13
14 if (__DEV__) {
15 var warning = require('fbjs/lib/warning');
18 - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState');
16 + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState');
17 }
18
19 function getStackAddendum() {
@@ -31,7 +29,7 @@ if (__DEV__) {
29 var rARIACamel = new RegExp(
30 '^(aria)[A-Z][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$',
31 );
34 - var possibleStandardNames = require('possibleStandardNames');
32 + var possibleStandardNames = require('./possibleStandardNames');
33
34 var validateProperty = function(tagName, name, value) {
35 if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {
packages/react-dom/src/shared/SVGDOMPropertyConfig.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule SVGDOMPropertyConfig
6 */
7
8 'use strict';
9
12 -var DOMProperty = require('DOMProperty');
10 +var DOMProperty = require('./DOMProperty');
11
12 var {HAS_STRING_BOOLEAN_VALUE} = DOMProperty.injection;
13
packages/react-dom/src/shared/assertValidProps.js
+1 -3
@@ -3,14 +3,12 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule assertValidProps
6 */
7
8 'use strict';
9
10 var invariant = require('fbjs/lib/invariant');
13 -var voidElementTags = require('voidElementTags');
11 +var voidElementTags = require('./voidElementTags');
12
13 if (__DEV__) {
14 var warning = require('fbjs/lib/warning');
packages/react-dom/src/shared/checkReact.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule checkReact
7 * @flow
8 */
9
packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule createMicrosoftUnsafeLocalFunction
6 */
7
8 /* globals MSApp */
packages/react-dom/src/shared/dangerousStyleValue.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule dangerousStyleValue
6 */
7
8 'use strict';
9
12 -var CSSProperty = require('CSSProperty');
10 +var CSSProperty = require('./CSSProperty');
11
12 var isUnitlessNumber = CSSProperty.isUnitlessNumber;
13
packages/react-dom/src/shared/escapeTextContentForBrowser.js
-2
@@ -28,8 +28,6 @@
28 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
29 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
30 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 - *
32 - * @providesModule escapeTextContentForBrowser
31 */
32
33 'use strict';
packages/react-dom/src/shared/isCustomComponent.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule isCustomComponent
7 * @flow
8 */
9
packages/react-dom/src/shared/omittedCloseTags.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule omittedCloseTags
6 */
7
8 'use strict';
packages/react-dom/src/shared/possibleStandardNames.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule possibleStandardNames
6 */
7
8 // When adding attributes to the HTML or SVG whitelist, be sure to
packages/react-dom/src/shared/quoteAttributeValueForBrowser.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule quoteAttributeValueForBrowser
6 */
7
8 'use strict';
9
12 -var escapeTextContentForBrowser = require('escapeTextContentForBrowser');
10 +var escapeTextContentForBrowser = require('./escapeTextContentForBrowser');
11
12 /**
13 * Escapes attribute value to prevent scripting attacks.
packages/react-dom/src/shared/validAriaProperties.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule validAriaProperties
6 */
7
8 'use strict';
packages/react-dom/src/shared/voidElementTags.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule voidElementTags
6 */
7
8 'use strict';
9
12 -var omittedCloseTags = require('omittedCloseTags');
10 +var omittedCloseTags = require('./omittedCloseTags');
11
12 // For HTML, certain tags cannot have children. This has the same purpose as
13 // `omittedCloseTags` except that `menuitem` should still have its closing tag.
packages/react-dom/src/shared/warnValidStyle.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule warnValidStyle
6 */
7
8 'use strict';
packages/react-dom/src/test-utils/ReactTestUtils.js
+5 -5
@@ -7,13 +7,13 @@
7
8 'use strict';
9
10 -var BrowserEventConstants = require('BrowserEventConstants');
10 +var BrowserEventConstants = require('../events/BrowserEventConstants');
11 var React = require('react');
12 var ReactDOM = require('react-dom');
13 -var ReactFiberTreeReflection = require('ReactFiberTreeReflection');
14 -var ReactInstanceMap = require('ReactInstanceMap');
15 -var ReactTypeOfWork = require('ReactTypeOfWork');
16 -var SyntheticEvent = require('SyntheticEvent');
13 +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection');
14 +var ReactInstanceMap = require('shared/ReactInstanceMap');
15 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
16 +var SyntheticEvent = require('events/SyntheticEvent');
17
18 var invariant = require('fbjs/lib/invariant');
19
packages/react-dom/src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies.js
+3 -3
@@ -5,9 +5,9 @@
5 * LICENSE file in the root directory of this source tree.
6 */
7
8 -const EventPluginUtils = require('EventPluginUtils');
9 -const ResponderEventPlugin = require('ResponderEventPlugin');
10 -const ResponderTouchHistoryStore = require('ResponderTouchHistoryStore');
8 +const EventPluginUtils = require('events/EventPluginUtils');
9 +const ResponderEventPlugin = require('events/ResponderEventPlugin');
10 +const ResponderTouchHistoryStore = require('events/ResponderTouchHistoryStore');
11
12 // This is used by react-native-web.
13 const ReactDOMUnstableNativeDependencies = {
packages/react-native-renderer/package.json
+5 -1
@@ -5,6 +5,10 @@
5 "repository": "facebook/react",
6 "dependencies": {
7 "fbjs": "^0.8.16",
8 - "object-assign": "^4.1.1"
8 + "object-assign": "^4.1.1",
9 + "prop-types": "^15.6.0"
10 + },
11 + "peerDependencies": {
12 + "react": "^16.0.0"
13 }
14 }
packages/react-native-renderer/src/NativeMethodsMixin.js
+7 -6
@@ -4,24 +4,25 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule NativeMethodsMixin
7 * @flow
8 */
9 'use strict';
10
12 -const ReactNativeAttributePayload = require('ReactNativeAttributePayload');
11 +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload');
12 +
13 +// Module provided by RN:
14 const TextInputState = require('TextInputState');
15 const UIManager = require('UIManager');
16
17 const invariant = require('fbjs/lib/invariant');
17 -const findNodeHandle = require('findNodeHandle');
18 -const findNumericNodeHandle = require('findNumericNodeHandle');
18 +const findNodeHandle = require('./findNodeHandle');
19 +const findNumericNodeHandle = require('./findNumericNodeHandle');
20
21 const {
22 mountSafeCallback,
23 throwOnStylesProp,
24 warnForStyleProps,
24 -} = require('NativeMethodsMixinUtils');
25 +} = require('./NativeMethodsMixinUtils');
26
27 import type {
28 MeasureInWindowOnSuccessCallback,
@@ -29,7 +30,7 @@ import type {
30 MeasureOnSuccessCallback,
31 NativeMethodsMixinType,
32 ReactNativeBaseComponentViewConfig,
32 -} from 'ReactNativeTypes';
33 +} from './ReactNativeTypes';
34
35 /**
36 * `NativeMethodsMixin` provides methods to access the underlying native
packages/react-native-renderer/src/NativeMethodsMixinUtils.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule NativeMethodsMixinUtils
7 * @flow
8 */
9 'use strict';
packages/react-native-renderer/src/ReactNativeAttributePayload.js
+2 -2
@@ -4,13 +4,13 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeAttributePayload
7 * @flow
8 */
9 'use strict';
10
12 -var ReactNativePropRegistry = require('ReactNativePropRegistry');
11 +var ReactNativePropRegistry = require('./ReactNativePropRegistry');
12
13 +// Module provided by RN:
14 var deepDiffer = require('deepDiffer');
15 var flattenStyle = require('flattenStyle');
16
packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js
+3 -4
@@ -4,19 +4,18 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeBridgeEventPlugin
7 * @flow
8 */
9 'use strict';
10
12 -const EventPropagators = require('EventPropagators');
13 -const SyntheticEvent = require('SyntheticEvent');
11 +const EventPropagators = require('events/EventPropagators');
12 +const SyntheticEvent = require('events/SyntheticEvent');
13 const invariant = require('fbjs/lib/invariant');
14
15 const customBubblingEventTypes = {};
16 const customDirectEventTypes = {};
17
19 -import type {ReactNativeBaseComponentViewConfig} from 'ReactNativeTypes';
18 +import type {ReactNativeBaseComponentViewConfig} from './ReactNativeTypes';
19
20 const ReactNativeBridgeEventPlugin = {
21 eventTypes: {},
packages/react-native-renderer/src/ReactNativeComponent.js
+7 -6
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeComponent
7 * @flow
8 * @format
9 */
@@ -12,14 +11,16 @@
11 'use strict';
12
13 const React = require('react');
15 -const ReactNativeAttributePayload = require('ReactNativeAttributePayload');
14 +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload');
15 +
16 +// Modules provided by RN:
17 const TextInputState = require('TextInputState');
18 const UIManager = require('UIManager');
19
19 -const findNodeHandle = require('findNodeHandle');
20 -const findNumericNodeHandle = require('findNumericNodeHandle');
20 +const findNodeHandle = require('./findNodeHandle');
21 +const findNumericNodeHandle = require('./findNumericNodeHandle');
22
22 -const {mountSafeCallback} = require('NativeMethodsMixinUtils');
23 +const {mountSafeCallback} = require('./NativeMethodsMixinUtils');
24
25 import type {
26 MeasureInWindowOnSuccessCallback,
@@ -27,7 +28,7 @@ import type {
28 MeasureOnSuccessCallback,
29 NativeMethodsMixinType,
30 ReactNativeBaseComponentViewConfig,
30 -} from 'ReactNativeTypes';
31 +} from './ReactNativeTypes';
32
33 /**
34 * Superclass that provides methods to access the underlying native component.
packages/react-native-renderer/src/ReactNativeComponentTree.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactNativeComponentTree
6 */
7
8 'use strict';
packages/react-native-renderer/src/ReactNativeEventEmitter.js
+6 -7
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeEventEmitter
7 * @flow
8 */
9 'use strict';
10
12 -var EventPluginHub = require('EventPluginHub');
13 -var EventPluginRegistry = require('EventPluginRegistry');
14 -var ReactEventEmitterMixin = require('ReactEventEmitterMixin');
15 -var ReactNativeComponentTree = require('ReactNativeComponentTree');
16 -var ReactNativeTagHandles = require('ReactNativeTagHandles');
17 -var ReactGenericBatching = require('ReactGenericBatching');
11 +var EventPluginHub = require('events/EventPluginHub');
12 +var EventPluginRegistry = require('events/EventPluginRegistry');
13 +var ReactEventEmitterMixin = require('events/ReactEventEmitterMixin');
14 +var ReactNativeComponentTree = require('./ReactNativeComponentTree');
15 +var ReactNativeTagHandles = require('./ReactNativeTagHandles');
16 +var ReactGenericBatching = require('events/ReactGenericBatching');
17
18 if (__DEV__) {
19 var warning = require('fbjs/lib/warning');
packages/react-native-renderer/src/ReactNativeEventPluginOrder.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeEventPluginOrder
7 * @flow
8 */
9 'use strict';
packages/react-native-renderer/src/ReactNativeFiberErrorDialog.js
+2 -2
@@ -4,15 +4,15 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeFiberErrorDialog
7 * @flow
8 */
9
10 'use strict';
11
12 +// Module provided by RN:
13 const ExceptionsManager = require('ExceptionsManager');
14
15 -import type {CapturedError} from 'ReactFiberScheduler';
15 +import type {CapturedError} from 'react-reconciler/src/ReactFiberScheduler';
16
17 /**
18 * Intercept lifecycle errors and ensure they are shown with the correct stack
packages/react-native-renderer/src/ReactNativeFiberHostComponent.js
+9 -5
@@ -4,17 +4,21 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeFiberHostComponent
7 * @flow
8 */
9
10 'use strict';
11
13 -var ReactNativeAttributePayload = require('ReactNativeAttributePayload');
12 +var ReactNativeAttributePayload = require('./ReactNativeAttributePayload');
13 +
14 +// Modules provided by RN:
15 var TextInputState = require('TextInputState');
16 var UIManager = require('UIManager');
17
17 -var {mountSafeCallback, warnForStyleProps} = require('NativeMethodsMixinUtils');
18 +var {
19 + mountSafeCallback,
20 + warnForStyleProps,
21 +} = require('./NativeMethodsMixinUtils');
22
23 import type {
24 MeasureInWindowOnSuccessCallback,
@@ -22,8 +26,8 @@ import type {
26 MeasureOnSuccessCallback,
27 NativeMethodsMixinType,
28 ReactNativeBaseComponentViewConfig,
25 -} from 'ReactNativeTypes';
26 -import type {Instance} from 'ReactNativeFiberRenderer';
29 +} from './ReactNativeTypes';
30 +import type {Instance} from './ReactNativeFiberRenderer';
31
32 /**
33 * This component defines the same methods as NativeMethodsMixin but without the
packages/react-native-renderer/src/ReactNativeFiberInspector.js
+8 -7
@@ -4,24 +4,25 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeFiberInspector
7 * @flow
8 */
9 'use strict';
10
12 -const ReactNativeComponentTree = require('ReactNativeComponentTree');
13 -const ReactFiberTreeReflection = require('ReactFiberTreeReflection');
14 -const getComponentName = require('getComponentName');
11 +const ReactNativeComponentTree = require('./ReactNativeComponentTree');
12 +const ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection');
13 +const getComponentName = require('shared/getComponentName');
14 const emptyObject = require('fbjs/lib/emptyObject');
16 -const ReactTypeOfWork = require('ReactTypeOfWork');
17 -const UIManager = require('UIManager');
15 +const ReactTypeOfWork = require('shared/ReactTypeOfWork');
16 const invariant = require('fbjs/lib/invariant');
17
18 +// Module provided by RN:
19 +const UIManager = require('UIManager');
20 +
21 const {getClosestInstanceFromNode} = ReactNativeComponentTree;
22 const {findCurrentFiberUsingSlowPath} = ReactFiberTreeReflection;
23 const {HostComponent} = ReactTypeOfWork;
24
24 -import type {Fiber} from 'ReactFiber';
25 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
26
27 let getInspectorDataForViewTag;
28
packages/react-native-renderer/src/ReactNativeFiberRenderer.js
+9 -8
@@ -4,25 +4,26 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeFiberRenderer
7 * @flow
8 */
9
10 'use strict';
11
12 const ReactFiberReconciler = require('react-reconciler');
14 -const ReactNativeAttributePayload = require('ReactNativeAttributePayload');
15 -const ReactNativeComponentTree = require('ReactNativeComponentTree');
16 -const ReactNativeFiberHostComponent = require('ReactNativeFiberHostComponent');
17 -const ReactNativeTagHandles = require('ReactNativeTagHandles');
18 -const ReactNativeViewConfigRegistry = require('ReactNativeViewConfigRegistry');
19 -const UIManager = require('UIManager');
13 +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload');
14 +const ReactNativeComponentTree = require('./ReactNativeComponentTree');
15 +const ReactNativeFiberHostComponent = require('./ReactNativeFiberHostComponent');
16 +const ReactNativeTagHandles = require('./ReactNativeTagHandles');
17 +const ReactNativeViewConfigRegistry = require('./ReactNativeViewConfigRegistry');
18
19 +// Modules provided by RN:
20 +const UIManager = require('UIManager');
21 const deepFreezeAndThrowOnMutationInDev = require('deepFreezeAndThrowOnMutationInDev');
22 +
23 const emptyObject = require('fbjs/lib/emptyObject');
24 const invariant = require('fbjs/lib/invariant');
25
25 -import type {ReactNativeBaseComponentViewConfig} from 'ReactNativeTypes';
26 +import type {ReactNativeBaseComponentViewConfig} from './ReactNativeTypes';
27
28 export type Container = number;
29 export type Instance = {
packages/react-native-renderer/src/ReactNativeGlobalResponderHandler.js
+1 -2
@@ -3,11 +3,10 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactNativeGlobalResponderHandler
6 */
7 'use strict';
8
9 +// Module provided by RN:
10 var UIManager = require('UIManager');
11
12 var ReactNativeGlobalResponderHandler = {
packages/react-native-renderer/src/ReactNativeInjection.js
+10 -9
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeInjection
7 * @flow
8 */
9 'use strict';
@@ -15,17 +14,19 @@
14 * ensures it exists in the dependency graph and can be `require`d.
15 * TODO: require this in packager, not in React #10932517
16 */
17 +// Module provided by RN:
18 require('InitializeCore');
19
20 -var EventPluginHub = require('EventPluginHub');
21 -var EventPluginUtils = require('EventPluginUtils');
20 +var EventPluginHub = require('events/EventPluginHub');
21 +var EventPluginUtils = require('events/EventPluginUtils');
22 +// Module provided by RN:
23 var RCTEventEmitter = require('RCTEventEmitter');
23 -var ReactNativeBridgeEventPlugin = require('ReactNativeBridgeEventPlugin');
24 -var ReactNativeComponentTree = require('ReactNativeComponentTree');
25 -var ReactNativeEventEmitter = require('ReactNativeEventEmitter');
26 -var ReactNativeEventPluginOrder = require('ReactNativeEventPluginOrder');
27 -var ReactNativeGlobalResponderHandler = require('ReactNativeGlobalResponderHandler');
28 -var ResponderEventPlugin = require('ResponderEventPlugin');
24 +var ReactNativeBridgeEventPlugin = require('./ReactNativeBridgeEventPlugin');
25 +var ReactNativeComponentTree = require('./ReactNativeComponentTree');
26 +var ReactNativeEventEmitter = require('./ReactNativeEventEmitter');
27 +var ReactNativeEventPluginOrder = require('./ReactNativeEventPluginOrder');
28 +var ReactNativeGlobalResponderHandler = require('./ReactNativeGlobalResponderHandler');
29 +var ResponderEventPlugin = require('events/ResponderEventPlugin');
30
31 /**
32 * Register the event emitter with the native bridge
packages/react-native-renderer/src/ReactNativePropRegistry.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativePropRegistry
7 * @flow
8 */
9 'use strict';
packages/react-native-renderer/src/ReactNativeRenderer.js
+28 -23
@@ -9,24 +9,29 @@
9
10 'use strict';
11
12 -const ReactFiberErrorLogger = require('ReactFiberErrorLogger');
13 -const ReactGenericBatching = require('ReactGenericBatching');
14 -const ReactNativeFiberErrorDialog = require('ReactNativeFiberErrorDialog');
15 -const ReactPortal = require('ReactPortal');
16 -const ReactNativeComponentTree = require('ReactNativeComponentTree');
17 -const ReactNativeFiberRenderer = require('ReactNativeFiberRenderer');
18 -const ReactNativeFiberInspector = require('ReactNativeFiberInspector');
19 -const ReactVersion = require('ReactVersion');
12 +// TODO: direct imports like some-package/src/* are bad. Fix me.
13 +const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger');
14 +const ReactPortal = require('react-reconciler/src/ReactPortal');
15 +const {
16 + injectInternals,
17 +} = require('react-reconciler/src/ReactFiberDevToolsHook');
18 +
19 +const ReactGenericBatching = require('events/ReactGenericBatching');
20 +const ReactNativeFiberErrorDialog = require('./ReactNativeFiberErrorDialog');
21 +const ReactNativeComponentTree = require('./ReactNativeComponentTree');
22 +const ReactNativeFiberRenderer = require('./ReactNativeFiberRenderer');
23 +const ReactNativeFiberInspector = require('./ReactNativeFiberInspector');
24 +const ReactVersion = require('shared/ReactVersion');
25 +
26 +// Module provided by RN:
27 const UIManager = require('UIManager');
28
22 -const findNumericNodeHandle = require('findNumericNodeHandle');
29 +const findNumericNodeHandle = require('./findNumericNodeHandle');
30
24 -const {injectInternals} = require('ReactFiberDevToolsHook');
31 +import type {ReactNativeType} from './ReactNativeTypes';
32 +import type {ReactNodeList} from 'shared/ReactTypes';
33
26 -import type {ReactNativeType} from 'ReactNativeTypes';
27 -import type {ReactNodeList} from 'ReactTypes';
28 -
29 -require('ReactNativeInjection');
34 +require('./ReactNativeInjection');
35
36 ReactGenericBatching.injection.injectFiberBatchedUpdates(
37 ReactNativeFiberRenderer.batchedUpdates,
@@ -41,7 +46,7 @@ ReactFiberErrorLogger.injection.injectDialog(
46 );
47
48 const ReactNativeRenderer: ReactNativeType = {
44 - NativeComponent: require('ReactNativeComponent'),
49 + NativeComponent: require('./ReactNativeComponent'),
50
51 findNodeHandle: findNumericNodeHandle,
52
@@ -90,16 +95,16 @@ const ReactNativeRenderer: ReactNativeType = {
95
96 __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
97 // Used as a mixin in many createClass-based components
93 - NativeMethodsMixin: require('NativeMethodsMixin'),
98 + NativeMethodsMixin: require('./NativeMethodsMixin'),
99
100 // Used by react-native-github/Libraries/ components
96 - ReactNativeBridgeEventPlugin: require('ReactNativeBridgeEventPlugin'), // requireNativeComponent
97 - ReactGlobalSharedState: require('ReactGlobalSharedState'), // Systrace
98 - ReactNativeComponentTree: require('ReactNativeComponentTree'), // InspectorUtils, ScrollResponder
99 - ReactNativePropRegistry: require('ReactNativePropRegistry'), // flattenStyle, Stylesheet
100 - TouchHistoryMath: require('TouchHistoryMath'), // PanResponder
101 - createReactNativeComponentClass: require('createReactNativeComponentClass'), // eg RCTText, RCTView, ReactNativeART
102 - takeSnapshot: require('takeSnapshot'), // react-native-implementation
101 + ReactNativeBridgeEventPlugin: require('./ReactNativeBridgeEventPlugin'), // requireNativeComponent
102 + ReactGlobalSharedState: require('shared/ReactGlobalSharedState'), // Systrace
103 + ReactNativeComponentTree: require('./ReactNativeComponentTree'), // InspectorUtils, ScrollResponder
104 + ReactNativePropRegistry: require('./ReactNativePropRegistry'), // flattenStyle, Stylesheet
105 + TouchHistoryMath: require('events/TouchHistoryMath'), // PanResponder
106 + createReactNativeComponentClass: require('./createReactNativeComponentClass'), // RCTText, RCTView, ReactNativeART
107 + takeSnapshot: require('./takeSnapshot'), // react-native-implementation
108 },
109 };
110
packages/react-native-renderer/src/ReactNativeTagHandles.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeTagHandles
7 * @flow
8 */
9 'use strict';
packages/react-native-renderer/src/ReactNativeTypes.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeTypes
7 * @flow
8 */
9 'use strict';
packages/react-native-renderer/src/ReactNativeViewConfigRegistry.js
+1 -2
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeViewConfigRegistry
7 * @flow
8 */
9
@@ -15,7 +14,7 @@ const invariant = require('fbjs/lib/invariant');
14 import type {
15 ReactNativeBaseComponentViewConfig,
16 ViewConfigGetter,
18 -} from 'ReactNativeTypes';
17 +} from './ReactNativeTypes';
18
19 const viewConfigCallbacks = new Map();
20 const viewConfigs = new Map();
packages/react-native-renderer/src/__mocks__/UIManager.js
+1 -1
@@ -9,7 +9,7 @@
9
10 // Mock of the Native Hooks
11
12 -const ReactNativeTagHandles = require('ReactNativeTagHandles');
12 +const ReactNativeTagHandles = require('../ReactNativeTagHandles');
13 const invariant = require('fbjs/lib/invariant');
14
15 // Map of viewTag -> {children: [childTag], parent: ?parentTag}
packages/react-native-renderer/src/__mocks__/View.js
+1 -1
@@ -7,7 +7,7 @@
7
8 'use strict';
9
10 -var createReactNativeComponentClass = require('createReactNativeComponentClass');
10 +var createReactNativeComponentClass = require('../createReactNativeComponentClass');
11
12 var View = createReactNativeComponentClass({
13 validAttributes: {},
packages/react-native-renderer/src/__tests__/ReactNativeAttributePayload-test.js
+2 -2
@@ -7,8 +7,8 @@
7 */
8 'use strict';
9
10 -var ReactNativeAttributePayload = require('ReactNativeAttributePayload');
11 -var ReactNativePropRegistry = require('ReactNativePropRegistry');
10 +var ReactNativeAttributePayload = require('react-native-renderer/src/ReactNativeAttributePayload');
11 +var ReactNativePropRegistry = require('react-native-renderer/src/ReactNativePropRegistry');
12
13 var diff = ReactNativeAttributePayload.diff;
14
packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.js
+3 -3
@@ -69,10 +69,10 @@ beforeEach(() => {
69 RCTEventEmitter = require('RCTEventEmitter');
70 React = require('react');
71 ReactNative = require('react-native-renderer');
72 - ReactNativeBridgeEventPlugin = require('ReactNativeBridgeEventPlugin');
73 - ResponderEventPlugin = require('ResponderEventPlugin');
72 + ReactNativeBridgeEventPlugin = require('react-native-renderer/src/ReactNativeBridgeEventPlugin');
73 + ResponderEventPlugin = require('events/ResponderEventPlugin');
74 UIManager = require('UIManager');
75 - createReactNativeComponentClass = require('createReactNativeComponentClass');
75 + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass');
76 });
77
78 it('fails if unknown/unsupported event types are dispatched', () => {
packages/react-native-renderer/src/__tests__/ReactNativeMount-test.js
+1 -1
@@ -21,7 +21,7 @@ describe('ReactNative', () => {
21 React = require('react');
22 ReactNative = require('react-native-renderer');
23 UIManager = require('UIManager');
24 - createReactNativeComponentClass = require('createReactNativeComponentClass');
24 + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass');
25 });
26
27 it('should be able to create and render a native component', () => {
packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.js
+1 -1
@@ -17,7 +17,7 @@ describe('createReactNativeComponentClass', () => {
17 beforeEach(() => {
18 jest.resetModules();
19
20 - createReactNativeComponentClass = require('createReactNativeComponentClass');
20 + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass');
21 React = require('react');
22 ReactNative = require('react-native-renderer');
23 });
packages/react-native-renderer/src/createReactNativeComponentClass.js
+2 -3
@@ -4,15 +4,14 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule createReactNativeComponentClass
7 * @flow
8 */
9
10 'use strict';
11
13 -const ReactNativeViewConfigRegistry = require('ReactNativeViewConfigRegistry');
12 +const ReactNativeViewConfigRegistry = require('./ReactNativeViewConfigRegistry');
13
15 -import type {ViewConfigGetter} from 'ReactNativeTypes';
14 +import type {ViewConfigGetter} from './ReactNativeTypes';
15
16 /**
17 * Creates a renderable ReactNative host component.
packages/react-native-renderer/src/findNodeHandle.js
+5 -6
@@ -4,23 +4,22 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule findNodeHandle
7 * @flow
8 */
9
10 'use strict';
11
13 -var ReactInstanceMap = require('ReactInstanceMap');
14 -var ReactNativeFiberRenderer = require('ReactNativeFiberRenderer');
15 -var {ReactCurrentOwner} = require('ReactGlobalSharedState');
16 -var getComponentName = require('getComponentName');
12 +var ReactInstanceMap = require('shared/ReactInstanceMap');
13 +var ReactNativeFiberRenderer = require('./ReactNativeFiberRenderer');
14 +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState');
15 +var getComponentName = require('shared/getComponentName');
16 var invariant = require('fbjs/lib/invariant');
17
18 if (__DEV__) {
19 var warning = require('fbjs/lib/warning');
20 }
21
23 -import type {Fiber} from 'ReactFiber';
22 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
23
24 /**
25 * ReactNative vs ReactWeb
packages/react-native-renderer/src/findNumericNodeHandle.js
+1 -2
@@ -4,12 +4,11 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule findNumericNodeHandle
7 * @flow
8 */
9 'use strict';
10
12 -var findNodeHandle = require('findNodeHandle');
11 +var findNodeHandle = require('./findNodeHandle');
12
13 /**
14 * External users of findNodeHandle() expect the host tag number return type.
packages/react-native-renderer/src/takeSnapshot.js
+2 -2
@@ -4,14 +4,14 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule takeSnapshot
7 * @flow
8 */
9 'use strict';
10
11 +// Module provided by RN:
12 const UIManager = require('UIManager');
13
14 -const findNumericNodeHandle = require('findNumericNodeHandle');
14 +const findNumericNodeHandle = require('./findNumericNodeHandle');
15
16 /**
17 * Capture an image of the screen, window or an individual view. The image
packages/react-noop-renderer/package.json
+5 -1
@@ -8,7 +8,11 @@
8 "license": "MIT",
9 "dependencies": {
10 "fbjs": "^0.8.16",
11 - "object-assign": "^4.1.1"
11 + "object-assign": "^4.1.1",
12 + "prop-types": "^15.6.0"
13 + },
14 + "peerDependencies": {
15 + "react": "^16.0.0"
16 },
17 "files": [
18 "LICENSE",
packages/react-noop-renderer/src/ReactNoop.js
+6 -6
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNoop
7 * @flow
8 */
9
@@ -17,13 +16,14 @@
16
17 'use strict';
18
20 -import type {Fiber} from 'ReactFiber';
21 -import type {UpdateQueue} from 'ReactFiberUpdateQueue';
19 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
20 +import type {UpdateQueue} from 'react-reconciler/src/ReactFiberUpdateQueue';
21
23 -var ReactFeatureFlags = require('ReactFeatureFlags');
24 -var ReactFiberInstrumentation = require('ReactFiberInstrumentation');
22 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
23 +// TODO: direct imports like some-package/src/* are bad. Fix me.
24 +var ReactFiberInstrumentation = require('react-reconciler/src/ReactFiberInstrumentation');
25 var ReactFiberReconciler = require('react-reconciler');
26 -var ReactInstanceMap = require('ReactInstanceMap');
26 +var ReactInstanceMap = require('shared/ReactInstanceMap');
27 var emptyObject = require('fbjs/lib/emptyObject');
28
29 var expect = require('jest-matchers');
packages/react-reconciler/package.json
+2 -1
@@ -25,7 +25,8 @@
25 "dependencies": {
26 "fbjs": "^0.8.16",
27 "loose-envify": "^1.1.0",
28 - "object-assign": "^4.1.1"
28 + "object-assign": "^4.1.1",
29 + "prop-types": "^15.6.0"
30 },
31 "browserify": {
32 "transform": [
packages/react-reconciler/src/ReactChildFiber.js
+12 -11
@@ -4,29 +4,30 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactChildFiber
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {ReactElement} from 'ReactElementType';
14 -import type {ReactCoroutine, ReactPortal, ReactYield} from 'ReactTypes';
15 -import type {Fiber} from 'ReactFiber';
16 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
12 +import type {ReactElement} from 'shared/ReactElementType';
13 +import type {ReactCoroutine, ReactPortal, ReactYield} from 'shared/ReactTypes';
14 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
15 +import type {
16 + ExpirationTime,
17 +} from 'react-reconciler/src/ReactFiberExpirationTime';
18
18 -var {REACT_COROUTINE_TYPE, REACT_YIELD_TYPE} = require('ReactCoroutine');
19 -var {REACT_PORTAL_TYPE} = require('ReactPortal');
19 +var {REACT_COROUTINE_TYPE, REACT_YIELD_TYPE} = require('./ReactCoroutine');
20 +var {REACT_PORTAL_TYPE} = require('./ReactPortal');
21
21 -var ReactFiber = require('ReactFiber');
22 -var ReactTypeOfSideEffect = require('ReactTypeOfSideEffect');
23 -var ReactTypeOfWork = require('ReactTypeOfWork');
22 +var ReactFiber = require('./ReactFiber');
23 +var ReactTypeOfSideEffect = require('shared/ReactTypeOfSideEffect');
24 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
25
26 var emptyObject = require('fbjs/lib/emptyObject');
27 var invariant = require('fbjs/lib/invariant');
28
29 if (__DEV__) {
29 - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber');
30 + var {getCurrentFiberStackAddendum} = require('./ReactDebugCurrentFiber');
31 var warning = require('fbjs/lib/warning');
32 var didWarnAboutMaps = false;
33 /**
packages/react-reconciler/src/ReactCoroutine.js
+5 -2
@@ -4,13 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactCoroutine
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {ReactCoroutine, ReactNodeList, ReactYield} from 'ReactTypes';
12 +import type {
13 + ReactCoroutine,
14 + ReactNodeList,
15 + ReactYield,
16 +} from 'shared/ReactTypes';
17
18 // The Symbol used to tag the special React types. If there is no native Symbol
19 // nor polyfill, then a plain number is used for performance.
packages/react-reconciler/src/ReactDebugCurrentFiber.js
+4 -5
@@ -4,23 +4,22 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDebugCurrentFiber
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from './ReactFiber';
13
14 type LifeCyclePhase = 'render' | 'getChildContext';
15
17 -var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState');
16 +var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState');
17
18 if (__DEV__) {
20 - var getComponentName = require('getComponentName');
19 + var getComponentName = require('shared/getComponentName');
20 var {
21 getStackAddendumByWorkInProgressFiber,
23 - } = require('ReactFiberComponentTreeHook');
22 + } = require('shared/ReactFiberComponentTreeHook');
23 }
24
25 function getCurrentFiberOwnerName(): string | null {
packages/react-reconciler/src/ReactDebugFiberPerf.js
+3 -4
@@ -4,11 +4,10 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDebugFiberPerf
7 * @flow
8 */
9
11 -import type {Fiber} from 'ReactFiber';
10 +import type {Fiber} from './ReactFiber';
11
12 type MeasurementPhase =
13 | 'componentWillMount'
@@ -31,9 +30,9 @@ if (__DEV__) {
30 HostPortal,
31 YieldComponent,
32 Fragment,
34 - } = require('ReactTypeOfWork');
33 + } = require('shared/ReactTypeOfWork');
34
36 - const getComponentName = require('getComponentName');
35 + const getComponentName = require('shared/getComponentName');
36
37 // Prefix measurements so that it's possible to filter them.
38 // Longer prefixes are hard to read in DevTools.
packages/react-reconciler/src/ReactFiber.js
+12 -13
@@ -4,24 +4,23 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiber
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {ReactElement, Source} from 'ReactElementType';
12 +import type {ReactElement, Source} from 'shared/ReactElementType';
13 import type {
14 ReactCoroutine,
15 ReactFragment,
16 ReactPortal,
17 ReactYield,
19 -} from 'ReactTypes';
20 -import type {TypeOfWork} from 'ReactTypeOfWork';
21 -import type {TypeOfInternalContext} from 'ReactTypeOfInternalContext';
22 -import type {TypeOfSideEffect} from 'ReactTypeOfSideEffect';
23 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
24 -import type {UpdateQueue} from 'ReactFiberUpdateQueue';
18 +} from 'shared/ReactTypes';
19 +import type {TypeOfWork} from 'shared/ReactTypeOfWork';
20 +import type {TypeOfInternalContext} from './ReactTypeOfInternalContext';
21 +import type {TypeOfSideEffect} from 'shared/ReactTypeOfSideEffect';
22 +import type {ExpirationTime} from './ReactFiberExpirationTime';
23 +import type {UpdateQueue} from './ReactFiberUpdateQueue';
24
25 var {
26 IndeterminateComponent,
@@ -33,18 +32,18 @@ var {
32 CoroutineComponent,
33 YieldComponent,
34 Fragment,
36 -} = require('ReactTypeOfWork');
35 +} = require('shared/ReactTypeOfWork');
36
38 -var {NoWork} = require('ReactFiberExpirationTime');
37 +var {NoWork} = require('./ReactFiberExpirationTime');
38
40 -var {NoContext} = require('ReactTypeOfInternalContext');
39 +var {NoContext} = require('./ReactTypeOfInternalContext');
40
42 -var {NoEffect} = require('ReactTypeOfSideEffect');
41 +var {NoEffect} = require('shared/ReactTypeOfSideEffect');
42
43 var invariant = require('fbjs/lib/invariant');
44
45 if (__DEV__) {
47 - var getComponentName = require('getComponentName');
46 + var getComponentName = require('shared/getComponentName');
47 var hasBadMapPolyfill = false;
48 try {
49 const nonExtensibleObject = Object.preventExtensions({});
packages/react-reconciler/src/ReactFiberBeginWork.js
+16 -17
@@ -4,28 +4,27 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberBeginWork
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig} from 'react-reconciler';
14 -import type {ReactCoroutine} from 'ReactTypes';
15 -import type {Fiber} from 'ReactFiber';
16 -import type {HostContext} from 'ReactFiberHostContext';
17 -import type {HydrationContext} from 'ReactFiberHydrationContext';
18 -import type {FiberRoot} from 'ReactFiberRoot';
19 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
13 +import type {ReactCoroutine} from 'shared/ReactTypes';
14 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
15 +import type {HostContext} from './ReactFiberHostContext';
16 +import type {HydrationContext} from './ReactFiberHydrationContext';
17 +import type {FiberRoot} from './ReactFiberRoot';
18 +import type {ExpirationTime} from './ReactFiberExpirationTime';
19
20 var {
21 mountChildFibersInPlace,
22 reconcileChildFibers,
23 reconcileChildFibersInPlace,
24 cloneChildFibers,
26 -} = require('ReactChildFiber');
27 -var {processUpdateQueue} = require('ReactFiberUpdateQueue');
28 -var ReactTypeOfWork = require('ReactTypeOfWork');
25 +} = require('./ReactChildFiber');
26 +var {processUpdateQueue} = require('./ReactFiberUpdateQueue');
27 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
28 var {
29 getMaskedContext,
30 getUnmaskedContext,
@@ -33,7 +32,7 @@ var {
32 pushContextProvider,
33 pushTopLevelContextObject,
34 invalidateContextProvider,
36 -} = require('ReactFiberContext');
35 +} = require('./ReactFiberContext');
36 var {
37 IndeterminateComponent,
38 FunctionalComponent,
@@ -47,21 +46,21 @@ var {
46 YieldComponent,
47 Fragment,
48 } = ReactTypeOfWork;
50 -var {NoWork, Never} = require('ReactFiberExpirationTime');
49 +var {NoWork, Never} = require('./ReactFiberExpirationTime');
50 var {
51 PerformedWork,
52 Placement,
53 ContentReset,
54 Err,
55 Ref,
57 -} = require('ReactTypeOfSideEffect');
58 -var ReactFiberClassComponent = require('ReactFiberClassComponent');
59 -var {ReactCurrentOwner} = require('ReactGlobalSharedState');
56 +} = require('shared/ReactTypeOfSideEffect');
57 +var ReactFiberClassComponent = require('./ReactFiberClassComponent');
58 +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState');
59 var invariant = require('fbjs/lib/invariant');
60
61 if (__DEV__) {
63 - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber');
64 - var {cancelWorkTimer} = require('ReactDebugFiberPerf');
62 + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber');
63 + var {cancelWorkTimer} = require('./ReactDebugFiberPerf');
64 var warning = require('fbjs/lib/warning');
65
66 var warnedAboutStatelessRefs = {};
packages/react-reconciler/src/ReactFiberClassComponent.js
+12 -13
@@ -4,35 +4,34 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberClassComponent
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
14 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
12 +import type {Fiber} from './ReactFiber';
13 +import type {ExpirationTime} from './ReactFiberExpirationTime';
14
16 -var {Update} = require('ReactTypeOfSideEffect');
15 +var {Update} = require('shared/ReactTypeOfSideEffect');
16
18 -var ReactFeatureFlags = require('ReactFeatureFlags');
19 -var {AsyncUpdates} = require('ReactTypeOfInternalContext');
17 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
18 +var {AsyncUpdates} = require('./ReactTypeOfInternalContext');
19
20 var {
21 cacheContext,
22 getMaskedContext,
23 getUnmaskedContext,
24 isContextConsumer,
26 -} = require('ReactFiberContext');
25 +} = require('./ReactFiberContext');
26 var {
27 insertUpdateIntoFiber,
28 processUpdateQueue,
30 -} = require('ReactFiberUpdateQueue');
31 -var {hasContextChanged} = require('ReactFiberContext');
32 -var {isMounted} = require('ReactFiberTreeReflection');
33 -var ReactInstanceMap = require('ReactInstanceMap');
29 +} = require('./ReactFiberUpdateQueue');
30 +var {hasContextChanged} = require('./ReactFiberContext');
31 +var {isMounted} = require('shared/ReactFiberTreeReflection');
32 +var ReactInstanceMap = require('shared/ReactInstanceMap');
33 var emptyObject = require('fbjs/lib/emptyObject');
35 -var getComponentName = require('getComponentName');
34 +var getComponentName = require('shared/getComponentName');
35 var shallowEqual = require('fbjs/lib/shallowEqual');
36 var invariant = require('fbjs/lib/invariant');
37
@@ -40,7 +39,7 @@ const fakeInternalInstance = {};
39 const isArray = Array.isArray;
40
41 if (__DEV__) {
43 - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf');
42 + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf');
43 var warning = require('fbjs/lib/warning');
44 var warnOnInvalidCallback = function(callback: mixed, callerName: string) {
45 warning(
packages/react-reconciler/src/ReactFiberCommitWork.js
+8 -9
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberCommitWork
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig} from 'react-reconciler';
14 -import type {Fiber} from 'ReactFiber';
13 +import type {Fiber} from './ReactFiber';
14
16 -var ReactFeatureFlags = require('ReactFeatureFlags');
17 -var ReactTypeOfWork = require('ReactTypeOfWork');
15 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
16 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
17 var {
18 ClassComponent,
19 HostRoot,
@@ -23,20 +22,20 @@ var {
22 HostPortal,
23 CoroutineComponent,
24 } = ReactTypeOfWork;
26 -var {commitCallbacks} = require('ReactFiberUpdateQueue');
27 -var {onCommitUnmount} = require('ReactFiberDevToolsHook');
25 +var {commitCallbacks} = require('./ReactFiberUpdateQueue');
26 +var {onCommitUnmount} = require('./ReactFiberDevToolsHook');
27 var {
28 invokeGuardedCallback,
29 hasCaughtError,
30 clearCaughtError,
32 -} = require('ReactErrorUtils');
31 +} = require('shared/ReactErrorUtils');
32
34 -var {Placement, Update, ContentReset} = require('ReactTypeOfSideEffect');
33 +var {Placement, Update, ContentReset} = require('shared/ReactTypeOfSideEffect');
34
35 var invariant = require('fbjs/lib/invariant');
36
37 if (__DEV__) {
39 - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf');
38 + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf');
39 }
40
41 module.exports = function<T, P, I, TI, PI, C, CC, CX, PL>(
packages/react-reconciler/src/ReactFiberCompleteWork.js
+12 -13
@@ -4,29 +4,28 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberCompleteWork
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig} from 'react-reconciler';
14 -import type {ReactCoroutine} from 'ReactTypes';
15 -import type {Fiber} from 'ReactFiber';
16 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
17 -import type {HostContext} from 'ReactFiberHostContext';
18 -import type {HydrationContext} from 'ReactFiberHydrationContext';
19 -import type {FiberRoot} from 'ReactFiberRoot';
13 +import type {ReactCoroutine} from 'shared/ReactTypes';
14 +import type {Fiber} from './ReactFiber';
15 +import type {ExpirationTime} from './ReactFiberExpirationTime';
16 +import type {HostContext} from './ReactFiberHostContext';
17 +import type {HydrationContext} from './ReactFiberHydrationContext';
18 +import type {FiberRoot} from './ReactFiberRoot';
19
21 -var {reconcileChildFibers} = require('ReactChildFiber');
20 +var {reconcileChildFibers} = require('./ReactChildFiber');
21 var {
22 popContextProvider,
23 popTopLevelContextObject,
25 -} = require('ReactFiberContext');
26 -var ReactFeatureFlags = require('ReactFeatureFlags');
27 -var ReactTypeOfWork = require('ReactTypeOfWork');
28 -var ReactTypeOfSideEffect = require('ReactTypeOfSideEffect');
29 -var ReactFiberExpirationTime = require('ReactFiberExpirationTime');
24 +} = require('./ReactFiberContext');
25 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
26 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
27 +var ReactTypeOfSideEffect = require('shared/ReactTypeOfSideEffect');
28 +var ReactFiberExpirationTime = require('./ReactFiberExpirationTime');
29 var {
30 IndeterminateComponent,
31 FunctionalComponent,
packages/react-reconciler/src/ReactFiberContext.js
+8 -9
@@ -4,27 +4,26 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberContext
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
14 -import type {StackCursor} from 'ReactFiberStack';
12 +import type {Fiber} from './ReactFiber';
13 +import type {StackCursor} from './ReactFiberStack';
14
15 var emptyObject = require('fbjs/lib/emptyObject');
17 -var getComponentName = require('getComponentName');
16 +var getComponentName = require('shared/getComponentName');
17 var invariant = require('fbjs/lib/invariant');
19 -var {isFiberMounted} = require('ReactFiberTreeReflection');
20 -var {ClassComponent, HostRoot} = require('ReactTypeOfWork');
21 -const {createCursor, pop, push} = require('ReactFiberStack');
18 +var {isFiberMounted} = require('shared/ReactFiberTreeReflection');
19 +var {ClassComponent, HostRoot} = require('shared/ReactTypeOfWork');
20 +const {createCursor, pop, push} = require('./ReactFiberStack');
21
22 if (__DEV__) {
23 var warning = require('fbjs/lib/warning');
24 var checkPropTypes = require('prop-types/checkPropTypes');
26 - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber');
27 - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf');
25 + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber');
26 + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf');
27 var warnedAboutMissingGetChildContext = {};
28 }
29
packages/react-reconciler/src/ReactFiberDevToolsHook.js
+2 -3
@@ -4,14 +4,13 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberDevToolsHook
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
14 -import type {FiberRoot} from 'ReactFiberRoot';
12 +import type {Fiber} from './ReactFiber';
13 +import type {FiberRoot} from './ReactFiberRoot';
14
15 declare var __REACT_DEVTOOLS_GLOBAL_HOOK__: Object | void;
16
packages/react-reconciler/src/ReactFiberErrorLogger.js
+1 -2
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberErrorLogger
7 * @flow
8 */
9
@@ -12,7 +11,7 @@
11
12 const invariant = require('fbjs/lib/invariant');
13
15 -import type {CapturedError} from 'ReactFiberScheduler';
14 +import type {CapturedError} from './ReactFiberScheduler';
15
16 const defaultShowDialog = (capturedError: CapturedError) => true;
17
packages/react-reconciler/src/ReactFiberExpirationTime.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberExpirationTime
7 * @flow
8 */
9
packages/react-reconciler/src/ReactFiberHostContext.js
+3 -4
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberHostContext
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig} from 'react-reconciler';
14 -import type {Fiber} from 'ReactFiber';
15 -import type {StackCursor} from 'ReactFiberStack';
13 +import type {Fiber} from './ReactFiber';
14 +import type {StackCursor} from './ReactFiberStack';
15
17 -const {createCursor, pop, push} = require('ReactFiberStack');
16 +const {createCursor, pop, push} = require('./ReactFiberStack');
17
18 const invariant = require('fbjs/lib/invariant');
19
packages/react-reconciler/src/ReactFiberHydrationContext.js
+4 -5
@@ -4,21 +4,20 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberHydrationContext
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig} from 'react-reconciler';
14 -import type {Fiber} from 'ReactFiber';
13 +import type {Fiber} from './ReactFiber';
14
15 var invariant = require('fbjs/lib/invariant');
16
18 -const {HostComponent, HostText, HostRoot} = require('ReactTypeOfWork');
19 -const {Deletion, Placement} = require('ReactTypeOfSideEffect');
17 +const {HostComponent, HostText, HostRoot} = require('shared/ReactTypeOfWork');
18 +const {Deletion, Placement} = require('shared/ReactTypeOfSideEffect');
19
21 -const {createFiberFromHostInstanceForDeletion} = require('ReactFiber');
20 +const {createFiberFromHostInstanceForDeletion} = require('./ReactFiber');
21
22 export type HydrationContext<C, CX> = {
23 enterHydrationState(fiber: Fiber): boolean,
packages/react-reconciler/src/ReactFiberInstrumentation.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberInstrumentation
7 * @flow
8 */
9
packages/react-reconciler/src/ReactFiberReconciler.js
+14 -14
@@ -9,35 +9,35 @@
9
10 'use strict';
11
12 -import type {Fiber} from 'ReactFiber';
13 -import type {FiberRoot} from 'ReactFiberRoot';
14 -import type {ReactNodeList} from 'ReactTypes';
12 +import type {Fiber} from './ReactFiber';
13 +import type {FiberRoot} from './ReactFiberRoot';
14 +import type {ReactNodeList} from 'shared/ReactTypes';
15
16 -var ReactFeatureFlags = require('ReactFeatureFlags');
16 +var ReactFeatureFlags = require('shared/ReactFeatureFlags');
17 var {
18 findCurrentUnmaskedContext,
19 isContextProvider,
20 processChildContext,
21 -} = require('ReactFiberContext');
22 -var {createFiberRoot} = require('ReactFiberRoot');
23 -var ReactFiberScheduler = require('ReactFiberScheduler');
24 -var ReactInstanceMap = require('ReactInstanceMap');
25 -var {HostComponent} = require('ReactTypeOfWork');
26 -var {insertUpdateIntoFiber} = require('ReactFiberUpdateQueue');
21 +} = require('./ReactFiberContext');
22 +var {createFiberRoot} = require('./ReactFiberRoot');
23 +var ReactFiberScheduler = require('./ReactFiberScheduler');
24 +var ReactInstanceMap = require('shared/ReactInstanceMap');
25 +var {HostComponent} = require('shared/ReactTypeOfWork');
26 +var {insertUpdateIntoFiber} = require('./ReactFiberUpdateQueue');
27 var emptyObject = require('fbjs/lib/emptyObject');
28
29 if (__DEV__) {
30 var warning = require('fbjs/lib/warning');
31 - var ReactFiberInstrumentation = require('ReactFiberInstrumentation');
32 - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber');
33 - var getComponentName = require('getComponentName');
31 + var ReactFiberInstrumentation = require('./ReactFiberInstrumentation');
32 + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber');
33 + var getComponentName = require('shared/getComponentName');
34 var didWarnAboutNestedUpdates = false;
35 }
36
37 var {
38 findCurrentHostFiber,
39 findCurrentHostFiberWithNoPortals,
40 -} = require('ReactFiberTreeReflection');
40 +} = require('shared/ReactFiberTreeReflection');
41
42 export type Deadline = {
43 timeRemaining: () => number,
packages/react-reconciler/src/ReactFiberRoot.js
+4 -5
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberRoot
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
14 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
12 +import type {Fiber} from './ReactFiber';
13 +import type {ExpirationTime} from './ReactFiberExpirationTime';
14
16 -const {createHostRootFiber} = require('ReactFiber');
17 -const {NoWork} = require('ReactFiberExpirationTime');
15 +const {createHostRootFiber} = require('./ReactFiber');
16 +const {NoWork} = require('./ReactFiberExpirationTime');
17
18 export type FiberRoot = {
19 // Any additional information from the host associated with this root.
packages/react-reconciler/src/ReactFiberScheduler.js
+27 -28
@@ -4,17 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberScheduler
7 * @flow
8 */
9
10 'use strict';
11
12 import type {HostConfig, Deadline} from 'react-reconciler';
14 -import type {Fiber} from 'ReactFiber';
15 -import type {FiberRoot} from 'ReactFiberRoot';
16 -import type {HydrationContext} from 'ReactFiberHydrationContext';
17 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
13 +import type {Fiber} from './ReactFiber';
14 +import type {FiberRoot} from './ReactFiberRoot';
15 +import type {HydrationContext} from './ReactFiberHydrationContext';
16 +import type {ExpirationTime} from './ReactFiberExpirationTime';
17
18 export type CapturedError = {
19 componentName: ?string,
@@ -30,28 +29,28 @@ export type HandleErrorInfo = {
29 componentStack: string,
30 };
31
33 -var {popContextProvider} = require('ReactFiberContext');
34 -const {reset} = require('ReactFiberStack');
32 +var {popContextProvider} = require('./ReactFiberContext');
33 +const {reset} = require('./ReactFiberStack');
34 var {
35 getStackAddendumByWorkInProgressFiber,
37 -} = require('ReactFiberComponentTreeHook');
38 -var {logCapturedError} = require('ReactFiberErrorLogger');
36 +} = require('shared/ReactFiberComponentTreeHook');
37 +var {logCapturedError} = require('./ReactFiberErrorLogger');
38 var {
39 invokeGuardedCallback,
40 hasCaughtError,
41 clearCaughtError,
43 -} = require('ReactErrorUtils');
42 +} = require('shared/ReactErrorUtils');
43
45 -var ReactFiberBeginWork = require('ReactFiberBeginWork');
46 -var ReactFiberCompleteWork = require('ReactFiberCompleteWork');
47 -var ReactFiberCommitWork = require('ReactFiberCommitWork');
48 -var ReactFiberHostContext = require('ReactFiberHostContext');
49 -var ReactFiberHydrationContext = require('ReactFiberHydrationContext');
50 -var {ReactCurrentOwner} = require('ReactGlobalSharedState');
51 -var getComponentName = require('getComponentName');
44 +var ReactFiberBeginWork = require('./ReactFiberBeginWork');
45 +var ReactFiberCompleteWork = require('./ReactFiberCompleteWork');
46 +var ReactFiberCommitWork = require('./ReactFiberCommitWork');
47 +var ReactFiberHostContext = require('./ReactFiberHostContext');
48 +var ReactFiberHydrationContext = require('./ReactFiberHydrationContext');
49 +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState');
50 +var getComponentName = require('shared/getComponentName');
51
53 -var {createWorkInProgress} = require('ReactFiber');
54 -var {onCommitRoot} = require('ReactFiberDevToolsHook');
52 +var {createWorkInProgress} = require('./ReactFiber');
53 +var {onCommitRoot} = require('./ReactFiberDevToolsHook');
54
55 var {
56 NoWork,
@@ -60,9 +59,9 @@ var {
59 Never,
60 msToExpirationTime,
61 computeExpirationBucket,
63 -} = require('ReactFiberExpirationTime');
62 +} = require('./ReactFiberExpirationTime');
63
65 -var {AsyncUpdates} = require('ReactTypeOfInternalContext');
64 +var {AsyncUpdates} = require('./ReactTypeOfInternalContext');
65
66 var {
67 PerformedWork,
@@ -74,25 +73,25 @@ var {
73 Callback,
74 Err,
75 Ref,
77 -} = require('ReactTypeOfSideEffect');
76 +} = require('shared/ReactTypeOfSideEffect');
77
78 var {
79 HostRoot,
80 HostComponent,
81 HostPortal,
82 ClassComponent,
84 -} = require('ReactTypeOfWork');
83 +} = require('shared/ReactTypeOfWork');
84
86 -var {getUpdateExpirationTime} = require('ReactFiberUpdateQueue');
85 +var {getUpdateExpirationTime} = require('./ReactFiberUpdateQueue');
86
88 -var {resetContext} = require('ReactFiberContext');
87 +var {resetContext} = require('./ReactFiberContext');
88
89 var invariant = require('fbjs/lib/invariant');
90
91 if (__DEV__) {
92 var warning = require('fbjs/lib/warning');
94 - var ReactFiberInstrumentation = require('ReactFiberInstrumentation');
95 - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber');
93 + var ReactFiberInstrumentation = require('./ReactFiberInstrumentation');
94 + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber');
95 var {
96 recordEffect,
97 recordScheduleUpdate,
@@ -107,7 +106,7 @@ if (__DEV__) {
106 stopCommitHostEffectsTimer,
107 startCommitLifeCyclesTimer,
108 stopCommitLifeCyclesTimer,
110 - } = require('ReactDebugFiberPerf');
109 + } = require('./ReactDebugFiberPerf');
110
111 var didWarnAboutStateTransition = false;
112
packages/react-reconciler/src/ReactFiberStack.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberStack
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from './ReactFiber';
13
14 export type StackCursor<T> = {
15 current: T,
packages/react-reconciler/src/ReactFiberUpdateQueue.js
+5 -6
@@ -4,20 +4,19 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberUpdateQueue
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
14 -import type {ExpirationTime} from 'ReactFiberExpirationTime';
12 +import type {Fiber} from './ReactFiber';
13 +import type {ExpirationTime} from './ReactFiberExpirationTime';
14
16 -const {Callback: CallbackEffect} = require('ReactTypeOfSideEffect');
15 +const {Callback: CallbackEffect} = require('shared/ReactTypeOfSideEffect');
16
18 -const {NoWork} = require('ReactFiberExpirationTime');
17 +const {NoWork} = require('./ReactFiberExpirationTime');
18
20 -const {ClassComponent, HostRoot} = require('ReactTypeOfWork');
19 +const {ClassComponent, HostRoot} = require('shared/ReactTypeOfWork');
20
21 const invariant = require('fbjs/lib/invariant');
22
packages/react-reconciler/src/ReactPortal.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactPortal
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {ReactNodeList, ReactPortal} from 'ReactTypes';
12 +import type {ReactNodeList, ReactPortal} from 'shared/ReactTypes';
13
14 // The Symbol used to tag the special React types. If there is no native Symbol
15 // nor polyfill, then a plain number is used for performance.
packages/react-reconciler/src/ReactTypeOfInternalContext.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactTypeOfInternalContext
7 * @flow
8 */
9
packages/react-reconciler/src/__tests__/ReactCoroutine-test.js
+2 -1
@@ -19,7 +19,8 @@ describe('ReactCoroutine', () => {
19 React = require('react');
20 ReactNoop = require('react-noop-renderer');
21 // TODO: can we express this test with only public API?
22 - ReactCoroutine = require('ReactCoroutine');
22 + // TODO: direct imports like some-package/src/* are bad. Fix me.
23 + ReactCoroutine = require('react-reconciler/src/ReactCoroutine');
24 });
25
26 function div(...children) {
packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.js
+6 -3
@@ -935,9 +935,11 @@ describe('ReactIncrementalErrorHandling', () => {
935 function initReactFiberErrorLoggerMock(mock) {
936 jest.resetModules();
937 if (mock) {
938 - jest.mock('ReactFiberErrorLogger');
938 + // TODO: direct imports like some-package/src/* are bad. Fix me.
939 + jest.mock('react-reconciler/src/ReactFiberErrorLogger');
940 } else {
940 - jest.unmock('ReactFiberErrorLogger');
941 + // TODO: direct imports like some-package/src/* are bad. Fix me.
942 + jest.unmock('react-reconciler/src/ReactFiberErrorLogger');
943 }
944 React = require('react');
945 ReactNoop = require('react-noop-renderer');
@@ -1033,7 +1035,8 @@ describe('ReactIncrementalErrorHandling', () => {
1035
1036 const logCapturedErrorCalls = [];
1037
1036 - const ReactFiberErrorLogger = require('ReactFiberErrorLogger');
1038 + // TODO: direct imports like some-package/src/* are bad. Fix me.
1039 + const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger');
1040 ReactFiberErrorLogger.logCapturedError.mockImplementation(
1041 capturedError => {
1042 logCapturedErrorCalls.push(capturedError);
packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.js
+2 -2
@@ -116,8 +116,8 @@ describe('ReactDebugFiberPerf', () => {
116 React = require('react');
117 ReactNoop = require('react-noop-renderer');
118 // TODO: can we express this test with only public API?
119 - ReactCoroutine = require('ReactCoroutine');
120 - ReactPortal = require('ReactPortal');
119 + ReactCoroutine = require('react-reconciler/src/ReactCoroutine');
120 + ReactPortal = require('react-reconciler/src/ReactPortal');
121 PropTypes = require('prop-types');
122 });
123
packages/react-reconciler/src/__tests__/ReactPersistent-test.js
+2 -2
@@ -17,14 +17,14 @@ describe('ReactPersistent', () => {
17 beforeEach(() => {
18 jest.resetModules();
19
20 - const ReactFeatureFlags = require('ReactFeatureFlags');
20 + const ReactFeatureFlags = require('shared/ReactFeatureFlags');
21 ReactFeatureFlags.enableMutableReconciler = false;
22 ReactFeatureFlags.enablePersistentReconciler = true;
23 ReactFeatureFlags.enableNoopReconciler = false;
24
25 React = require('react');
26 ReactNoop = require('react-noop-renderer');
27 - ReactPortal = require('ReactPortal');
27 + ReactPortal = require('react-reconciler/src/ReactPortal');
28 });
29
30 const DEFAULT_ROOT_ID = 'persistent-test';
packages/react-rt-renderer/package.json
+5 -1
@@ -5,6 +5,10 @@
5 "repository": "facebook/react",
6 "dependencies": {
7 "fbjs": "^0.8.16",
8 - "object-assign": "^4.1.1"
8 + "object-assign": "^4.1.1",
9 + "prop-types": "^15.6.0"
10 + },
11 + "peerDependencies": {
12 + "react": "^16.0.0"
13 }
14 }
packages/react-rt-renderer/src/ReactNativeRT.js
+15 -13
@@ -4,25 +4,27 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTFiberEntry
7 * @flow
8 */
9
10 'use strict';
11
13 -const ReactFiberErrorLogger = require('ReactFiberErrorLogger');
14 -const ReactGenericBatching = require('ReactGenericBatching');
15 -const ReactNativeFiberErrorDialog = require('ReactNativeFiberErrorDialog'); // Reused from RN, seems fine?
16 -const ReactPortal = require('ReactPortal');
17 -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree');
18 -const ReactNativeRTFiberRenderer = require('ReactNativeRTFiberRenderer');
19 -const ReactNativeRTFiberInspector = require('ReactNativeRTFiberInspector');
20 -const ReactVersion = require('ReactVersion');
12 +// TODO: direct imports like some-package/src/* are bad. Fix me.
13 +const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger');
14 +const ReactNativeFiberErrorDialog = require('react-native-renderer/src/ReactNativeFiberErrorDialog');
15 +const ReactPortal = require('react-reconciler/src/ReactPortal');
16 +const {
17 + injectInternals,
18 +} = require('react-reconciler/src/ReactFiberDevToolsHook');
19
22 -const {injectInternals} = require('ReactFiberDevToolsHook');
20 +const ReactGenericBatching = require('events/ReactGenericBatching');
21 +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree');
22 +const ReactNativeRTFiberRenderer = require('./ReactNativeRTFiberRenderer');
23 +const ReactNativeRTFiberInspector = require('./ReactNativeRTFiberInspector');
24 +const ReactVersion = require('shared/ReactVersion');
25
24 -import type {ReactNativeRTType} from 'ReactNativeRTTypes';
25 -import type {ReactNodeList} from 'ReactTypes';
26 +import type {ReactNativeRTType} from './ReactNativeRTTypes';
27 +import type {ReactNodeList} from 'shared/ReactTypes';
28
29 /**
30 * Make sure essential globals are available and are patched correctly. Please don't remove this
@@ -32,7 +34,7 @@ import type {ReactNodeList} from 'ReactTypes';
34 */
35 require('InitializeCore');
36
35 -require('ReactNativeRTEventEmitter');
37 +require('./ReactNativeRTEventEmitter');
38
39 ReactGenericBatching.injection.injectFiberBatchedUpdates(
40 ReactNativeRTFiberRenderer.batchedUpdates,
packages/react-rt-renderer/src/ReactNativeRTComponentTree.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTComponentTree
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
13
14 var instanceCache: {[key: number]: Fiber} = {};
15 var instanceProps: {[key: number]: Object} = {};
packages/react-rt-renderer/src/ReactNativeRTEventEmitter.js
+4 -3
@@ -4,13 +4,14 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTEventEmitter
7 * @flow
8 */
9 'use strict';
10
12 -var ReactNativeRTComponentTree = require('ReactNativeRTComponentTree');
13 -var ReactGenericBatching = require('ReactGenericBatching');
11 +var ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree');
12 +var ReactGenericBatching = require('events/ReactGenericBatching');
13 +
14 +// Module provided by RN:
15 var BatchedBridge = require('BatchedBridge');
16
17 var ReactNativeRTEventEmitter = {
packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js
+4 -5
@@ -4,16 +4,15 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTFiberInspector
7 * @flow
8 */
9 'use strict';
10
12 -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree');
13 -const ReactFiberTreeReflection = require('ReactFiberTreeReflection');
14 -const getComponentName = require('getComponentName');
11 +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree');
12 +const ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection');
13 +const getComponentName = require('shared/getComponentName');
14 const emptyObject = require('fbjs/lib/emptyObject');
16 -const ReactTypeOfWork = require('ReactTypeOfWork');
15 +const ReactTypeOfWork = require('shared/ReactTypeOfWork');
16 const invariant = require('fbjs/lib/invariant');
17
18 const {getFiberFromTag} = ReactNativeRTComponentTree;
packages/react-rt-renderer/src/ReactNativeRTFiberRenderer.js
+4 -3
@@ -4,15 +4,16 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTFiberRenderer
7 * @flow
8 */
9
10 'use strict';
11
12 const ReactFiberReconciler = require('react-reconciler');
14 -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree');
15 -const ReactNativeRTTagHandles = require('ReactNativeRTTagHandles');
13 +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree');
14 +const ReactNativeRTTagHandles = require('./ReactNativeRTTagHandles');
15 +
16 +// Module provided by RN:
17 const RTManager = require('RTManager');
18
19 const emptyObject = require('fbjs/lib/emptyObject');
packages/react-rt-renderer/src/ReactNativeRTTagHandles.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTTagHandles
7 * @flow
8 */
9 'use strict';
packages/react-rt-renderer/src/ReactNativeRTTypes.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactNativeRTTypes
7 * @flow
8 */
9 'use strict';
packages/react-test-renderer/src/ReactShallowRenderer.js
+2 -2
@@ -14,8 +14,8 @@ const React = require('react');
14 const emptyObject = require('fbjs/lib/emptyObject');
15 const invariant = require('fbjs/lib/invariant');
16
17 -const describeComponentFrame = require('describeComponentFrame');
18 -const getComponentName = require('getComponentName');
17 +const describeComponentFrame = require('shared/describeComponentFrame');
18 +const getComponentName = require('shared/getComponentName');
19
20 class ReactShallowRenderer {
21 static createRenderer = function() {
packages/react-test-renderer/src/ReactTestRenderer.js
+5 -5
@@ -10,10 +10,10 @@
10 'use strict';
11
12 var ReactFiberReconciler = require('react-reconciler');
13 -var ReactFiberTreeReflection = require('ReactFiberTreeReflection');
14 -var ReactGenericBatching = require('ReactGenericBatching');
13 +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection');
14 +var ReactGenericBatching = require('events/ReactGenericBatching');
15 var emptyObject = require('fbjs/lib/emptyObject');
16 -var ReactTypeOfWork = require('ReactTypeOfWork');
16 +var ReactTypeOfWork = require('shared/ReactTypeOfWork');
17 var invariant = require('fbjs/lib/invariant');
18 var {
19 Fragment,
@@ -24,8 +24,8 @@ var {
24 HostRoot,
25 } = ReactTypeOfWork;
26
27 -import type {Fiber} from 'ReactFiber';
28 -import type {FiberRoot} from 'ReactFiberRoot';
27 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
28 +import type {FiberRoot} from 'react-reconciler/src/ReactFiberRoot';
29
30 type TestRendererOptions = {
31 createNodeMock: (element: React$Element<any>) => any,
packages/react/src/React.js
+8 -8
@@ -7,19 +7,19 @@
7
8 'use strict';
9
10 -var ReactBaseClasses = require('ReactBaseClasses');
11 -var ReactChildren = require('ReactChildren');
12 -var ReactElement = require('ReactElement');
13 -var ReactVersion = require('ReactVersion');
10 +var ReactBaseClasses = require('./ReactBaseClasses');
11 +var ReactChildren = require('./ReactChildren');
12 +var ReactElement = require('./ReactElement');
13 +var ReactVersion = require('shared/ReactVersion');
14
15 -var onlyChild = require('onlyChild');
15 +var onlyChild = require('./onlyChild');
16
17 var createElement = ReactElement.createElement;
18 var createFactory = ReactElement.createFactory;
19 var cloneElement = ReactElement.cloneElement;
20
21 if (__DEV__) {
22 - var ReactElementValidator = require('ReactElementValidator');
22 + var ReactElementValidator = require('./ReactElementValidator');
23 createElement = ReactElementValidator.createElement;
24 createFactory = ReactElementValidator.createFactory;
25 cloneElement = ReactElementValidator.cloneElement;
@@ -47,7 +47,7 @@ var React = {
47 version: ReactVersion,
48
49 __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
50 - ReactCurrentOwner: require('ReactCurrentOwner'),
50 + ReactCurrentOwner: require('./ReactCurrentOwner'),
51 // Used by renderers to avoid bundling object-assign twice in UMD bundles:
52 assign: require('object-assign'),
53 },
@@ -56,7 +56,7 @@ var React = {
56 if (__DEV__) {
57 Object.assign(React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, {
58 // These should not be included in production.
59 - ReactDebugCurrentFrame: require('ReactDebugCurrentFrame'),
59 + ReactDebugCurrentFrame: require('./ReactDebugCurrentFrame'),
60 });
61 }
62
packages/react/src/ReactBaseClasses.js
+2 -4
@@ -3,17 +3,15 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactBaseClasses
6 */
7
8 'use strict';
9
12 -var ReactNoopUpdateQueue = require('ReactNoopUpdateQueue');
10 +var ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');
11
12 var emptyObject = require('fbjs/lib/emptyObject');
13 var invariant = require('fbjs/lib/invariant');
16 -var lowPriorityWarning = require('lowPriorityWarning');
14 +var lowPriorityWarning = require('shared/lowPriorityWarning');
15
16 /**
17 * Base class helpers for the updating state of a component.
packages/react/src/ReactChildren.js
+2 -4
@@ -3,20 +3,18 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactChildren
6 */
7
8 'use strict';
9
12 -var ReactElement = require('ReactElement');
10 +var ReactElement = require('./ReactElement');
11
12 var emptyFunction = require('fbjs/lib/emptyFunction');
13 var invariant = require('fbjs/lib/invariant');
14
15 if (__DEV__) {
16 var warning = require('fbjs/lib/warning');
19 - var {getStackAddendum} = require('ReactDebugCurrentFrame');
17 + var {getStackAddendum} = require('./ReactDebugCurrentFrame');
18 }
19
20 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
packages/react/src/ReactCurrentOwner.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactCurrentOwner
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
13
14 /**
15 * Keeps track of the current owner.
packages/react/src/ReactDebugCurrentFrame.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDebugCurrentFrame
7 * @flow
8 */
9
packages/react/src/ReactElement.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactElement
6 */
7
8 'use strict';
9
12 -var ReactCurrentOwner = require('ReactCurrentOwner');
10 +var ReactCurrentOwner = require('./ReactCurrentOwner');
11 var hasOwnProperty = Object.prototype.hasOwnProperty;
12
13 if (__DEV__) {
packages/react/src/ReactElementValidator.js
+6 -8
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactElementValidator
6 */
7
8 /**
@@ -16,16 +14,16 @@
14
15 'use strict';
16
19 -var ReactCurrentOwner = require('ReactCurrentOwner');
20 -var ReactElement = require('ReactElement');
17 +var ReactCurrentOwner = require('./ReactCurrentOwner');
18 +var ReactElement = require('./ReactElement');
19
20 if (__DEV__) {
21 + var ReactDebugCurrentFrame = require('./ReactDebugCurrentFrame');
22 var checkPropTypes = require('prop-types/checkPropTypes');
24 - var lowPriorityWarning = require('lowPriorityWarning');
25 - var ReactDebugCurrentFrame = require('ReactDebugCurrentFrame');
23 + var lowPriorityWarning = require('shared/lowPriorityWarning');
24 var warning = require('fbjs/lib/warning');
27 - var describeComponentFrame = require('describeComponentFrame');
28 - var getComponentName = require('getComponentName');
25 + var describeComponentFrame = require('shared/describeComponentFrame');
26 + var getComponentName = require('shared/getComponentName');
27
28 var currentlyValidatingElement = null;
29
packages/react/src/ReactNoopUpdateQueue.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactNoopUpdateQueue
6 */
7
8 'use strict';
packages/react/src/onlyChild.js
+1 -3
@@ -3,12 +3,10 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule onlyChild
6 */
7 'use strict';
8
11 -var ReactElement = require('ReactElement');
9 +var ReactElement = require('./ReactElement');
10
11 var invariant = require('fbjs/lib/invariant');
12
packages/shared/ReactDOMFrameScheduling.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactDOMFrameScheduling
7 * @flow
8 */
9
packages/shared/ReactErrorUtils.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactErrorUtils
7 * @flow
8 */
9
packages/shared/ReactFeatureFlags.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFeatureFlags
7 * @flow
8 */
9
packages/shared/ReactFiberComponentTreeHook.js
+4 -4
@@ -10,17 +10,17 @@
10
11 'use strict';
12
13 -var ReactTypeOfWork = require('ReactTypeOfWork');
13 +var ReactTypeOfWork = require('./ReactTypeOfWork');
14 var {
15 IndeterminateComponent,
16 FunctionalComponent,
17 ClassComponent,
18 HostComponent,
19 } = ReactTypeOfWork;
20 -var describeComponentFrame = require('describeComponentFrame');
21 -var getComponentName = require('getComponentName');
20 +var describeComponentFrame = require('./describeComponentFrame');
21 +var getComponentName = require('./getComponentName');
22
23 -import type {Fiber} from 'ReactFiber';
23 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
24
25 function describeFiber(fiber: Fiber): string {
26 switch (fiber.tag) {
packages/shared/ReactFiberTreeReflection.js
+6 -7
@@ -4,18 +4,17 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactFiberTreeReflection
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
13
15 -var ReactInstanceMap = require('ReactInstanceMap');
16 -var {ReactCurrentOwner} = require('ReactGlobalSharedState');
14 +var ReactInstanceMap = require('./ReactInstanceMap');
15 +var {ReactCurrentOwner} = require('./ReactGlobalSharedState');
16
18 -var getComponentName = require('getComponentName');
17 +var getComponentName = require('./getComponentName');
18 var invariant = require('fbjs/lib/invariant');
19
20 if (__DEV__) {
@@ -28,9 +27,9 @@ var {
27 HostRoot,
28 HostPortal,
29 HostText,
31 -} = require('ReactTypeOfWork');
30 +} = require('./ReactTypeOfWork');
31
33 -var {NoEffect, Placement} = require('ReactTypeOfSideEffect');
32 +var {NoEffect, Placement} = require('./ReactTypeOfSideEffect');
33
34 var MOUNTING = 1;
35 var MOUNTED = 2;
packages/shared/ReactGlobalSharedState.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactGlobalSharedState
6 */
7
8 'use strict';
packages/shared/ReactInstanceMap.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactInstanceMap
6 */
7
8 'use strict';
packages/shared/ReactTreeTraversal.js
+1 -3
@@ -3,13 +3,11 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactTreeTraversal
6 */
7
8 'use strict';
9
12 -var {HostComponent} = require('ReactTypeOfWork');
10 +var {HostComponent} = require('./ReactTypeOfWork');
11
12 function getParent(inst) {
13 do {
packages/shared/ReactTypeOfSideEffect.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactTypeOfSideEffect
7 * @flow
8 */
9
packages/shared/ReactTypeOfWork.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactTypeOfWork
7 * @flow
8 */
9
packages/shared/ReactTypes.js renamed
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule ReactTypes
7 * @flow
8 */
9
packages/shared/ReactVersion.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule ReactVersion
6 */
7
8 'use strict';
packages/shared/__tests__/ReactErrorUtils-test.js
+4 -4
@@ -14,7 +14,7 @@ var ReactErrorUtils;
14 describe('ReactErrorUtils', () => {
15 beforeEach(() => {
16 // TODO: can we express this test with only public API?
17 - ReactErrorUtils = require('ReactErrorUtils');
17 + ReactErrorUtils = require('shared/ReactErrorUtils');
18 });
19
20 // Run tests in both DEV and production
@@ -36,7 +36,7 @@ describe('ReactErrorUtils', () => {
36 };
37
38 jest.resetModules();
39 - ReactErrorUtils = require('ReactErrorUtils');
39 + ReactErrorUtils = require('shared/ReactErrorUtils');
40 });
41
42 afterEach(() => {
@@ -161,9 +161,9 @@ describe('ReactErrorUtils', () => {
161 });
162
163 it('handles nested errors in separate renderers', () => {
164 - const ReactErrorUtils1 = require('ReactErrorUtils');
164 + const ReactErrorUtils1 = require('shared/ReactErrorUtils');
165 jest.resetModules();
166 - const ReactErrorUtils2 = require('ReactErrorUtils');
166 + const ReactErrorUtils2 = require('shared/ReactErrorUtils');
167 expect(ReactErrorUtils1).not.toEqual(ReactErrorUtils2);
168
169 let ops = [];
packages/shared/__tests__/reactProdInvariant-test.js
+1 -1
@@ -13,7 +13,7 @@ var reactProdInvariant;
13 describe('reactProdInvariant', () => {
14 beforeEach(() => {
15 jest.resetModules();
16 - reactProdInvariant = require('reactProdInvariant');
16 + reactProdInvariant = require('shared/reactProdInvariant');
17 });
18
19 it('should throw with the correct number of `%s`s in the URL', () => {
packages/shared/getComponentName.js
+1 -2
@@ -4,13 +4,12 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule getComponentName
7 * @flow
8 */
9
10 'use strict';
11
13 -import type {Fiber} from 'ReactFiber';
12 +import type {Fiber} from 'react-reconciler/src/ReactFiber';
13
14 function getComponentName(fiber: Fiber): string | null {
15 const {type} = fiber;
packages/shared/isTextInputElement.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule isTextInputElement
7 * @flow
8 */
9
packages/shared/lowPriorityWarning.js
-2
@@ -3,8 +3,6 @@
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 - *
7 - * @providesModule lowPriorityWarning
6 */
7
8 'use strict';
packages/shared/package.json new
+5
@@ -0,0 +1,5 @@
1 +{
2 + "private": true,
3 + "name": "shared",
4 + "version": "0.0.0"
5 +}
packages/shared/reactProdInvariant.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule reactProdInvariant
7 * @flow
8 */
9 'use strict';
packages/shared/validateCallback.js
-1
@@ -4,7 +4,6 @@
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 - * @providesModule validateCallback
7 * @flow
8 */
9
scripts/circleci/build.sh
+2 -2
@@ -1,8 +1,8 @@
1 #!/bin/bash
2
3 set -e
4 -
5 -npm run build -- --extract-errors
4 +
5 +yarn build --extract-errors
6 git checkout -- scripts/error-codes/codes.json
7
8 # Check that the standalone reconciler isn't borked
scripts/error-codes/__tests__/dev-expression-with-codes-test.js
+5 -5
@@ -36,7 +36,7 @@ describe('dev-expression', () => {
36 it("should add `reactProdInvariant` when it finds `require('invariant')`", () => {
37 compare(
38 "var invariant = require('invariant');",
39 - `var _prodInvariant = require('reactProdInvariant');
39 + `var _prodInvariant = require('shared/reactProdInvariant');
40
41 var invariant = require('invariant');`
42 );
@@ -45,7 +45,7 @@ var invariant = require('invariant');`
45 it('should replace simple invariant calls', () => {
46 compare(
47 "invariant(condition, 'Do not override existing functions.');",
48 - "var _prodInvariant = require('reactProdInvariant');\n\n" +
48 + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" +
49 '!condition ? ' +
50 '__DEV__ ? ' +
51 "invariant(false, 'Do not override existing functions.') : " +
@@ -64,7 +64,7 @@ var invariant = require('invariant');`
64 `var invariant = require('invariant');
65 invariant(condition, 'Do not override existing functions.');
66 invariant(condition, 'Do not override existing functions.');`,
67 - `var _prodInvariant = require('reactProdInvariant');
67 + `var _prodInvariant = require('shared/reactProdInvariant');
68
69 var invariant = require('invariant');
70 ${expectedInvariantTransformResult}
@@ -75,7 +75,7 @@ ${expectedInvariantTransformResult}`
75 it('should support invariant calls with args', () => {
76 compare(
77 "invariant(condition, 'Expected %s target to be an array; got %s', 'foo', 'bar');",
78 - "var _prodInvariant = require('reactProdInvariant');\n\n" +
78 + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" +
79 '!condition ? ' +
80 '__DEV__ ? ' +
81 "invariant(false, 'Expected %s target to be an array; got %s', 'foo', 'bar') : " +
@@ -86,7 +86,7 @@ ${expectedInvariantTransformResult}`
86 it('should support invariant calls with a concatenated template string and args', () => {
87 compare(
88 "invariant(condition, 'Expected a component class, ' + 'got %s.' + '%s', 'Foo', 'Bar');",
89 - "var _prodInvariant = require('reactProdInvariant');\n\n" +
89 + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" +
90 '!condition ? ' +
91 '__DEV__ ? ' +
92 "invariant(false, 'Expected a component class, got %s.%s', 'Foo', 'Bar') : " +
scripts/error-codes/extract-errors.js
+1 -3
@@ -95,9 +95,7 @@ module.exports = function(opts) {
95 );
96 }
97
98 - return function extractErrors(filepath) {
99 - const source = fs.readFileSync(filepath, 'utf-8');
100 -
98 + return function extractErrors(source) {
99 transform(source);
100 flush();
101 };
scripts/error-codes/replace-invariant-error-codes.js
+8 -4
@@ -6,12 +6,10 @@
6 */
7 'use strict';
8
9 +var fs = require('fs');
10 var evalToString = require('../shared/evalToString');
10 -var existingErrorMap = require('./codes.json');
11 var invertObject = require('./invertObject');
12
13 -var errorMap = invertObject(existingErrorMap);
14 -
13 module.exports = function(babel) {
14 var t = babel.types;
15
@@ -26,7 +24,7 @@ module.exports = function(babel) {
24 path.scope.getProgramParent().push({
25 id: localState.prodInvariantIdentifier,
26 init: t.callExpression(t.identifier('require'), [
29 - t.stringLiteral('reactProdInvariant'),
27 + t.stringLiteral('shared/reactProdInvariant'),
28 ]),
29 });
30 }
@@ -101,6 +99,12 @@ module.exports = function(babel) {
99
100 devInvariant[SEEN_SYMBOL] = true;
101
102 + // Avoid caching because we write it as we go.
103 + var existingErrorMap = JSON.parse(
104 + fs.readFileSync(__dirname + '/codes.json', 'utf-8')
105 + );
106 + var errorMap = invertObject(existingErrorMap);
107 +
108 var localInvariantId = getProdInvariantIdentifier(path, this);
109 var prodErrorId = errorMap[errorMsgLiteral];
110 var body = null;
scripts/jest/preprocessor.js
+1 -14
@@ -11,11 +11,6 @@ var babel = require('babel-core');
11 var coffee = require('coffee-script');
12
13 var tsPreprocessor = require('./ts-preprocessor');
14 -
15 -// This assumes the module map has been built. This might not be safe.
16 -// We should consider consuming this from a built fbjs module from npm.
17 -var moduleMap = require('fbjs/module-map');
18 -var babelPluginModules = require('fbjs-scripts/babel-6/rewrite-modules');
14 var createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction');
15
16 // Use require.resolve to be resilient to file moves, npm updates, etc
@@ -40,15 +35,7 @@ var pathToErrorCodes = require.resolve('../error-codes/codes.json');
35 // TODO: make sure this stays in sync with gulpfile
36 var babelOptions = {
37 plugins: [
43 - pathToBabelPluginDevWithCode, // this pass has to run before `rewrite-modules`
44 - [
45 - babelPluginModules,
46 - {
47 - map: Object.assign({}, moduleMap, {
48 - 'object-assign': 'object-assign',
49 - }),
50 - },
51 - ],
38 + pathToBabelPluginDevWithCode,
39 // Keep stacks detailed in tests.
40 // Don't put this in .babelrc so that we don't embed filenames
41 // into ReactART builds that include JSX.
scripts/jest/setup.js
+4 -3
@@ -2,8 +2,8 @@
2
3 // We want to globally mock this but jest doesn't let us do that by default
4 // for a file that already exists. So we have to explicitly mock it.
5 -jest.mock('ReactFeatureFlags', () => {
6 - const flags = require.requireActual('ReactFeatureFlags');
5 +jest.mock('shared/ReactFeatureFlags', () => {
6 + const flags = require.requireActual('shared/ReactFeatureFlags');
7 return Object.assign({}, flags, {
8 disableNewFiberFeatures: true,
9 });
@@ -11,4 +11,5 @@ jest.mock('ReactFeatureFlags', () => {
11
12 // Error logging varies between Fiber and Stack;
13 // Rather than fork dozens of tests, mock the error-logging file by default.
14 -jest.mock('ReactFiberErrorLogger');
14 +// TODO: direct imports like some-package/src/* are bad. Fix me.
15 +jest.mock('react-reconciler/src/ReactFiberErrorLogger');
scripts/print-warnings/print-warnings.js
+1 -12
@@ -11,8 +11,6 @@ const fs = require('fs');
11 const through = require('through2');
12 const traverse = require('babel-traverse').default;
13 const gs = require('glob-stream');
14 -const Bundles = require('../rollup/bundles');
15 -const Modules = require('../rollup/modules');
14
15 const evalToString = require('../shared/evalToString');
16
@@ -64,16 +62,7 @@ function transform(file, enc, cb) {
62 });
63 }
64
67 -const sourcePaths = Bundles.bundles
68 - .filter(
69 - bundle =>
70 - bundle.bundleTypes.indexOf(Bundles.bundleTypes.FB_DEV) !== -1 ||
71 - bundle.bundleTypes.indexOf(Bundles.bundleTypes.FB_PROD) !== -1
72 - )
73 - .reduce((allPaths, bundle) => allPaths.concat(bundle.paths), [])
74 - .concat(Modules.getExcludedHasteGlobs().map(glob => `!${glob}`));
75 -
76 -gs(sourcePaths).pipe(
65 +gs(['packages/**/*.js', '!**/__tests__/**/*.js', '!**/__mocks__/**/*.js']).pipe(
66 through.obj(transform, cb => {
67 process.stdout.write(Array.from(warnings).sort().join('\n') + '\n');
68 cb();
scripts/rollup/build.js
+153 -129
@@ -7,17 +7,17 @@ const alias = require('rollup-plugin-alias');
7 const uglify = require('rollup-plugin-uglify');
8 const replace = require('rollup-plugin-replace');
9 const chalk = require('chalk');
10 -const escapeStringRegexp = require('escape-string-regexp');
10 const join = require('path').join;
11 const resolve = require('path').resolve;
12 +const resolvePlugin = require('rollup-plugin-node-resolve');
13 const fs = require('fs');
14 const rimraf = require('rimraf');
15 const argv = require('minimist')(process.argv.slice(2));
16 const Modules = require('./modules');
17 const Bundles = require('./bundles');
18 -const propertyMangleWhitelist = require('./mangle').propertyMangleWhitelist;
18 const sizes = require('./plugins/sizes-plugin');
19 const Stats = require('./stats');
20 +const extractErrorCodes = require('../error-codes/extract-errors');
21 const syncReactDom = require('./sync').syncReactDom;
22 const syncReactNative = require('./sync').syncReactNative;
23 const syncReactNativeRT = require('./sync').syncReactNativeRT;
@@ -46,22 +46,18 @@ const requestedBundleNames = (argv._[0] || '')
46 .map(type => type.toLowerCase());
47 const syncFbsource = argv['sync-fbsource'];
48 const syncWww = argv['sync-www'];
49 +const shouldExtractErrors = argv['extract-errors'];
50 +const errorCodeOpts = {
51 + errorMapFilePath: 'scripts/error-codes/codes.json',
52 +};
53
50 -// used for when we property mangle with uglify/gcc
51 -const mangleRegex = new RegExp(
52 - `^(?${propertyMangleWhitelist
53 - .map(prop => `!${escapeStringRegexp(prop)}`)
54 - .join('|')}$).*$`,
55 - 'g'
56 -);
57 -
58 -function getHeaderSanityCheck(bundleType, hasteName) {
54 +function getHeaderSanityCheck(bundleType, globalName) {
55 switch (bundleType) {
56 case FB_DEV:
57 case FB_PROD:
58 case RN_DEV:
59 case RN_PROD:
64 - let hasteFinalName = hasteName;
60 + let hasteFinalName = globalName;
61 switch (bundleType) {
62 case FB_DEV:
63 case RN_DEV:
@@ -81,7 +77,7 @@ function getHeaderSanityCheck(bundleType, hasteName) {
77 }
78 }
79
84 -function getBanner(bundleType, hasteName, filename, moduleType) {
80 +function getBanner(bundleType, globalName, filename, moduleType) {
81 if (moduleType === RECONCILER) {
82 // Standalone reconciler is only used by third-party renderers.
83 // It is handled separately.
@@ -109,7 +105,7 @@ function getBanner(bundleType, hasteName, filename, moduleType) {
105 case RN_DEV:
106 case RN_PROD:
107 const isDev = bundleType === FB_DEV || bundleType === RN_DEV;
112 - const hasteFinalName = hasteName + (isDev ? '-dev' : '-prod');
108 + const hasteFinalName = globalName + (isDev ? '-dev' : '-prod');
109 // Wrap the contents of the if-DEV check with an IIFE.
110 // Block-level function definitions can cause problems for strict mode.
111 return (
@@ -179,14 +175,22 @@ function getReconcilerFooter(bundleType) {
175 }
176 }
177
182 -function updateBabelConfig(babelOpts, bundleType, filename) {
178 +function getBabelConfig(updateBabelOptions, bundleType, filename) {
179 + let options = {
180 + exclude: 'node_modules/**',
181 + presets: [],
182 + plugins: [],
183 + };
184 + if (updateBabelOptions) {
185 + options = updateBabelOptions(options);
186 + }
187 switch (bundleType) {
188 case FB_DEV:
189 case FB_PROD:
190 case RN_DEV:
191 case RN_PROD:
188 - return Object.assign({}, babelOpts, {
189 - plugins: babelOpts.plugins.concat([
192 + return Object.assign({}, options, {
193 + plugins: options.plugins.concat([
194 // Wrap warning() calls in a __DEV__ check so they are stripped from production.
195 require('./plugins/wrap-warning-with-env-check'),
196 ]),
@@ -195,8 +199,8 @@ function updateBabelConfig(babelOpts, bundleType, filename) {
199 case UMD_PROD:
200 case NODE_DEV:
201 case NODE_PROD:
198 - return Object.assign({}, babelOpts, {
199 - plugins: babelOpts.plugins.concat([
202 + return Object.assign({}, options, {
203 + plugins: options.plugins.concat([
204 // Use object-assign polyfill in open source
205 resolve('./scripts/babel/transform-object-assign-require'),
206
@@ -208,7 +212,7 @@ function updateBabelConfig(babelOpts, bundleType, filename) {
212 ]),
213 });
214 default:
211 - return babelOpts;
215 + return options;
216 }
217 }
218
@@ -220,26 +224,33 @@ function handleRollupWarnings(warning) {
224 console.warn(warning.message || warning);
225 }
226
223 -function updateBundleConfig(
224 - config,
227 +function getRollupOutputOptions(
228 filename,
229 format,
230 bundleType,
228 - hasteName,
231 + globals,
232 + globalName,
233 moduleType
234 ) {
231 - return Object.assign({}, config, {
232 - banner: getBanner(bundleType, hasteName, filename, moduleType),
233 - dest: Packaging.getPackageDestination(
234 - config,
235 - bundleType,
236 - filename,
237 - hasteName
238 - ),
239 - footer: getFooter(bundleType, filename, moduleType),
240 - format,
241 - interop: false,
242 - });
235 + return Object.assign(
236 + {},
237 + {
238 + banner: getBanner(bundleType, globalName, filename, moduleType),
239 + destDir: 'build/',
240 + dest: 'build/' +
241 + Packaging.getOutputPathRelativeToBuildFolder(
242 + bundleType,
243 + filename,
244 + globalName
245 + ),
246 + footer: getFooter(bundleType, filename, moduleType),
247 + format,
248 + globals,
249 + interop: false,
250 + moduleName: globalName,
251 + sourceMap: false,
252 + }
253 + );
254 }
255
256 function stripEnvVariables(production) {
@@ -264,7 +275,7 @@ function getFormat(bundleType) {
275 }
276 }
277
267 -function getFilename(name, hasteName, bundleType) {
278 +function getFilename(name, globalName, bundleType) {
279 // we do this to replace / to -, for react-dom/server
280 name = name.replace('/', '-');
281 switch (bundleType) {
@@ -278,16 +289,15 @@ function getFilename(name, hasteName, bundleType) {
289 return `${name}.production.min.js`;
290 case FB_DEV:
291 case RN_DEV:
281 - return `${hasteName}-dev.js`;
292 + return `${globalName}-dev.js`;
293 case FB_PROD:
294 case RN_PROD:
284 - return `${hasteName}-prod.js`;
295 + return `${globalName}-prod.js`;
296 }
297 }
298
288 -function uglifyConfig(configs) {
299 +function getUglifyConfig(configs) {
300 var mangle = configs.mangle;
290 - var manglePropertiesOnProd = configs.manglePropertiesOnProd;
301 var preserveVersionHeader = configs.preserveVersionHeader;
302 var removeComments = configs.removeComments;
303 var headerSanityCheck = configs.headerSanityCheck;
@@ -326,12 +336,6 @@ function uglifyConfig(configs) {
336 return !removeComments;
337 },
338 },
329 - mangleProperties: mangle && manglePropertiesOnProd
330 - ? {
331 - ignore_quoted: true,
332 - regex: mangleRegex,
333 - }
334 - : false,
339 mangle: mangle
340 ? {
341 toplevel: true,
@@ -341,79 +345,77 @@ function uglifyConfig(configs) {
345 };
346 }
347
344 -function getCommonJsConfig(bundleType) {
345 - switch (bundleType) {
346 - case UMD_DEV:
347 - case UMD_PROD:
348 - case NODE_DEV:
349 - case NODE_PROD:
350 - return {};
351 - case RN_DEV:
352 - case RN_PROD:
353 - return {
354 - ignore: Modules.ignoreReactNativeModules(),
355 - };
356 - case FB_DEV:
357 - case FB_PROD:
358 - // Modules we don't want to inline in the bundle.
359 - // Force them to stay as require()s in the output.
360 - return {
361 - ignore: Modules.ignoreFBModules(),
362 - };
363 - }
348 +// We use this for various shims, such as www forks of the code,
349 +// renderer-specific feature flag overrides, and UMD optimizations.
350 +function shimModules(shims) {
351 + // For some reason, even if we use the alias plugin,
352 + // Rollup still attempts to bundle unused original code
353 + // if it exists. We have to explicitly stub it out.
354 + const nullStub = {
355 + transform(source, id) {
356 + if (shims[id]) {
357 + return 'module.exports = null;';
358 + }
359 + return source;
360 + },
361 + };
362 + return [nullStub, alias(shims)];
363 +}
364 +
365 +// FB uses require('React') instead of require('react').
366 +// We can't set up a forwarding module due to case sensitivity issues.
367 +function rewriteFBReactImport() {
368 + return {
369 + transformBundle(source) {
370 + return source.replace(/require\(['"]react['"]\)/g, "require('React')");
371 + },
372 + };
373 +}
374 +
375 +// Plugin that writes to the error code file so that by the time it is picked
376 +// up by Babel, the errors are already extracted.
377 +function writeErrorCodes() {
378 + const flush = extractErrorCodes(errorCodeOpts);
379 + return {
380 + transform(source) {
381 + flush(source);
382 + return source;
383 + },
384 + };
385 }
386
387 function getPlugins(
388 entry,
368 - babelOpts,
369 - paths,
389 + externals,
390 + updateBabelOptions,
391 filename,
392 bundleType,
372 - hasteName,
393 + globalName,
394 moduleType,
374 - manglePropertiesOnProd,
395 modulesToStub,
396 featureFlags
397 ) {
378 - // Extract error codes 1st so we can replace invariant messages in prod builds
379 - // Without re-running the slow build script.
398 + const shims = Modules.getShims(bundleType, entry, featureFlags);
399 const plugins = [
381 - alias(
382 - Modules.getAliases(paths, bundleType, moduleType, argv['extract-errors'])
383 - ),
384 - babel(updateBabelConfig(babelOpts, bundleType)),
385 - ];
386 -
387 - const replaceModules = Modules.getDefaultReplaceModules(
388 - bundleType,
389 - modulesToStub,
390 - featureFlags
391 - );
392 -
393 - // We have to do this check because Rollup breaks on empty object.
394 - // TODO: file an issue with rollup-plugin-replace.
395 - if (Object.keys(replaceModules).length > 0) {
396 - plugins.unshift(replace(replaceModules));
397 - }
398 -
399 - const headerSanityCheck = getHeaderSanityCheck(bundleType, hasteName);
400 -
400 + shouldExtractErrors && writeErrorCodes(),
401 + ...shimModules(shims),
402 + resolvePlugin({
403 + skip: externals,
404 + }),
405 + babel(getBabelConfig(updateBabelOptions, bundleType)),
406 + ].filter(Boolean);
407 +
408 + const headerSanityCheck = getHeaderSanityCheck(bundleType, globalName);
409 switch (bundleType) {
410 case UMD_DEV:
411 case NODE_DEV:
404 - case FB_DEV:
405 - plugins.push(
406 - replace(stripEnvVariables(false)),
407 - // needs to happen after strip env
408 - commonjs(getCommonJsConfig(bundleType))
409 - );
412 + plugins.push(replace(stripEnvVariables(false)), commonjs());
413 break;
414 case UMD_PROD:
415 case NODE_PROD:
416 plugins.push(
417 replace(stripEnvVariables(true)),
415 - // needs to happen after strip env
416 - commonjs(getCommonJsConfig(bundleType)),
418 + commonjs(),
419 closure({
420 compilationLevel: 'SIMPLE',
421 languageIn: 'ECMASCRIPT5_STRICT',
@@ -429,34 +431,38 @@ function getPlugins(
431 })
432 );
433 break;
434 + case FB_DEV:
435 + plugins.push(
436 + replace(stripEnvVariables(false)),
437 + commonjs(),
438 + rewriteFBReactImport()
439 + );
440 + break;
441 case FB_PROD:
442 plugins.push(
443 replace(stripEnvVariables(true)),
435 - // needs to happen after strip env
436 - commonjs(getCommonJsConfig(bundleType)),
444 + commonjs(),
445 uglify(
438 - uglifyConfig({
446 + getUglifyConfig({
447 mangle: bundleType !== FB_PROD,
440 - manglePropertiesOnProd,
448 preserveVersionHeader: bundleType === UMD_PROD,
449 // leave comments in for source map debugging purposes
450 // they will be stripped as part of FB's build process
451 removeComments: bundleType !== FB_PROD,
452 headerSanityCheck,
453 })
447 - )
454 + ),
455 + rewriteFBReactImport()
456 );
457 break;
458 case RN_DEV:
459 case RN_PROD:
460 plugins.push(
461 replace(stripEnvVariables(bundleType === RN_PROD)),
454 - // needs to happen after strip env
455 - commonjs(getCommonJsConfig(bundleType)),
462 + commonjs(),
463 uglify(
457 - uglifyConfig({
464 + getUglifyConfig({
465 mangle: false,
459 - manglePropertiesOnProd,
466 preserveVersionHeader: true,
467 removeComments: true,
468 headerSanityCheck,
@@ -465,7 +471,6 @@ function getPlugins(
471 );
472 break;
473 }
468 - // this needs to come last or it doesn't report sizes correctly
474 plugins.push(
475 sizes({
476 getSize: (size, gzip) => {
@@ -477,7 +482,6 @@ function getPlugins(
482 },
483 })
484 );
480 -
485 return plugins;
486 }
487
@@ -503,44 +507,64 @@ function createBundle(bundle, bundleType) {
507 }
508 }
509
506 - const filename = getFilename(bundle.name, bundle.hasteName, bundleType);
510 + const filename = getFilename(bundle.entry, bundle.global, bundleType);
511 const logKey =
512 chalk.white.bold(filename) + chalk.dim(` (${bundleType.toLowerCase()})`);
513 const format = getFormat(bundleType);
510 - const packageName = Packaging.getPackageName(bundle.name);
514 + const packageName = Packaging.getPackageName(bundle.entry);
515 +
516 + let resolvedEntry = require.resolve(bundle.entry);
517 + if (bundleType === FB_DEV || bundleType === FB_PROD) {
518 + const resolvedFBEntry = resolvedEntry.replace('.js', '.fb.js');
519 + if (fs.existsSync(resolvedFBEntry)) {
520 + resolvedEntry = resolvedFBEntry;
521 + }
522 + }
523 +
524 + const shouldBundleDependencies =
525 + bundleType === UMD_DEV || bundleType === UMD_PROD;
526 + const peerGlobals = Modules.getPeerGlobals(
527 + bundle.externals,
528 + bundle.moduleType
529 + );
530 + let externals = Object.keys(peerGlobals);
531 + if (!shouldBundleDependencies) {
532 + const deps = Modules.getDependencies(bundleType, bundle.entry);
533 + externals = externals.concat(deps);
534 + }
535
536 console.log(`${chalk.bgYellow.black(' BUILDING ')} ${logKey}`);
537 return rollup({
514 - entry: bundleType === FB_DEV || bundleType === FB_PROD
515 - ? bundle.fbEntry
516 - : bundle.entry,
517 - external: Modules.getExternalModules(
518 - bundle.externals,
519 - bundleType,
520 - bundle.moduleType
521 - ),
538 + entry: resolvedEntry,
539 + external(id) {
540 + const containsThisModule = pkg => id === pkg || id.startsWith(pkg + '/');
541 + const isProvidedByDependency = externals.some(containsThisModule);
542 + if (!shouldBundleDependencies && isProvidedByDependency) {
543 + return true;
544 + }
545 + return !!peerGlobals[id];
546 + },
547 onwarn: handleRollupWarnings,
548 plugins: getPlugins(
549 bundle.entry,
525 - bundle.babelOpts,
526 - bundle.paths,
550 + externals,
551 + bundle.babel,
552 filename,
553 bundleType,
529 - bundle.hasteName,
554 + bundle.global,
555 bundle.moduleType,
531 - bundle.manglePropertiesOnProd,
556 bundle.modulesToStub,
557 bundle.featureFlags
558 ),
559 })
560 .then(result =>
561 result.write(
538 - updateBundleConfig(
539 - bundle.config,
562 + getRollupOutputOptions(
563 filename,
564 format,
565 bundleType,
543 - bundle.hasteName,
566 + peerGlobals,
567 + bundle.global,
568 bundle.moduleType
569 )
570 )
@@ -611,7 +635,7 @@ rimraf('build', () => {
635 console.log(Stats.printResults());
636 // save the results for next run
637 Stats.saveResults();
614 - if (argv['extract-errors']) {
638 + if (shouldExtractErrors) {
639 console.warn(
640 '\nWarning: this build was created with --extract-errors enabled.\n' +
641 'this will result in extremely slow builds and should only be\n' +
scripts/rollup/bundles.js
+66 -320
@@ -36,242 +36,87 @@ const RENDERER_UTILS = moduleTypes.RENDERER_UTILS;
36 // Standalone reconciler for third-party renderers.
37 const RECONCILER = moduleTypes.RECONCILER;
38
39 -const babelOptsReact = {
40 - exclude: 'node_modules/**',
41 - presets: [],
42 - plugins: [],
43 -};
44 -
45 -const babelOptsReactART = Object.assign({}, babelOptsReact, {
46 - // Include JSX
47 - presets: babelOptsReact.presets.concat([
48 - require.resolve('babel-preset-react'),
49 - ]),
50 -});
51 -
39 const bundles = [
40 /******* Isomorphic *******/
41 {
55 - babelOpts: babelOptsReact,
42 + label: 'core',
43 bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD],
57 - config: {
58 - destDir: 'build/',
59 - moduleName: 'React',
60 - sourceMap: false,
61 - },
62 - entry: 'packages/react/index.js',
63 - externals: [
64 - 'create-react-class/factory',
65 - 'prop-types',
66 - 'prop-types/checkPropTypes',
67 - ],
68 - fbEntry: 'packages/react/index.js',
69 - hasteName: 'React',
44 moduleType: ISOMORPHIC,
71 - label: 'core',
72 - manglePropertiesOnProd: false,
73 - name: 'react',
74 - paths: ['packages/react/**/*.js', 'packages/shared/**/*.js'],
45 + entry: 'react',
46 + global: 'React',
47 + externals: [],
48 },
49
50 /******* React DOM *******/
51 {
79 - babelOpts: babelOptsReact,
52 + label: 'dom-client',
53 bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD],
81 - config: {
82 - destDir: 'build/',
83 - globals: {
84 - react: 'React',
85 - },
86 - moduleName: 'ReactDOM',
87 - sourceMap: false,
88 - },
89 - entry: 'packages/react-dom/index.js',
90 - externals: ['prop-types', 'prop-types/checkPropTypes'],
91 - fbEntry: 'packages/react-dom/index.fb.js',
92 - hasteName: 'ReactDOM',
54 moduleType: RENDERER,
94 - label: 'dom-fiber',
95 - manglePropertiesOnProd: false,
96 - name: 'react-dom',
97 - paths: [
98 - 'packages/events/**/*.js',
99 - 'packages/react-dom/*.js',
100 - 'packages/react-dom/src/client/**/*.js',
101 - 'packages/react-dom/src/events/**/*.js',
102 - 'packages/react-dom/src/shared/**/*.js',
103 - 'packages/react-reconciler/**/*.js',
104 - 'packages/shared/**/*.js',
105 - ],
55 + entry: 'react-dom',
56 + global: 'ReactDOM',
57 + externals: ['react'],
58 },
59 +
60 + //******* Test Utils *******/
61 {
108 - babelOpts: babelOptsReact,
109 - bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD],
110 - config: {
111 - destDir: 'build/',
112 - globals: {
113 - react: 'React',
114 - },
115 - moduleName: 'ReactTestUtils',
116 - sourceMap: false,
117 - },
118 - entry: 'packages/react-dom/test-utils.js',
119 - externals: [
120 - 'prop-types',
121 - 'prop-types/checkPropTypes',
122 - 'react',
123 - 'react-dom',
124 - ],
125 - fbEntry: 'packages/react-dom/test-utils.js',
126 - hasteName: 'ReactTestUtils',
62 + label: 'dom-test-utils',
63 moduleType: RENDERER_UTILS,
128 - label: 'test-utils',
129 - manglePropertiesOnProd: false,
130 - name: 'react-dom/test-utils',
131 - paths: [
132 - 'packages/events/**/*.js',
133 - 'packages/react-dom/*.js',
134 - 'packages/react-dom/src/events/**/*.js',
135 - 'packages/react-dom/src/test-utils/**/*.js',
136 - 'packages/react-dom/src/shared/**/*.js',
137 - 'packages/shared/**/*.js',
138 - ],
64 + bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD],
65 + entry: 'react-dom/test-utils',
66 + global: 'ReactTestUtils',
67 + externals: ['react', 'react-dom'],
68 },
69 +
70 /* React DOM internals required for react-native-web (e.g., to shim native events from react-dom) */
71 {
142 - babelOpts: babelOptsReact,
72 + label: 'dom-unstable-native-dependencies',
73 bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD],
144 - config: {
145 - destDir: 'build/',
146 - globals: {
147 - react: 'React',
148 - 'react-dom': 'ReactDOM',
149 - },
150 - moduleName: 'ReactDOMUnstableNativeDependencies',
151 - sourceMap: false,
152 - },
153 - entry: 'packages/react-dom/unstable-native-dependencies.js',
154 - externals: [
155 - 'react-dom',
156 - 'ReactDOM',
157 - 'prop-types',
158 - 'prop-types/checkPropTypes',
159 - ],
160 - fbEntry: 'packages/react-dom/unstable-native-dependencies.js',
161 - hasteName: 'ReactDOMUnstableNativeDependencies',
74 moduleType: RENDERER_UTILS,
163 - label: 'dom-unstable-native-dependencies',
164 - manglePropertiesOnProd: false,
165 - name: 'react-dom/unstable-native-dependencies',
166 - paths: [
167 - 'packages/events/**/*.js',
168 - 'packages/react-dom/*.js',
169 - 'packages/react-dom/src/unstable-native-dependencies/**/*.js',
170 - 'packages/react-dom/src/shared/**/*.js',
171 - 'packages/shared/**/*.js',
172 - ],
75 + entry: 'react-dom/unstable-native-dependencies',
76 + global: 'ReactDOMUnstableNativeDependencies',
77 + externals: ['react', 'react-dom'],
78 },
79
80 /******* React DOM Server *******/
81 {
177 - babelOpts: babelOptsReact,
82 + label: 'dom-server-browser',
83 bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD],
179 - config: {
180 - destDir: 'build/',
181 - globals: {
182 - react: 'React',
183 - },
184 - moduleName: 'ReactDOMServer',
185 - sourceMap: false,
186 - },
187 - entry: 'packages/react-dom/server.browser.js',
188 - externals: ['prop-types', 'prop-types/checkPropTypes'],
189 - fbEntry: 'packages/react-dom/server.browser.js',
190 - hasteName: 'ReactDOMServer',
84 moduleType: RENDERER,
192 - label: 'dom-server-browser',
193 - manglePropertiesOnProd: false,
194 - name: 'react-dom/server.browser',
195 - paths: [
196 - 'packages/events/**/*.js',
197 - 'packages/react-dom/*.js',
198 - 'packages/react-dom/src/server/**/*.js',
199 - 'packages/react-dom/src/shared/**/*.js',
200 - 'packages/shared/**/*.js',
201 - ],
85 + entry: 'react-dom/server.browser',
86 + global: 'ReactDOMServer',
87 + externals: ['react'],
88 },
89
90 {
205 - babelOpts: babelOptsReact,
91 + label: 'dom-server-node',
92 bundleTypes: [NODE_DEV, NODE_PROD],
207 - config: {
208 - destDir: 'build/',
209 - globals: {
210 - react: 'React',
211 - },
212 - moduleName: 'ReactDOMNodeStream',
213 - sourceMap: false,
214 - },
215 - entry: 'packages/react-dom/server.js',
216 - externals: ['prop-types', 'prop-types/checkPropTypes', 'stream'],
93 moduleType: RENDERER,
218 - label: 'dom-server-server-node',
219 - manglePropertiesOnProd: false,
220 - name: 'react-dom/server.node',
221 - paths: [
222 - 'packages/events/**/*.js',
223 - 'packages/react-dom/*.js',
224 - 'packages/react-dom/src/server/**/*.js',
225 - 'packages/react-dom/src/shared/**/*.js',
226 - 'packages/shared/**/*.js',
227 - ],
94 + entry: 'react-dom/server.node',
95 + externals: ['react', 'stream'],
96 },
97
98 /******* React ART *******/
99 {
232 - babelOpts: babelOptsReactART,
233 - // TODO: we merge react-art repo into this repo so the NODE_DEV and NODE_PROD
234 - // builds sync up to the building of the package directories
100 + label: 'art',
101 bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD],
236 - config: {
237 - destDir: 'build/',
238 - globals: {
239 - react: 'React',
240 - },
241 - moduleName: 'ReactART',
242 - sourceMap: false,
243 - },
244 - entry: 'packages/react-art/index.js',
245 - externals: [
246 - 'art/modes/current',
247 - 'art/modes/fast-noSideEffects',
248 - 'art/core/transform',
249 - 'prop-types/checkPropTypes',
250 - 'react-dom',
251 - ],
252 - fbEntry: 'packages/react-art/index.js',
253 - hasteName: 'ReactART',
102 moduleType: RENDERER,
255 - label: 'art-fiber',
256 - manglePropertiesOnProd: false,
257 - name: 'react-art',
258 - paths: [
259 - 'packages/react-art/**/*.js',
260 - 'packages/react-reconciler/**/*.js',
261 - 'packages/shared/**/*.js',
262 - ],
103 + entry: 'react-art',
104 + global: 'ReactART',
105 + externals: ['react'],
106 + babel: opts =>
107 + Object.assign({}, opts, {
108 + // Include JSX
109 + presets: opts.presets.concat([require.resolve('babel-preset-react')]),
110 + }),
111 },
112
113 /******* React Native *******/
114 {
267 - babelOpts: babelOptsReact,
115 + label: 'native',
116 bundleTypes: [RN_DEV, RN_PROD],
269 - config: {
270 - destDir: 'build/',
271 - moduleName: 'ReactNativeFiber',
272 - sourceMap: false,
273 - },
274 - entry: 'packages/react-native-renderer/index.js',
117 + moduleType: RENDERER,
118 + entry: 'react-native-renderer',
119 + global: 'ReactNativeRenderer',
120 externals: [
121 'ExceptionsManager',
122 'InitializeCore',
@@ -283,172 +128,73 @@ const bundles = [
128 'deepDiffer',
129 'deepFreezeAndThrowOnMutationInDev',
130 'flattenStyle',
286 - 'prop-types/checkPropTypes',
287 - ],
288 - hasteName: 'ReactNativeRenderer',
289 - moduleType: RENDERER,
290 - label: 'native-fiber',
291 - manglePropertiesOnProd: false,
292 - name: 'react-native-renderer',
293 - paths: [
294 - 'packages/events/**/*.js',
295 - 'packages/react-native-renderer/**/*.js',
296 - 'packages/react-reconciler/**/*.js',
297 - 'packages/shared/**/*.js',
131 ],
132 },
133
134 /******* React Native RT *******/
135 {
303 - babelOpts: babelOptsReact,
136 + label: 'native-rt',
137 bundleTypes: [RN_DEV, RN_PROD],
305 - config: {
306 - destDir: 'build/',
307 - moduleName: 'ReactNativeRTFiber',
308 - sourceMap: false,
309 - },
310 - entry: 'packages/react-rt-renderer/index.js',
138 + moduleType: RENDERER,
139 + entry: 'react-rt-renderer',
140 + global: 'ReactRTRenderer',
141 externals: [
142 'ExceptionsManager',
143 'InitializeCore',
144 'Platform',
145 'BatchedBridge',
146 'RTManager',
317 - 'prop-types/checkPropTypes',
318 - ],
319 - hasteName: 'ReactRTRenderer',
320 - moduleType: RENDERER,
321 - isRenderer: true,
322 - label: 'native-rt-fiber',
323 - manglePropertiesOnProd: false,
324 - name: 'react-native-rt-renderer',
325 - paths: [
326 - 'packages/events/**/*.js',
327 - 'packages/react-native-renderer/**/*.js', // This is used since we reuse the error dialog code
328 - 'packages/react-rt-renderer/**/*.js',
329 - 'packages/react-reconciler/**/*.js',
330 - 'packages/shared/**/*.js',
147 ],
148 },
149
150 /******* React Native CS *******/
151 {
336 - babelOpts: babelOptsReact,
152 + label: 'native-cs',
153 bundleTypes: [RN_DEV, RN_PROD],
338 - config: {
339 - destDir: 'build/',
340 - moduleName: 'ReactNativeCSFiber',
341 - sourceMap: false,
342 - },
343 - entry: 'packages/react-cs-renderer/index.js',
344 - externals: ['prop-types/checkPropTypes'],
345 - hasteName: 'ReactCSRenderer',
154 moduleType: RENDERER,
347 - isRenderer: true,
348 - label: 'native-cs-fiber',
349 - manglePropertiesOnProd: false,
350 - name: 'react-native-cs-renderer',
351 - featureFlags: 'packages/react-cs-renderer/src/ReactNativeCSFeatureFlags',
352 - paths: [
353 - 'packages/events/**/*.js',
354 - 'packages/react-native-renderer/**/*.js', // This is used since we reuse the error dialog code
355 - 'packages/react-cs-renderer/**/*.js',
356 - 'packages/react-reconciler/**/*.js',
357 - 'packages/shared/**/*.js',
358 - ],
155 + entry: 'react-cs-renderer',
156 + global: 'ReactCSRenderer',
157 + externals: [],
158 + featureFlags: 'react-cs-renderer/src/ReactNativeCSFeatureFlags',
159 },
160
161 /******* React Test Renderer *******/
162 {
363 - babelOpts: babelOptsReact,
163 + label: 'test',
164 bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD],
365 - config: {
366 - destDir: 'build/',
367 - moduleName: 'ReactTestRenderer',
368 - sourceMap: false,
369 - },
370 - entry: 'packages/react-test-renderer/index.js',
371 - externals: ['prop-types/checkPropTypes'],
372 - fbEntry: 'packages/react-test-renderer/index.js',
373 - hasteName: 'ReactTestRenderer',
165 moduleType: RENDERER,
375 - label: 'test-fiber',
376 - manglePropertiesOnProd: false,
377 - name: 'react-test-renderer',
378 - paths: [
379 - 'packages/events/**/*.js',
380 - 'packages/react-test-renderer/**/*.js',
381 - 'packages/react-reconciler/**/*.js',
382 - 'packages/shared/**/*.js',
383 - ],
166 + entry: 'react-test-renderer',
167 + global: 'ReactTestRenderer',
168 + externals: ['react'],
169 },
170 +
171 {
386 - babelOpts: babelOptsReact,
172 + label: 'test-shallow',
173 bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD],
388 - config: {
389 - destDir: 'build/',
390 - moduleName: 'ReactShallowRenderer',
391 - sourceMap: false,
392 - },
393 - entry: 'packages/react-test-renderer/shallow.js',
394 - externals: [
395 - 'react-dom',
396 - 'prop-types/checkPropTypes',
397 - 'react-test-renderer',
398 - ],
399 - fbEntry: 'packages/react-test-renderer/shallow.js',
400 - hasteName: 'ReactShallowRenderer',
174 moduleType: RENDERER,
402 - label: 'shallow-renderer',
403 - manglePropertiesOnProd: false,
404 - name: 'react-test-renderer/shallow',
405 - paths: ['packages/react-test-renderer/**/*.js', 'packages/shared/**/*.js'],
175 + entry: 'react-test-renderer/shallow',
176 + global: 'ReactShallowRenderer',
177 + externals: ['react'],
178 },
179
180 /******* React Noop Renderer (used only for fixtures/fiber-debugger) *******/
181 {
410 - babelOpts: babelOptsReact,
182 + label: 'noop',
183 bundleTypes: [NODE_DEV],
412 - config: {
413 - destDir: 'build/',
414 - globals: {
415 - react: 'React',
416 - },
417 - moduleName: 'ReactNoop',
418 - sourceMap: false,
419 - },
420 - entry: 'packages/react-noop-renderer/index.js',
421 - externals: ['prop-types/checkPropTypes', 'jest-matchers'],
184 moduleType: RENDERER,
423 - label: 'noop-fiber',
424 - manglePropertiesOnProd: false,
425 - name: 'react-noop-renderer',
426 - paths: [
427 - 'packages/react-noop/**/*.js',
428 - 'packages/react-reconciler/**/*.js',
429 - 'packages/shared/**/*.js',
430 - ],
185 + entry: 'react-noop-renderer',
186 + global: 'ReactNoopRenderer',
187 + externals: ['react', 'jest-matchers'],
188 },
189
190 /******* React Reconciler *******/
191 {
435 - babelOpts: babelOptsReact,
192 + label: 'react-reconciler',
193 bundleTypes: [NODE_DEV, NODE_PROD],
437 - config: {
438 - destDir: 'build/',
439 - globals: {
440 - react: 'React',
441 - },
442 - moduleName: 'ReactReconciler',
443 - sourceMap: false,
444 - },
445 - entry: 'packages/react-reconciler/index.js',
446 - externals: ['react', 'prop-types/checkPropTypes'],
194 moduleType: RECONCILER,
448 - label: 'react-reconciler',
449 - manglePropertiesOnProd: false,
450 - name: 'react-reconciler',
451 - paths: ['packages/react-reconciler/**/*.js', 'packages/shared/**/*.js'],
195 + entry: 'react-reconciler',
196 + global: 'ReactReconciler',
197 + externals: ['react'],
198 },
199 ];
200
scripts/rollup/mangle.js deleted
-12
@@ -1,12 +0,0 @@
1 -'use strict';
2 -
3 -// these are added as they are handled by rollup in some cases
4 -const propertyMangleWhitelist = [
5 - // React
6 - 'React',
7 - 'ReactDOM',
8 -];
9 -
10 -module.exports = {
11 - propertyMangleWhitelist,
12 -};
scripts/rollup/modules.js
+78 -316
@@ -1,346 +1,108 @@
1 'use strict';
2
3 -const resolve = require('path').resolve;
4 -const basename = require('path').basename;
5 -const sync = require('glob').sync;
3 +const path = require('path');
4 const bundleTypes = require('./bundles').bundleTypes;
7 -const moduleTypes = require('./bundles').moduleTypes;
8 -const extractErrorCodes = require('../error-codes/extract-errors');
9 -
10 -const exclude = [
11 - '**/__benchmarks__/**/*.js',
12 - '**/__tests__/**/*.js',
13 - '**/__mocks__/**/*.js',
14 -];
5
6 const UMD_DEV = bundleTypes.UMD_DEV;
7 const UMD_PROD = bundleTypes.UMD_PROD;
18 -const NODE_DEV = bundleTypes.NODE_DEV;
19 -const NODE_PROD = bundleTypes.NODE_PROD;
8 const FB_DEV = bundleTypes.FB_DEV;
9 const FB_PROD = bundleTypes.FB_PROD;
22 -const RN_DEV = bundleTypes.RN_DEV;
23 -const RN_PROD = bundleTypes.RN_PROD;
24 -
25 -const ISOMORPHIC = moduleTypes.ISOMORPHIC;
26 -const RENDERER = moduleTypes.RENDERER;
27 -
28 -const errorCodeOpts = {
29 - errorMapFilePath: 'scripts/error-codes/codes.json',
30 -};
31 -
32 -// these are the FBJS modules that are used throughout our bundles
33 -const fbjsModules = [
34 - 'fbjs/lib/warning',
35 - 'fbjs/lib/invariant',
36 - 'fbjs/lib/emptyFunction',
37 - 'fbjs/lib/emptyObject',
38 - 'fbjs/lib/hyphenateStyleName',
39 - 'fbjs/lib/getUnboundedScrollPosition',
40 - 'fbjs/lib/camelizeStyleName',
41 - 'fbjs/lib/containsNode',
42 - 'fbjs/lib/shallowEqual',
43 - 'fbjs/lib/getActiveElement',
44 - 'fbjs/lib/focusNode',
45 - 'fbjs/lib/EventListener',
46 - 'fbjs/lib/memoizeStringOnly',
47 - 'fbjs/lib/ExecutionEnvironment',
48 - 'fbjs/lib/createNodesFromMarkup',
49 - 'fbjs/lib/performanceNow',
50 -];
51 -
52 -const devOnlyFilesToStubOut = [
53 - "'ReactDebugCurrentFrame'",
54 - "'ReactComponentTreeHook'",
55 - "'ReactPerf'",
56 - "'ReactTestUtils'",
57 -];
58 -
59 -const legacyModules = [
60 - 'create-react-class',
61 - 'create-react-class/factory',
62 - 'prop-types',
63 - 'prop-types/checkPropTypes',
64 -];
65 -
66 -// this function builds up a very niave Haste-like moduleMap
67 -// that works to create up an alias map for modules to link
68 -// up to their actual disk location so Rollup can properly
69 -// bundle them
70 -function createModuleMap(paths, extractErrors, bundleType) {
71 - const moduleMap = {};
72 -
73 - paths.forEach(path => {
74 - const files = sync(path, {ignore: exclude});
75 -
76 - files.forEach(file => {
77 - if (extractErrors) {
78 - extractErrors(file);
79 - }
80 - const moduleName = basename(file, '.js');
10
82 - moduleMap[moduleName] = resolve(file);
83 - });
11 +// Bundles exporting globals that other modules rely on.
12 +const knownGlobals = Object.freeze({
13 + react: 'React',
14 + 'react-dom': 'ReactDOM',
15 +});
16 +
17 +// Redirect some modules to Haste forks in www.
18 +// Assuming their names in www are the same, and also match
19 +// imported names in corresponding ./shims/rollup/*-www.js shims.
20 +const forkedFBModules = Object.freeze([
21 + // At FB, we don't know them statically:
22 + 'shared/ReactFeatureFlags',
23 + // This logic is also forked internally.
24 + 'shared/lowPriorityWarning',
25 + // In FB bundles, we preserve an inline require to ReactCurrentOwner.
26 + // See the explanation in FB version of ReactCurrentOwner in www:
27 + 'react/src/ReactCurrentOwner',
28 +]);
29 +
30 +// Given ['react'] in bundle externals, returns { 'react': 'React' }.
31 +function getPeerGlobals(externals, moduleType) {
32 + const peerGlobals = {};
33 + externals.forEach(name => {
34 + if (
35 + !knownGlobals[name] &&
36 + (moduleType === UMD_DEV || moduleType === UMD_PROD)
37 + ) {
38 + throw new Error('Cannot build UMD without a global name for: ' + name);
39 + }
40 + peerGlobals[name] = knownGlobals[name];
41 });
85 - // if this is FB, we want to remove ReactCurrentOwner and lowPriorityWarning,
86 - // so we can handle it with a different case
87 - if (bundleType === FB_DEV || bundleType === FB_PROD) {
88 - delete moduleMap.ReactCurrentOwner;
89 - delete moduleMap.lowPriorityWarning;
90 - }
91 - return moduleMap;
42 + return peerGlobals;
43 }
44
94 -function getNodeModules(bundleType, moduleType) {
95 - // rather than adding the rollup node resolve plugin,
96 - // we can instead deal with the only node module that is used
97 - // for UMD bundles - object-assign
98 - switch (bundleType) {
99 - case UMD_DEV:
100 - case UMD_PROD:
101 - return {
102 - // Bundle object-assign once in the isomorphic React, and then use
103 - // that from the renderer UMD. Avoids bundling it in both UMDs.
104 - 'object-assign': moduleType === ISOMORPHIC
105 - ? resolve('./node_modules/object-assign/index.js')
106 - : resolve('./scripts/rollup/shims/rollup/assign.js'),
107 - // include the ART package modules directly by aliasing them from node_modules
108 - 'art/modes/current': resolve('./node_modules/art/modes/current.js'),
109 - 'art/modes/fast-noSideEffects': resolve(
110 - './node_modules/art/modes/fast-noSideEffects.js'
111 - ),
112 - 'art/core/transform': resolve('./node_modules/art/core/transform.js'),
113 - };
114 - case NODE_DEV:
115 - case NODE_PROD:
116 - case FB_DEV:
117 - case FB_PROD:
118 - case RN_DEV:
119 - case RN_PROD:
120 - return {};
45 +// Determines node_modules packages that are safe to assume will exist.
46 +function getDependencies(bundleType, entry) {
47 + const packageJson = require(path.basename(
48 + path.dirname(require.resolve(entry))
49 + ) + '/package.json');
50 + // Both deps and peerDeps are assumed as accessible.
51 + let deps = Array.from(
52 + new Set([
53 + ...Object.keys(packageJson.dependencies || {}),
54 + ...Object.keys(packageJson.peerDependencies || {}),
55 + ])
56 + );
57 + // In www, forked modules are also require-able.
58 + if (bundleType === FB_DEV || bundleType === FB_PROD) {
59 + deps = [...deps, ...forkedFBModules.map(name => path.basename(name))];
60 }
61 + return deps;
62 }
63
124 -function ignoreFBModules() {
125 - return [
126 - // These are FB-specific aliases to react and react-dom.
127 - // Don't attempt to bundle them into other bundles.
128 - 'React',
129 - 'ReactDOM',
130 - // At FB, we don't know them statically:
131 - 'ReactFeatureFlags',
132 - // In FB bundles, we preserve an inline require to ReactCurrentOwner.
133 - // See the explanation in FB version of ReactCurrentOwner in www:
134 - 'ReactCurrentOwner',
135 - 'lowPriorityWarning',
136 - ];
137 -}
138 -
139 -function ignoreReactNativeModules() {
140 - return [
141 - // This imports NativeMethodsMixin, causing a circular dependency.
142 - 'View',
143 - ];
144 -}
145 -
146 -function getExternalModules(externals, bundleType, moduleType) {
147 - // external modules tell Rollup that we should not attempt
148 - // to bundle these modules and instead treat them as
149 - // external dependencies to the bundle. so for CJS bundles
150 - // this means having a require("name-of-external-module") at
151 - // the top of the bundle. for UMD bundles this means having
152 - // both a require and a global check for them
153 - let externalModules = externals.slice();
64 +// Hijacks some modules for optimization and integration reasons.
65 +function getShims(bundleType, entry, featureFlags) {
66 + const shims = {};
67 switch (bundleType) {
68 case UMD_DEV:
69 case UMD_PROD:
157 - if (moduleType !== ISOMORPHIC) {
158 - externalModules.push('react');
159 - }
160 - break;
161 - case NODE_DEV:
162 - case NODE_PROD:
163 - case RN_DEV:
164 - case RN_PROD:
165 - fbjsModules.forEach(module => externalModules.push(module));
166 - externalModules.push('object-assign');
167 - if (moduleType !== ISOMORPHIC) {
168 - externalModules.push('react');
70 + if (getDependencies(bundleType, entry).indexOf('react') !== -1) {
71 + // Optimization: rely on object-assign polyfill that is already a part
72 + // of the React package instead of bundling it again.
73 + shims['object-assign'] = path.resolve(
74 + __dirname + '/shims/rollup/assign-umd.js'
75 + );
76 }
77 break;
78 case FB_DEV:
79 case FB_PROD:
173 - fbjsModules.forEach(module => externalModules.push(module));
174 - externalModules.push('object-assign');
175 - externalModules.push('ReactCurrentOwner');
176 - externalModules.push('lowPriorityWarning');
177 - if (moduleType !== ISOMORPHIC) {
178 - externalModules.push('React');
179 - if (externalModules.indexOf('react-dom') > -1) {
180 - externalModules.push('ReactDOM');
181 - }
182 - }
80 + // FB forks a few modules in www that are usually bundled.
81 + // Instead of bundling them, they need to be kept as require()s in the
82 + // final bundles so that they import www modules with the same names.
83 + // Rollup doesn't make it very easy to rewrite and ignore such a require,
84 + // so we resort to using a shim that re-exports the www module, and then
85 + // treating shim's target destinations as external (see getDependencies).
86 + forkedFBModules.forEach(srcPath => {
87 + const resolvedSrcPath = require.resolve(srcPath);
88 + const wwwName = path.parse(resolvedSrcPath).name;
89 + const shimPath = path.resolve(
90 + __dirname + `/shims/rollup/${wwwName}-www.js`
91 + );
92 + shims[resolvedSrcPath] = shimPath;
93 + });
94 break;
95 }
185 - return externalModules;
186 -}
187 -
188 -function getInternalModules(moduleType) {
189 - // we tell Rollup where these files are located internally, otherwise
190 - // it doesn't pick them up and assumes they're external
191 - let aliases = {
192 - reactProdInvariant: resolve('./packages/shared/reactProdInvariant.js'),
193 - };
194 - if (moduleType === RENDERER) {
195 - // Renderers bundle the whole reconciler.
196 - aliases['react-reconciler'] = resolve(
197 - './packages/react-reconciler/index.js'
96 + if (featureFlags) {
97 + shims[require.resolve('shared/ReactFeatureFlags')] = require.resolve(
98 + featureFlags
99 );
100 }
200 - return aliases;
201 -}
202 -
203 -function getFbjsModuleAliases(bundleType) {
204 - switch (bundleType) {
205 - case UMD_DEV:
206 - case UMD_PROD:
207 - // we want to bundle these modules, so we re-alias them to the actual
208 - // file so Rollup can bundle them up
209 - const fbjsModulesAlias = {};
210 - fbjsModules.forEach(fbjsModule => {
211 - fbjsModulesAlias[fbjsModule] = resolve(`./node_modules/${fbjsModule}`);
212 - });
213 - return fbjsModulesAlias;
214 - case NODE_DEV:
215 - case NODE_PROD:
216 - case FB_DEV:
217 - case FB_PROD:
218 - case RN_DEV:
219 - case RN_PROD:
220 - // for FB we don't want to bundle the above modules, instead keep them
221 - // as external require() calls in the bundle
222 - return {};
223 - }
224 -}
225 -
226 -function replaceFbjsModuleAliases(bundleType) {
227 - switch (bundleType) {
228 - case FB_DEV:
229 - case FB_PROD:
230 - // Haste at FB doesn't currently allow case sensitive names,
231 - // and product code already uses "React". In the future,
232 - // we will either allow both variants or migrate to lowercase.
233 - return {
234 - "'react'": "'React'",
235 - "'react-dom'": "'ReactDOM'",
236 - };
237 - default:
238 - return {};
239 - }
240 -}
241 -
242 -const devOnlyModuleStub = `'${resolve('./scripts/rollup/shims/rollup/DevOnlyStubShim.js')}'`;
243 -
244 -function replaceDevOnlyStubbedModules(bundleType) {
245 - switch (bundleType) {
246 - case UMD_DEV:
247 - case NODE_DEV:
248 - case FB_DEV:
249 - case RN_DEV:
250 - case RN_PROD:
251 - return {};
252 - case FB_PROD:
253 - case UMD_PROD:
254 - case NODE_PROD:
255 - const devOnlyModuleAliases = {};
256 - devOnlyFilesToStubOut.forEach(devOnlyModule => {
257 - devOnlyModuleAliases[devOnlyModule] = devOnlyModuleStub;
258 - });
259 - return devOnlyModuleAliases;
260 - }
261 -}
262 -
263 -function replaceLegacyModuleAliases(bundleType) {
264 - switch (bundleType) {
265 - case UMD_DEV:
266 - case UMD_PROD:
267 - const modulesAlias = {};
268 - legacyModules.forEach(legacyModule => {
269 - const modulePath = legacyModule.includes('/')
270 - ? legacyModule
271 - : `${legacyModule}/index`;
272 - const resolvedPath = resolve(`./node_modules/${modulePath}`);
273 - modulesAlias[`'${legacyModule}'`] = `'${resolvedPath}'`;
274 - });
275 - return modulesAlias;
276 - case NODE_DEV:
277 - case NODE_PROD:
278 - case FB_DEV:
279 - case FB_PROD:
280 - case RN_DEV:
281 - case RN_PROD:
282 - return {};
283 - }
284 -}
285 -
286 -function replaceBundleStubModules(bundleModulesToStub) {
287 - const stubbedModules = {};
288 -
289 - if (Array.isArray(bundleModulesToStub)) {
290 - bundleModulesToStub.forEach(module => {
291 - stubbedModules[`'${module}'`] = devOnlyModuleStub;
292 - });
293 - }
294 -
295 - return stubbedModules;
296 -}
297 -
298 -function getAliases(paths, bundleType, moduleType, extractErrors) {
299 - return Object.assign(
300 - createModuleMap(
301 - paths,
302 - extractErrors && extractErrorCodes(errorCodeOpts),
303 - bundleType
304 - ),
305 - getInternalModules(moduleType),
306 - getNodeModules(bundleType, moduleType),
307 - getFbjsModuleAliases(bundleType)
308 - );
309 -}
310 -
311 -function replaceFeatureFlags(featureFlags) {
312 - if (!featureFlags) {
313 - return {};
314 - }
315 - return {
316 - "'ReactFeatureFlags'": `'${resolve(featureFlags)}'`,
317 - };
318 -}
319 -
320 -function getDefaultReplaceModules(
321 - bundleType,
322 - bundleModulesToStub,
323 - featureFlags
324 -) {
325 - return Object.assign(
326 - {},
327 - replaceFbjsModuleAliases(bundleType),
328 - replaceDevOnlyStubbedModules(bundleType),
329 - replaceLegacyModuleAliases(bundleType),
330 - replaceBundleStubModules(bundleModulesToStub),
331 - replaceFeatureFlags(featureFlags)
332 - );
333 -}
334 -
335 -function getExcludedHasteGlobs() {
336 - return exclude;
101 + return shims;
102 }
103
104 module.exports = {
340 - getExcludedHasteGlobs,
341 - getDefaultReplaceModules,
342 - getAliases,
343 - ignoreFBModules,
344 - ignoreReactNativeModules,
345 - getExternalModules,
105 + getPeerGlobals,
106 + getDependencies,
107 + getShims,
108 };
scripts/rollup/packaging.js
+9 -11
@@ -24,7 +24,7 @@ const facebookWWWSrcDependencies = [
24
25 // these files need to be copied to the react-native build
26 const reactNativeSrcDependencies = [
27 - 'packages/react-reconciler/src/ReactTypes.js',
27 + 'packages/shared/ReactTypes.js',
28 'packages/react-native-renderer/src/ReactNativeTypes.js',
29 ];
30
@@ -200,27 +200,25 @@ function createNodePackage(bundleType, packageName, filename) {
200 return Promise.resolve();
201 }
202
203 -function getPackageDestination(config, bundleType, filename, hasteName) {
204 - let dest = config.destDir + filename;
205 -
203 +function getOutputPathRelativeToBuildFolder(bundleType, filename, hasteName) {
204 if (bundleType === FB_DEV || bundleType === FB_PROD) {
207 - dest = `${config.destDir}${facebookWWW}/${filename}`;
205 + return `${facebookWWW}/${filename}`;
206 } else if (bundleType === UMD_DEV || bundleType === UMD_PROD) {
209 - dest = `${config.destDir}dist/${filename}`;
207 + return `dist/${filename}`;
208 } else if (bundleType === RN_DEV || bundleType === RN_PROD) {
209 if (hasteName === 'ReactRTRenderer') {
212 - dest = `${config.destDir}react-rt/${filename}`;
210 + return `react-rt/${filename}`;
211 } else if (hasteName === 'ReactCSRenderer') {
214 - dest = `${config.destDir}react-cs/${filename}`;
212 + return `react-cs/${filename}`;
213 } else {
216 - dest = `${config.destDir}react-native/${filename}`;
214 + return `react-native/${filename}`;
215 }
216 }
219 - return dest;
217 + return filename;
218 }
219
220 module.exports = {
223 - getPackageDestination,
221 + getOutputPathRelativeToBuildFolder,
222 createNodePackage,
223 getPackageName,
224 createFacebookWWWBuild,
scripts/rollup/results.json
+79 -79
@@ -1,204 +1,204 @@
1 {
2 "bundleSizes": {
3 "react.development.js (UMD_DEV)": {
4 - "size": 54803,
5 - "gzip": 14350
4 + "size": 54574,
5 + "gzip": 14304
6 },
7 "react.production.min.js (UMD_PROD)": {
8 "size": 6634,
9 "gzip": 2764
10 },
11 "react.development.js (NODE_DEV)": {
12 - "size": 45707,
13 - "gzip": 12095
12 + "size": 45478,
13 + "gzip": 12054
14 },
15 "react.production.min.js (NODE_PROD)": {
16 "size": 5611,
17 "gzip": 2364
18 },
19 "React-dev.js (FB_DEV)": {
20 - "size": 43033,
21 - "gzip": 11331
20 + "size": 42953,
21 + "gzip": 11326
22 },
23 "React-prod.js (FB_PROD)": {
24 - "size": 24848,
25 - "gzip": 6713
24 + "size": 24830,
25 + "gzip": 6718
26 },
27 "react-dom.development.js (UMD_DEV)": {
28 - "size": 628875,
29 - "gzip": 144023
28 + "size": 628275,
29 + "gzip": 144026
30 },
31 "react-dom.production.min.js (UMD_PROD)": {
32 - "size": 100571,
33 - "gzip": 31752
32 + "size": 100910,
33 + "gzip": 31885
34 },
35 "react-dom.development.js (NODE_DEV)": {
36 - "size": 591158,
37 - "gzip": 135256
36 + "size": 590510,
37 + "gzip": 135251
38 },
39 "react-dom.production.min.js (NODE_PROD)": {
40 - "size": 107130,
41 - "gzip": 33570
40 + "size": 107143,
41 + "gzip": 33563
42 },
43 "ReactDOM-dev.js (FB_DEV)": {
44 - "size": 588384,
45 - "gzip": 134603
44 + "size": 587573,
45 + "gzip": 134618
46 },
47 "ReactDOM-prod.js (FB_PROD)": {
48 - "size": 418558,
49 - "gzip": 92979
48 + "size": 418348,
49 + "gzip": 92934
50 },
51 "react-dom-test-utils.development.js (NODE_DEV)": {
52 - "size": 41743,
53 - "gzip": 11118
52 + "size": 41554,
53 + "gzip": 11082
54 },
55 "react-dom-test-utils.production.min.js (NODE_PROD)": {
56 "size": 11608,
57 "gzip": 4241
58 },
59 "ReactTestUtils-dev.js (FB_DEV)": {
60 - "size": 41569,
61 - "gzip": 11069
60 + "size": 41172,
61 + "gzip": 11056
62 },
63 "react-dom-unstable-native-dependencies.development.js (UMD_DEV)": {
64 - "size": 84961,
65 - "gzip": 21296
64 + "size": 84862,
65 + "gzip": 21266
66 },
67 "react-dom-unstable-native-dependencies.production.min.js (UMD_PROD)": {
68 "size": 14441,
69 "gzip": 4650
70 },
71 "react-dom-unstable-native-dependencies.development.js (NODE_DEV)": {
72 - "size": 80754,
73 - "gzip": 19972
72 + "size": 80643,
73 + "gzip": 19931
74 },
75 "react-dom-unstable-native-dependencies.production.min.js (NODE_PROD)": {
76 "size": 14003,
77 "gzip": 4510
78 },
79 "ReactDOMUnstableNativeDependencies-dev.js (FB_DEV)": {
80 - "size": 80207,
81 - "gzip": 19890
80 + "size": 80136,
81 + "gzip": 19877
82 },
83 "ReactDOMUnstableNativeDependencies-prod.js (FB_PROD)": {
84 - "size": 65181,
85 - "gzip": 15545
84 + "size": 65144,
85 + "gzip": 15540
86 },
87 "react-dom-server.browser.development.js (UMD_DEV)": {
88 - "size": 124902,
89 - "gzip": 32255
88 + "size": 124580,
89 + "gzip": 32216
90 },
91 "react-dom-server.browser.production.min.js (UMD_PROD)": {
92 "size": 15337,
93 "gzip": 5967
94 },
95 "react-dom-server.browser.development.js (NODE_DEV)": {
96 - "size": 94822,
97 - "gzip": 25134
96 + "size": 94467,
97 + "gzip": 25081
98 },
99 "react-dom-server.browser.production.min.js (NODE_PROD)": {
100 "size": 15063,
101 "gzip": 5899
102 },
103 "ReactDOMServer-dev.js (FB_DEV)": {
104 - "size": 94499,
105 - "gzip": 25066
104 + "size": 93943,
105 + "gzip": 25012
106 },
107 "ReactDOMServer-prod.js (FB_PROD)": {
108 - "size": 42463,
108 + "size": 42426,
109 "gzip": 11846
110 },
111 "react-dom-server.node.development.js (NODE_DEV)": {
112 - "size": 97084,
113 - "gzip": 25683
112 + "size": 96739,
113 + "gzip": 25630
114 },
115 "react-dom-server.node.production.min.js (NODE_PROD)": {
116 "size": 15988,
117 "gzip": 6235
118 },
119 "react-art.development.js (UMD_DEV)": {
120 - "size": 376187,
121 - "gzip": 82324
120 + "size": 374324,
121 + "gzip": 82151
122 },
123 "react-art.production.min.js (UMD_PROD)": {
124 - "size": 82965,
125 - "gzip": 25790
124 + "size": 82762,
125 + "gzip": 25775
126 },
127 "react-art.development.js (NODE_DEV)": {
128 - "size": 300546,
129 - "gzip": 63199
128 + "size": 300081,
129 + "gzip": 63132
130 },
131 "react-art.production.min.js (NODE_PROD)": {
132 - "size": 54380,
133 - "gzip": 17024
132 + "size": 54393,
133 + "gzip": 17033
134 },
135 "ReactART-dev.js (FB_DEV)": {
136 - "size": 299425,
137 - "gzip": 63131
136 + "size": 298687,
137 + "gzip": 63040
138 },
139 "ReactART-prod.js (FB_PROD)": {
140 - "size": 224127,
141 - "gzip": 46026
140 + "size": 223978,
141 + "gzip": 46012
142 },
143 "ReactNativeRenderer-dev.js (RN_DEV)": {
144 - "size": 286133,
145 - "gzip": 49281
144 + "size": 286147,
145 + "gzip": 49197
146 },
147 "ReactNativeRenderer-prod.js (RN_PROD)": {
148 - "size": 223833,
149 - "gzip": 38518
148 + "size": 223837,
149 + "gzip": 38577
150 },
151 "ReactRTRenderer-dev.js (RN_DEV)": {
152 - "size": 217990,
153 - "gzip": 36810
152 + "size": 218004,
153 + "gzip": 36738
154 },
155 "ReactRTRenderer-prod.js (RN_PROD)": {
156 - "size": 165476,
157 - "gzip": 27536
156 + "size": 165480,
157 + "gzip": 27593
158 },
159 "ReactCSRenderer-dev.js (RN_DEV)": {
160 "size": 210411,
161 - "gzip": 35053
161 + "gzip": 35016
162 },
163 "ReactCSRenderer-prod.js (RN_PROD)": {
164 "size": 160471,
165 - "gzip": 26346
165 + "gzip": 26308
166 },
167 "react-test-renderer.development.js (NODE_DEV)": {
168 - "size": 304403,
169 - "gzip": 63639
168 + "size": 303938,
169 + "gzip": 63567
170 },
171 "react-test-renderer.production.min.js (NODE_PROD)": {
172 - "size": 55973,
173 - "gzip": 17246
172 + "size": 55986,
173 + "gzip": 17251
174 },
175 "ReactTestRenderer-dev.js (FB_DEV)": {
176 - "size": 303243,
177 - "gzip": 63566
176 + "size": 302534,
177 + "gzip": 63485
178 },
179 "react-test-renderer-shallow.development.js (NODE_DEV)": {
180 - "size": 9364,
181 - "gzip": 2335
180 + "size": 9290,
181 + "gzip": 2321
182 },
183 "react-test-renderer-shallow.production.min.js (NODE_PROD)": {
184 "size": 4630,
185 "gzip": 1665
186 },
187 "ReactShallowRenderer-dev.js (FB_DEV)": {
188 - "size": 9037,
189 - "gzip": 2262
188 + "size": 9002,
189 + "gzip": 2256
190 },
191 "react-noop-renderer.development.js (NODE_DEV)": {
192 - "size": 293612,
193 - "gzip": 60826
192 + "size": 293219,
193 + "gzip": 60806
194 },
195 "react-reconciler.development.js (NODE_DEV)": {
196 - "size": 279284,
197 - "gzip": 57666
196 + "size": 278819,
197 + "gzip": 57593
198 },
199 "react-reconciler.production.min.js (NODE_PROD)": {
200 - "size": 38232,
201 - "gzip": 11939
200 + "size": 38245,
201 + "gzip": 11943
202 }
203 }
204 }
\ No newline at end of file
scripts/rollup/shims/rollup/DevOnlyStubShim.js deleted
-1
@@ -1 +0,0 @@
1 -module.exports = null;
scripts/rollup/shims/rollup/ReactCurrentOwner-www.js new
+1
@@ -0,0 +1 @@
1 +module.exports = require('ReactCurrentOwner');
scripts/rollup/shims/rollup/ReactDebugCurrentFrameRollupShim.js deleted
-4
@@ -1,4 +0,0 @@
1 -var ReactInternals = require('react')
2 - .__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
3 -
4 -module.exports = ReactInternals.ReactDebugCurrentFrame;
scripts/rollup/shims/rollup/ReactFeatureFlags-www.js new
+1
@@ -0,0 +1 @@
1 +module.exports = require('ReactFeatureFlags');
scripts/rollup/shims/rollup/assign-umd.js renamed
scripts/rollup/shims/rollup/lowPriorityWarning-www.js new
+1
@@ -0,0 +1 @@
1 +module.exports = require('lowPriorityWarning');