diff --git a/package.json b/package.json index 6e7318e4f746b..0299ddf552368 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ ".*": "./scripts/jest/preprocessor.js" }, "transformIgnorePatterns": [ - "/node_modules/(?!react)" + "/node_modules/(?!react|shared|events)" ], "setupFiles": [ "./scripts/jest/setup.js", diff --git a/packages/events/EventPluginHub.js b/packages/events/EventPluginHub.js index 7238b3ec773a0..4d88672aa2562 100644 --- a/packages/events/EventPluginHub.js +++ b/packages/events/EventPluginHub.js @@ -3,18 +3,16 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule EventPluginHub */ 'use strict'; -var EventPluginRegistry = require('EventPluginRegistry'); -var EventPluginUtils = require('EventPluginUtils'); -var ReactErrorUtils = require('ReactErrorUtils'); +var EventPluginRegistry = require('./EventPluginRegistry'); +var EventPluginUtils = require('./EventPluginUtils'); +var ReactErrorUtils = require('shared/ReactErrorUtils'); -var accumulateInto = require('accumulateInto'); -var forEachAccumulated = require('forEachAccumulated'); +var accumulateInto = require('./accumulateInto'); +var forEachAccumulated = require('./forEachAccumulated'); var invariant = require('fbjs/lib/invariant'); /** diff --git a/packages/events/EventPluginRegistry.js b/packages/events/EventPluginRegistry.js index 4aa901c1d1914..caddeb122cd14 100644 --- a/packages/events/EventPluginRegistry.js +++ b/packages/events/EventPluginRegistry.js @@ -4,15 +4,18 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule EventPluginRegistry * @flow */ 'use strict'; -import type {DispatchConfig} from 'ReactSyntheticEventType'; +import type {DispatchConfig} from './ReactSyntheticEventType'; -import type {AnyNativeEvent, PluginName, PluginModule} from 'PluginModuleType'; +import type { + AnyNativeEvent, + PluginName, + PluginModule, +} from './PluginModuleType'; type NamesToPlugins = {[key: PluginName]: PluginModule}; diff --git a/packages/events/EventPluginUtils.js b/packages/events/EventPluginUtils.js index e5e80995457ed..79e07bc6e0c09 100644 --- a/packages/events/EventPluginUtils.js +++ b/packages/events/EventPluginUtils.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule EventPluginUtils */ 'use strict'; -var ReactErrorUtils = require('ReactErrorUtils'); +var ReactErrorUtils = require('shared/ReactErrorUtils'); var invariant = require('fbjs/lib/invariant'); diff --git a/packages/events/EventPropagators.js b/packages/events/EventPropagators.js index 9788e09f73d23..d0d0057f8b06e 100644 --- a/packages/events/EventPropagators.js +++ b/packages/events/EventPropagators.js @@ -3,17 +3,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule EventPropagators */ 'use strict'; -var EventPluginHub = require('EventPluginHub'); -var ReactTreeTraversal = require('ReactTreeTraversal'); +var EventPluginHub = require('./EventPluginHub'); +var ReactTreeTraversal = require('shared/ReactTreeTraversal'); -var accumulateInto = require('accumulateInto'); -var forEachAccumulated = require('forEachAccumulated'); +var accumulateInto = require('./accumulateInto'); +var forEachAccumulated = require('./forEachAccumulated'); type PropagationPhases = 'bubbled' | 'captured'; diff --git a/packages/events/PluginModuleType.js b/packages/events/PluginModuleType.js index ad9b90e78d735..d38a8d3923d73 100644 --- a/packages/events/PluginModuleType.js +++ b/packages/events/PluginModuleType.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule PluginModuleType * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; import type { DispatchConfig, ReactSyntheticEvent, -} from 'ReactSyntheticEventType'; +} from './ReactSyntheticEventType'; export type EventTypes = {[key: string]: DispatchConfig}; diff --git a/packages/events/ReactControlledComponent.js b/packages/events/ReactControlledComponent.js index 45eec0c89eb6d..a89a2d01f394c 100644 --- a/packages/events/ReactControlledComponent.js +++ b/packages/events/ReactControlledComponent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactControlledComponent */ 'use strict'; -var EventPluginUtils = require('EventPluginUtils'); +var EventPluginUtils = require('./EventPluginUtils'); var invariant = require('fbjs/lib/invariant'); diff --git a/packages/events/ReactEventEmitterMixin.js b/packages/events/ReactEventEmitterMixin.js index b594b088a6fbd..aeb0228887a10 100644 --- a/packages/events/ReactEventEmitterMixin.js +++ b/packages/events/ReactEventEmitterMixin.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactEventEmitterMixin */ 'use strict'; -var EventPluginHub = require('EventPluginHub'); +var EventPluginHub = require('./EventPluginHub'); function runEventQueueInBatch(events) { EventPluginHub.enqueueEvents(events); diff --git a/packages/events/ReactGenericBatching.js b/packages/events/ReactGenericBatching.js index 6517db8b3a4c8..8a3fcdb5a5697 100644 --- a/packages/events/ReactGenericBatching.js +++ b/packages/events/ReactGenericBatching.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactGenericBatching */ 'use strict'; -var ReactControlledComponent = require('ReactControlledComponent'); +var ReactControlledComponent = require('./ReactControlledComponent'); // Used as a way to call batchedUpdates when we don't have a reference to // the renderer. Such as when we're dispatching events or if third party diff --git a/packages/events/ReactSyntheticEventType.js b/packages/events/ReactSyntheticEventType.js index 86c8a711aeb58..2e844e551912d 100644 --- a/packages/events/ReactSyntheticEventType.js +++ b/packages/events/ReactSyntheticEventType.js @@ -5,14 +5,12 @@ * LICENSE file in the root directory of this source tree. * * Flow type for SyntheticEvent class that includes private properties - * - * @providesModule ReactSyntheticEventType * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; export type DispatchConfig = { dependencies: Array, diff --git a/packages/events/ResponderEventPlugin.js b/packages/events/ResponderEventPlugin.js index 494fbb5a1db24..d9df1c28e4e99 100644 --- a/packages/events/ResponderEventPlugin.js +++ b/packages/events/ResponderEventPlugin.js @@ -3,19 +3,17 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ResponderEventPlugin */ 'use strict'; -var EventPluginUtils = require('EventPluginUtils'); -var EventPropagators = require('EventPropagators'); -var ReactTreeTraversal = require('ReactTreeTraversal'); -var ResponderSyntheticEvent = require('ResponderSyntheticEvent'); -var ResponderTouchHistoryStore = require('ResponderTouchHistoryStore'); +var EventPluginUtils = require('./EventPluginUtils'); +var EventPropagators = require('./EventPropagators'); +var ReactTreeTraversal = require('shared/ReactTreeTraversal'); +var ResponderSyntheticEvent = require('./ResponderSyntheticEvent'); +var ResponderTouchHistoryStore = require('./ResponderTouchHistoryStore'); -var accumulate = require('accumulate'); +var accumulate = require('./accumulate'); var isStartish = EventPluginUtils.isStartish; var isMoveish = EventPluginUtils.isMoveish; diff --git a/packages/events/ResponderSyntheticEvent.js b/packages/events/ResponderSyntheticEvent.js index 9b9acefcf92f8..12a2b79b83d7e 100644 --- a/packages/events/ResponderSyntheticEvent.js +++ b/packages/events/ResponderSyntheticEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ResponderSyntheticEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('./SyntheticEvent'); /** * `touchHistory` isn't actually on the native event, but putting it in the diff --git a/packages/events/ResponderTouchHistoryStore.js b/packages/events/ResponderTouchHistoryStore.js index 020631b394b93..fa04c0e598e38 100644 --- a/packages/events/ResponderTouchHistoryStore.js +++ b/packages/events/ResponderTouchHistoryStore.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ResponderTouchHistoryStore * @flow */ 'use strict'; -const EventPluginUtils = require('EventPluginUtils'); +const EventPluginUtils = require('./EventPluginUtils'); const invariant = require('fbjs/lib/invariant'); diff --git a/packages/events/SyntheticEvent.js b/packages/events/SyntheticEvent.js index c984d09ac4420..ab9ccf0d48940 100644 --- a/packages/events/SyntheticEvent.js +++ b/packages/events/SyntheticEvent.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticEvent */ /* eslint valid-typeof: 0 */ diff --git a/packages/events/__tests__/EventPluginRegistry-test.js b/packages/events/__tests__/EventPluginRegistry-test.js index 936865cfec1f1..6273e7779901d 100644 --- a/packages/events/__tests__/EventPluginRegistry-test.js +++ b/packages/events/__tests__/EventPluginRegistry-test.js @@ -16,7 +16,7 @@ describe('EventPluginRegistry', () => { beforeEach(() => { jest.resetModuleRegistry(); // TODO: can we express this test with only public API? - EventPluginRegistry = require('EventPluginRegistry'); + EventPluginRegistry = require('events/EventPluginRegistry'); createPlugin = function(properties) { return Object.assign({extractEvents: function() {}}, properties); diff --git a/packages/events/__tests__/ResponderEventPlugin-test.js b/packages/events/__tests__/ResponderEventPlugin-test.js index 90a7ad6d43865..ea3d7325e6d58 100644 --- a/packages/events/__tests__/ResponderEventPlugin-test.js +++ b/packages/events/__tests__/ResponderEventPlugin-test.js @@ -9,7 +9,7 @@ 'use strict'; -var {HostComponent} = require('ReactTypeOfWork'); +var {HostComponent} = require('shared/ReactTypeOfWork'); var EventPluginHub; var ResponderEventPlugin; diff --git a/packages/events/__tests__/accumulateInto-test.js b/packages/events/__tests__/accumulateInto-test.js index 990c534655204..44fff51494225 100644 --- a/packages/events/__tests__/accumulateInto-test.js +++ b/packages/events/__tests__/accumulateInto-test.js @@ -13,7 +13,7 @@ var accumulateInto; describe('accumulateInto', () => { beforeEach(() => { - accumulateInto = require('accumulateInto'); + accumulateInto = require('events/accumulateInto'); }); it('throws if the second item is null', () => { diff --git a/packages/events/accumulate.js b/packages/events/accumulate.js index ca858d204301d..c9d6ff5664e8f 100644 --- a/packages/events/accumulate.js +++ b/packages/events/accumulate.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule accumulate * @flow */ diff --git a/packages/events/accumulateInto.js b/packages/events/accumulateInto.js index 291d34f67b44c..9dff46aad912b 100644 --- a/packages/events/accumulateInto.js +++ b/packages/events/accumulateInto.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule accumulateInto * @flow */ diff --git a/packages/events/forEachAccumulated.js b/packages/events/forEachAccumulated.js index 6ff010cdcca26..39457d97affb8 100644 --- a/packages/events/forEachAccumulated.js +++ b/packages/events/forEachAccumulated.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule forEachAccumulated * @flow */ diff --git a/packages/events/package.json b/packages/events/package.json new file mode 100644 index 0000000000000..66aeb11363975 --- /dev/null +++ b/packages/events/package.json @@ -0,0 +1,5 @@ +{ + "private": true, + "name": "events", + "version": "0.0.0" +} diff --git a/packages/react-art/npm/Circle.js b/packages/react-art/npm/Circle.js index bad709488d7f5..4ae42980b189a 100644 --- a/packages/react-art/npm/Circle.js +++ b/packages/react-art/npm/Circle.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule Circle.art * @typechecks * * Example usage: diff --git a/packages/react-art/npm/Rectangle.js b/packages/react-art/npm/Rectangle.js index 2284c517122f2..8488f6a388a9a 100644 --- a/packages/react-art/npm/Rectangle.js +++ b/packages/react-art/npm/Rectangle.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule Rectangle.art * @typechecks * * Example usage: diff --git a/packages/react-art/npm/Wedge.js b/packages/react-art/npm/Wedge.js index bcb671db0b82a..9a9fd51375328 100644 --- a/packages/react-art/npm/Wedge.js +++ b/packages/react-art/npm/Wedge.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule Wedge.art * @typechecks * * Example usage: diff --git a/packages/react-art/package.json b/packages/react-art/package.json index 94c7f9a8b19a6..49bf9d82553ae 100644 --- a/packages/react-art/package.json +++ b/packages/react-art/package.json @@ -26,6 +26,7 @@ "prop-types": "^15.6.0" }, "peerDependencies": { + "art": "^0.10.1", "react": "^16.0.0" }, "files": [ diff --git a/packages/react-art/src/ReactART.js b/packages/react-art/src/ReactART.js index 5676ab8f8d05f..de404bb52146d 100644 --- a/packages/react-art/src/ReactART.js +++ b/packages/react-art/src/ReactART.js @@ -18,7 +18,7 @@ const invariant = require('fbjs/lib/invariant'); const emptyObject = require('fbjs/lib/emptyObject'); const React = require('react'); const ReactFiberReconciler = require('react-reconciler'); -const ReactDOMFrameScheduling = require('ReactDOMFrameScheduling'); +const ReactDOMFrameScheduling = require('shared/ReactDOMFrameScheduling'); const {Component} = React; diff --git a/packages/react-cs-renderer/package.json b/packages/react-cs-renderer/package.json index 132e8f13b4bfb..212589229a905 100644 --- a/packages/react-cs-renderer/package.json +++ b/packages/react-cs-renderer/package.json @@ -5,6 +5,10 @@ "repository": "facebook/react", "dependencies": { "fbjs": "^0.8.16", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16.0.0" } } diff --git a/packages/react-cs-renderer/src/ReactNativeCS.js b/packages/react-cs-renderer/src/ReactNativeCS.js index 1706031295f85..b83a4f25a7f3a 100644 --- a/packages/react-cs-renderer/src/ReactNativeCS.js +++ b/packages/react-cs-renderer/src/ReactNativeCS.js @@ -9,12 +9,15 @@ 'use strict'; -const ReactGenericBatching = require('ReactGenericBatching'); -const ReactVersion = require('ReactVersion'); +const ReactGenericBatching = require('events/ReactGenericBatching'); +const ReactVersion = require('shared/ReactVersion'); -const {injectInternals} = require('ReactFiberDevToolsHook'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +const { + injectInternals, +} = require('react-reconciler/src/ReactFiberDevToolsHook'); -import type {ReactNativeCSType} from 'ReactNativeCSTypes'; +import type {ReactNativeCSType} from './ReactNativeCSTypes'; const ReactFiberReconciler = require('react-reconciler'); diff --git a/packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js b/packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js index 874fdf3256033..cfa1f95e1bd9b 100644 --- a/packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js +++ b/packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeCSFeatureFlags * @flow */ 'use strict'; -import type {FeatureFlags} from 'ReactFeatureFlags'; +import type {FeatureFlags} from 'shared/ReactFeatureFlags'; var ReactNativeCSFeatureFlags: FeatureFlags = { enableAsyncSubtreeAPI: true, diff --git a/packages/react-cs-renderer/src/ReactNativeCSTypes.js b/packages/react-cs-renderer/src/ReactNativeCSTypes.js index 85c5025dbd410..6976804c17ffc 100644 --- a/packages/react-cs-renderer/src/ReactNativeCSTypes.js +++ b/packages/react-cs-renderer/src/ReactNativeCSTypes.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeCSTypes * @flow */ 'use strict'; diff --git a/packages/react-cs-renderer/src/__tests__/ReactNativeCS-test.js b/packages/react-cs-renderer/src/__tests__/ReactNativeCS-test.js index 3fa811fb255b2..dd779a10bd995 100644 --- a/packages/react-cs-renderer/src/__tests__/ReactNativeCS-test.js +++ b/packages/react-cs-renderer/src/__tests__/ReactNativeCS-test.js @@ -12,7 +12,9 @@ var React; var ReactNativeCS; -jest.mock('ReactFeatureFlags', () => require('ReactNativeCSFeatureFlags')); +jest.mock('shared/ReactFeatureFlags', () => + require('react-cs-renderer/src/ReactNativeCSFeatureFlags'), +); describe('ReactNativeCS', () => { beforeEach(() => { diff --git a/packages/react-dom/index.fb.js b/packages/react-dom/index.fb.js index 9c7cfca72f5e1..6771b7557eeb4 100644 --- a/packages/react-dom/index.fb.js +++ b/packages/react-dom/index.fb.js @@ -11,16 +11,17 @@ var ReactDOM = require('./src/client/ReactDOM'); Object.assign(ReactDOM.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, { // These are real internal dependencies that are trickier to remove: - ReactBrowserEventEmitter: require('ReactBrowserEventEmitter'), - ReactErrorUtils: require('ReactErrorUtils'), - ReactFiberErrorLogger: require('ReactFiberErrorLogger'), - ReactFiberTreeReflection: require('ReactFiberTreeReflection'), - ReactDOMComponentTree: require('ReactDOMComponentTree'), - ReactInstanceMap: require('ReactInstanceMap'), + ReactBrowserEventEmitter: require('./src/events/ReactBrowserEventEmitter'), + ReactErrorUtils: require('shared/ReactErrorUtils'), + // TODO: direct imports like some-package/src/* are bad. Fix me. + ReactFiberErrorLogger: require('react-reconciler/src/ReactFiberErrorLogger'), + ReactFiberTreeReflection: require('shared/ReactFiberTreeReflection'), + ReactDOMComponentTree: require('./src/client/ReactDOMComponentTree'), + ReactInstanceMap: require('shared/ReactInstanceMap'), // These are dependencies of TapEventPlugin: - EventPluginUtils: require('EventPluginUtils'), - EventPropagators: require('EventPropagators'), - SyntheticUIEvent: require('SyntheticUIEvent'), + EventPluginUtils: require('events/EventPluginUtils'), + EventPropagators: require('events/EventPropagators'), + SyntheticUIEvent: require('./src/events/SyntheticUIEvent'), }); module.exports = ReactDOM; diff --git a/packages/react-dom/npm/server.js b/packages/react-dom/npm/server.js index c45c37af6f37c..02f1553990a22 100644 --- a/packages/react-dom/npm/server.js +++ b/packages/react-dom/npm/server.js @@ -1,7 +1,3 @@ 'use strict'; -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-dom-server.node.production.min.js'); -} else { - module.exports = require('./cjs/react-dom-server.node.development.js'); -} +module.exports = require('./server.node'); diff --git a/packages/react-dom/npm/server.node.js b/packages/react-dom/npm/server.node.js new file mode 100644 index 0000000000000..c45c37af6f37c --- /dev/null +++ b/packages/react-dom/npm/server.node.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-dom-server.node.production.min.js'); +} else { + module.exports = require('./cjs/react-dom-server.node.development.js'); +} diff --git a/packages/react-dom/package.json b/packages/react-dom/package.json index e7e97ff5707fa..d6e108610642b 100644 --- a/packages/react-dom/package.json +++ b/packages/react-dom/package.json @@ -27,6 +27,7 @@ "index.js", "server.js", "server.browser.js", + "server.node.js", "test-utils.js", "unstable-native-dependencies.js", "cjs/", diff --git a/packages/react-dom/server.js b/packages/react-dom/server.js index 27cd64e7ce9ec..d05bb1380e0f5 100644 --- a/packages/react-dom/server.js +++ b/packages/react-dom/server.js @@ -9,4 +9,4 @@ 'use strict'; -module.exports = require('./src/server/ReactDOMServerNode'); +module.exports = require('./server.node'); diff --git a/packages/react-dom/server.node.js b/packages/react-dom/server.node.js new file mode 100644 index 0000000000000..27cd64e7ce9ec --- /dev/null +++ b/packages/react-dom/server.node.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +'use strict'; + +module.exports = require('./src/server/ReactDOMServerNode'); diff --git a/packages/react-dom/src/__tests__/EventPluginHub-test.js b/packages/react-dom/src/__tests__/EventPluginHub-test.js index 74421573dc317..bcf8d7f29cc8d 100644 --- a/packages/react-dom/src/__tests__/EventPluginHub-test.js +++ b/packages/react-dom/src/__tests__/EventPluginHub-test.js @@ -9,7 +9,7 @@ 'use strict'; -jest.mock('isEventSupported'); +jest.mock('react-dom/src/events/isEventSupported'); describe('EventPluginHub', () => { var React; diff --git a/packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js b/packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js index 0efb4b3cceb1f..ef826dd01bf8c 100644 --- a/packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js +++ b/packages/react-dom/src/__tests__/ReactBrowserEventEmitter-test.js @@ -59,14 +59,14 @@ describe('ReactBrowserEventEmitter', () => { LISTENER.mockClear(); EventListener = require('fbjs/lib/EventListener'); // TODO: can we express this test with only public API? - EventPluginHub = require('EventPluginHub'); - EventPluginRegistry = require('EventPluginRegistry'); + EventPluginHub = require('events/EventPluginHub'); + EventPluginRegistry = require('events/EventPluginRegistry'); React = require('react'); ReactDOM = require('react-dom'); - ReactDOMComponentTree = require('ReactDOMComponentTree'); - ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); + ReactBrowserEventEmitter = require('react-dom/src/events/ReactBrowserEventEmitter'); ReactTestUtils = require('react-dom/test-utils'); - TapEventPlugin = require('TapEventPlugin'); + TapEventPlugin = require('react-dom/src/events/TapEventPlugin'); var container = document.createElement('div'); diff --git a/packages/react-dom/src/__tests__/ReactDOMComponent-test.js b/packages/react-dom/src/__tests__/ReactDOMComponent-test.js index b1211e03de7b3..c16c4a8fdd3ae 100644 --- a/packages/react-dom/src/__tests__/ReactDOMComponent-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMComponent-test.js @@ -27,7 +27,7 @@ describe('ReactDOMComponent', () => { ReactDOMServer = require('react-dom/server'); ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? - inputValueTracking = require('inputValueTracking'); + inputValueTracking = require('react-dom/src/client/inputValueTracking'); }); describe('updateDOM', () => { diff --git a/packages/react-dom/src/__tests__/ReactDOMComponentTree-test.js b/packages/react-dom/src/__tests__/ReactDOMComponentTree-test.js index c3cf73bd457a9..1ff250f2569ec 100644 --- a/packages/react-dom/src/__tests__/ReactDOMComponentTree-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMComponentTree-test.js @@ -34,7 +34,7 @@ describe('ReactDOMComponentTree', () => { React = require('react'); ReactDOM = require('react-dom'); // TODO: can we express this test with only public API? - ReactDOMComponentTree = require('ReactDOMComponentTree'); + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); ReactDOMServer = require('react-dom/server'); }); diff --git a/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js b/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js index c8217bae9dc0c..c126799b2fa3f 100644 --- a/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js @@ -24,8 +24,8 @@ describe('ReactDOMEventListener', () => { React = require('react'); ReactDOM = require('react-dom'); // TODO: can we express this test with only public API? - ReactDOMComponentTree = require('ReactDOMComponentTree'); - ReactDOMEventListener = require('ReactDOMEventListener'); + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); + ReactDOMEventListener = require('react-dom/src/events/ReactDOMEventListener'); ReactTestUtils = require('react-dom/test-utils'); handleTopLevel = jest.fn(); diff --git a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js index e8b4726e5c2f5..17250d461eb69 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js @@ -1,5 +1,16 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @emails react-core + */ + +'use strict'; + var React = require('react'); -var ReactFeatureFlags = require('ReactFeatureFlags'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); var ReactDOM; @@ -27,7 +38,7 @@ describe('ReactDOMFiberAsync', () => { describe('with feature flag disabled', () => { beforeEach(() => { jest.resetModules(); - ReactFeatureFlags = require('ReactFeatureFlags'); + ReactFeatureFlags = require('shared/ReactFeatureFlags'); container = document.createElement('div'); ReactFeatureFlags.enableAsyncSubtreeAPI = false; ReactDOM = require('react-dom'); @@ -51,7 +62,7 @@ describe('ReactDOMFiberAsync', () => { describe('with feature flag enabled', () => { beforeEach(() => { jest.resetModules(); - ReactFeatureFlags = require('ReactFeatureFlags'); + ReactFeatureFlags = require('shared/ReactFeatureFlags'); container = document.createElement('div'); ReactFeatureFlags.enableAsyncSubtreeAPI = true; ReactDOM = require('react-dom'); diff --git a/packages/react-dom/src/__tests__/ReactDOMInput-test.js b/packages/react-dom/src/__tests__/ReactDOMInput-test.js index 0e289c0d80f2a..f5465c1ea2e83 100644 --- a/packages/react-dom/src/__tests__/ReactDOMInput-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMInput-test.js @@ -36,7 +36,7 @@ describe('ReactDOMInput', () => { ReactDOMServer = require('react-dom/server'); ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? - inputValueTracking = require('inputValueTracking'); + inputValueTracking = require('react-dom/src/client/inputValueTracking'); spyOn(console, 'error'); }); diff --git a/packages/react-dom/src/__tests__/ReactDOMSelection-test.js b/packages/react-dom/src/__tests__/ReactDOMSelection-test.js index 431680ee7064d..3c80c40018ed5 100644 --- a/packages/react-dom/src/__tests__/ReactDOMSelection-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMSelection-test.js @@ -20,8 +20,8 @@ describe('ReactDOMSelection', () => { beforeEach(() => { React = require('react'); ReactDOM = require('react-dom'); - ReactDOMSelection = require('ReactDOMSelection'); - invariant = require('invariant'); + ReactDOMSelection = require('react-dom/src/client/ReactDOMSelection'); + invariant = require('fbjs/lib/invariant'); ({getModernOffsetsFromPoints} = ReactDOMSelection); }); diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegration-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegration-test.js index 794a4898b6b2f..06d8a0eef18c9 100644 --- a/packages/react-dom/src/__tests__/ReactDOMServerIntegration-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegration-test.js @@ -314,7 +314,7 @@ function resetModules() { jest.resetModuleRegistry(); // TODO: can we express this test with only public API? - ExecutionEnvironment = require('ExecutionEnvironment'); + ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); PropTypes = require('prop-types'); React = require('react'); diff --git a/packages/react-dom/src/__tests__/ReactMount-test.js b/packages/react-dom/src/__tests__/ReactMount-test.js index 88afe072343a3..169a121e2f6ec 100644 --- a/packages/react-dom/src/__tests__/ReactMount-test.js +++ b/packages/react-dom/src/__tests__/ReactMount-test.js @@ -9,7 +9,7 @@ 'use strict'; -const {COMMENT_NODE} = require('HTMLNodeType'); +const {COMMENT_NODE} = require('react-dom/src/shared/HTMLNodeType'); const invariant = require('invariant'); diff --git a/packages/react-dom/src/__tests__/ReactServerRendering-test.js b/packages/react-dom/src/__tests__/ReactServerRendering-test.js index 3e82973ace230..4833f51c29ac4 100644 --- a/packages/react-dom/src/__tests__/ReactServerRendering-test.js +++ b/packages/react-dom/src/__tests__/ReactServerRendering-test.js @@ -34,7 +34,7 @@ describe('ReactDOMServer', () => { ExecutionEnvironment.canUseDOM = false; ReactDOMServer = require('react-dom/server'); - var DOMProperty = require('DOMProperty'); + var DOMProperty = require('react-dom/src/shared/DOMProperty'); ROOT_ATTRIBUTE_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME; }); diff --git a/packages/react-dom/src/__tests__/ReactTreeTraversal-test.js b/packages/react-dom/src/__tests__/ReactTreeTraversal-test.js index 0353db1c5232c..bf9e396670c4d 100644 --- a/packages/react-dom/src/__tests__/ReactTreeTraversal-test.js +++ b/packages/react-dom/src/__tests__/ReactTreeTraversal-test.js @@ -11,7 +11,7 @@ var React = require('react'); // TODO: can we express this test with only public API? -var ReactDOMComponentTree = require('ReactDOMComponentTree'); +var ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); var ReactTestUtils = require('react-dom/test-utils'); /** @@ -62,7 +62,7 @@ describe('ReactTreeTraversal', () => { } beforeEach(() => { - ReactTreeTraversal = require('ReactTreeTraversal'); + ReactTreeTraversal = require('shared/ReactTreeTraversal'); mockFn.mockReset(); }); diff --git a/packages/react-dom/src/__tests__/escapeTextContentForBrowser-test.js b/packages/react-dom/src/__tests__/escapeTextContentForBrowser-test.js index 889eeae8c3fbb..7fdfcb6f50c6c 100644 --- a/packages/react-dom/src/__tests__/escapeTextContentForBrowser-test.js +++ b/packages/react-dom/src/__tests__/escapeTextContentForBrowser-test.js @@ -11,7 +11,7 @@ describe('escapeTextContentForBrowser', () => { // TODO: can we express this test with only public API? - var escapeTextContentForBrowser = require('escapeTextContentForBrowser'); + var escapeTextContentForBrowser = require('react-dom/src/shared/escapeTextContentForBrowser'); it('should escape boolean to string', () => { expect(escapeTextContentForBrowser(true)).toBe('true'); diff --git a/packages/react-dom/src/__tests__/inputValueTracking-test.js b/packages/react-dom/src/__tests__/inputValueTracking-test.js index a33ccb0bc46f4..7217b068be71d 100644 --- a/packages/react-dom/src/__tests__/inputValueTracking-test.js +++ b/packages/react-dom/src/__tests__/inputValueTracking-test.js @@ -13,7 +13,7 @@ var React = require('react'); var ReactDOM = require('react-dom'); var ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? -var inputValueTracking = require('inputValueTracking'); +var inputValueTracking = require('react-dom/src/client/inputValueTracking'); var getTracker = inputValueTracking._getTrackerFromNode; diff --git a/packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js b/packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js index eed402caf79c2..e96ca19197686 100644 --- a/packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js +++ b/packages/react-dom/src/__tests__/quoteAttributeValueForBrowser-test.js @@ -11,7 +11,7 @@ describe('quoteAttributeValueForBrowser', () => { // TODO: can we express this test with only public API? - var quoteAttributeValueForBrowser = require('quoteAttributeValueForBrowser'); + var quoteAttributeValueForBrowser = require('react-dom/src/shared/quoteAttributeValueForBrowser'); it('should escape boolean to string', () => { expect(quoteAttributeValueForBrowser(true)).toBe('"true"'); diff --git a/packages/react-dom/src/__tests__/validateDOMNesting-test.js b/packages/react-dom/src/__tests__/validateDOMNesting-test.js index e3c76a843b893..da7b7ea60509a 100644 --- a/packages/react-dom/src/__tests__/validateDOMNesting-test.js +++ b/packages/react-dom/src/__tests__/validateDOMNesting-test.js @@ -136,7 +136,7 @@ describe('ReactContextValidator', () => { jest.resetModules(); // TODO: can we express this test with only public API? - validateDOMNesting = require('validateDOMNesting'); + validateDOMNesting = require('react-dom/src/client/validateDOMNesting'); }); it('allows any tag with no context', () => { diff --git a/packages/react-dom/src/client/DOMPropertyOperations.js b/packages/react-dom/src/client/DOMPropertyOperations.js index 0c278cfdc8054..ff9197423569e 100644 --- a/packages/react-dom/src/client/DOMPropertyOperations.js +++ b/packages/react-dom/src/client/DOMPropertyOperations.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule DOMPropertyOperations */ 'use strict'; -var DOMProperty = require('DOMProperty'); +var DOMProperty = require('../shared/DOMProperty'); if (__DEV__) { var warning = require('fbjs/lib/warning'); diff --git a/packages/react-dom/src/client/ReactDOM.js b/packages/react-dom/src/client/ReactDOM.js index 384327b6b9f2c..28bfb462180a8 100644 --- a/packages/react-dom/src/client/ReactDOM.js +++ b/packages/react-dom/src/client/ReactDOM.js @@ -9,35 +9,37 @@ 'use strict'; -import type {ReactNodeList} from 'ReactTypes'; +import type {ReactNodeList} from 'shared/ReactTypes'; -require('checkReact'); -var DOMNamespaces = require('DOMNamespaces'); +require('../shared/checkReact'); +var DOMNamespaces = require('../shared/DOMNamespaces'); var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); -var ReactControlledComponent = require('ReactControlledComponent'); -var ReactFeatureFlags = require('ReactFeatureFlags'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var ReactDOMFiberComponent = require('ReactDOMFiberComponent'); -var ReactDOMFrameScheduling = require('ReactDOMFrameScheduling'); -var ReactGenericBatching = require('ReactGenericBatching'); +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter'); +var ReactControlledComponent = require('events/ReactControlledComponent'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); +var ReactDOMComponentTree = require('./ReactDOMComponentTree'); +var ReactDOMFiberComponent = require('./ReactDOMFiberComponent'); +var ReactDOMFrameScheduling = require('shared/ReactDOMFrameScheduling'); +var ReactGenericBatching = require('events/ReactGenericBatching'); var ReactFiberReconciler = require('react-reconciler'); -var ReactInputSelection = require('ReactInputSelection'); -var ReactInstanceMap = require('ReactInstanceMap'); -var ReactPortal = require('ReactPortal'); -var ReactVersion = require('ReactVersion'); -var {ReactCurrentOwner} = require('ReactGlobalSharedState'); -var {injectInternals} = require('ReactFiberDevToolsHook'); +var ReactInputSelection = require('./ReactInputSelection'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); +var ReactVersion = require('shared/ReactVersion'); +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState'); var { ELEMENT_NODE, TEXT_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE, -} = require('HTMLNodeType'); -var {ROOT_ATTRIBUTE_NAME} = require('DOMProperty'); +} = require('../shared/HTMLNodeType'); +var {ROOT_ATTRIBUTE_NAME} = require('../shared/DOMProperty'); -var getComponentName = require('getComponentName'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +var ReactPortal = require('react-reconciler/src/ReactPortal'); +var {injectInternals} = require('react-reconciler/src/ReactFiberDevToolsHook'); + +var getComponentName = require('shared/getComponentName'); var invariant = require('fbjs/lib/invariant'); var {getChildNamespace} = DOMNamespaces; @@ -59,9 +61,9 @@ var {precacheFiberNode, updateFiberProps} = ReactDOMComponentTree; if (__DEV__) { var SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning'; - var lowPriorityWarning = require('lowPriorityWarning'); + var lowPriorityWarning = require('shared/lowPriorityWarning'); var warning = require('fbjs/lib/warning'); - var validateDOMNesting = require('validateDOMNesting'); + var validateDOMNesting = require('./validateDOMNesting'); var {updatedAncestorInfo} = validateDOMNesting; if ( @@ -81,8 +83,8 @@ if (__DEV__) { } } -require('ReactDOMClientInjection'); -require('ReactDOMInjection'); +require('./ReactDOMClientInjection'); +require('../shared/ReactDOMInjection'); ReactControlledComponent.injection.injectFiberControlledHostComponent( ReactDOMFiberComponent, ); @@ -938,13 +940,13 @@ var ReactDOM = { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { // For TapEventPlugin which is popular in open source - EventPluginHub: require('EventPluginHub'), + EventPluginHub: require('events/EventPluginHub'), // Used by test-utils - EventPluginRegistry: require('EventPluginRegistry'), - EventPropagators: require('EventPropagators'), + EventPluginRegistry: require('events/EventPluginRegistry'), + EventPropagators: require('events/EventPropagators'), ReactControlledComponent, ReactDOMComponentTree, - ReactDOMEventListener: require('ReactDOMEventListener'), + ReactDOMEventListener: require('../events/ReactDOMEventListener'), }, }; diff --git a/packages/react-dom/src/client/ReactDOMClientInjection.js b/packages/react-dom/src/client/ReactDOMClientInjection.js index 31b19930ee634..729757efd71e1 100644 --- a/packages/react-dom/src/client/ReactDOMClientInjection.js +++ b/packages/react-dom/src/client/ReactDOMClientInjection.js @@ -3,23 +3,21 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMClientInjection */ 'use strict'; -var BeforeInputEventPlugin = require('BeforeInputEventPlugin'); -var ChangeEventPlugin = require('ChangeEventPlugin'); -var DOMEventPluginOrder = require('DOMEventPluginOrder'); -var EnterLeaveEventPlugin = require('EnterLeaveEventPlugin'); -var EventPluginHub = require('EventPluginHub'); -var EventPluginUtils = require('EventPluginUtils'); -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var ReactDOMEventListener = require('ReactDOMEventListener'); -var SelectEventPlugin = require('SelectEventPlugin'); -var SimpleEventPlugin = require('SimpleEventPlugin'); +var BeforeInputEventPlugin = require('../events/BeforeInputEventPlugin'); +var ChangeEventPlugin = require('../events/ChangeEventPlugin'); +var DOMEventPluginOrder = require('../events/DOMEventPluginOrder'); +var EnterLeaveEventPlugin = require('../events/EnterLeaveEventPlugin'); +var EventPluginHub = require('events/EventPluginHub'); +var EventPluginUtils = require('events/EventPluginUtils'); +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter'); +var ReactDOMComponentTree = require('./ReactDOMComponentTree'); +var ReactDOMEventListener = require('../events/ReactDOMEventListener'); +var SelectEventPlugin = require('../events/SelectEventPlugin'); +var SimpleEventPlugin = require('../events/SimpleEventPlugin'); ReactDOMEventListener.setHandleTopLevel( ReactBrowserEventEmitter.handleTopLevel, diff --git a/packages/react-dom/src/client/ReactDOMComponentTree.js b/packages/react-dom/src/client/ReactDOMComponentTree.js index e8969c183a14a..1e03ab8ba3c9f 100644 --- a/packages/react-dom/src/client/ReactDOMComponentTree.js +++ b/packages/react-dom/src/client/ReactDOMComponentTree.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMComponentTree */ 'use strict'; -var {HostComponent, HostText} = require('ReactTypeOfWork'); +var {HostComponent, HostText} = require('shared/ReactTypeOfWork'); var invariant = require('fbjs/lib/invariant'); diff --git a/packages/react-dom/src/client/ReactDOMFiberComponent.js b/packages/react-dom/src/client/ReactDOMFiberComponent.js index 3ad08af4b59e8..9b2c6a2ee649b 100644 --- a/packages/react-dom/src/client/ReactDOMFiberComponent.js +++ b/packages/react-dom/src/client/ReactDOMFiberComponent.js @@ -4,38 +4,45 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFiberComponent * @flow */ 'use strict'; -var CSSPropertyOperations = require('CSSPropertyOperations'); -var DOMNamespaces = require('DOMNamespaces'); -var DOMProperty = require('DOMProperty'); -var DOMPropertyOperations = require('DOMPropertyOperations'); -var EventPluginRegistry = require('EventPluginRegistry'); -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); -var ReactDOMFiberInput = require('ReactDOMFiberInput'); -var ReactDOMFiberOption = require('ReactDOMFiberOption'); -var ReactDOMFiberSelect = require('ReactDOMFiberSelect'); -var ReactDOMFiberTextarea = require('ReactDOMFiberTextarea'); -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber'); -var {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE} = require('HTMLNodeType'); +var CSSPropertyOperations = require('../shared/CSSPropertyOperations'); +var DOMNamespaces = require('../shared/DOMNamespaces'); +var DOMProperty = require('../shared/DOMProperty'); +var DOMPropertyOperations = require('./DOMPropertyOperations'); +var EventPluginRegistry = require('events/EventPluginRegistry'); +var ReactBrowserEventEmitter = require('../events/ReactBrowserEventEmitter'); +var ReactDOMFiberInput = require('./ReactDOMFiberInput'); +var ReactDOMFiberOption = require('./ReactDOMFiberOption'); +var ReactDOMFiberSelect = require('./ReactDOMFiberSelect'); +var ReactDOMFiberTextarea = require('./ReactDOMFiberTextarea'); -var assertValidProps = require('assertValidProps'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +var { + getCurrentFiberOwnerName, +} = require('react-reconciler/src/ReactDebugCurrentFiber'); + +var {DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE} = require('../shared/HTMLNodeType'); + +var assertValidProps = require('../shared/assertValidProps'); var emptyFunction = require('fbjs/lib/emptyFunction'); -var inputValueTracking = require('inputValueTracking'); -var isCustomComponent = require('isCustomComponent'); -var setInnerHTML = require('setInnerHTML'); -var setTextContent = require('setTextContent'); +var inputValueTracking = require('./inputValueTracking'); +var isCustomComponent = require('../shared/isCustomComponent'); +var setInnerHTML = require('./setInnerHTML'); +var setTextContent = require('./setTextContent'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); - var ReactDOMInvalidARIAHook = require('ReactDOMInvalidARIAHook'); - var ReactDOMNullInputValuePropHook = require('ReactDOMNullInputValuePropHook'); - var ReactDOMUnknownPropertyHook = require('ReactDOMUnknownPropertyHook'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + var { + getCurrentFiberStackAddendum, + } = require('react-reconciler/src/ReactDebugCurrentFiber'); + var ReactDOMInvalidARIAHook = require('../shared/ReactDOMInvalidARIAHook'); + var ReactDOMNullInputValuePropHook = require('../shared/ReactDOMNullInputValuePropHook'); + var ReactDOMUnknownPropertyHook = require('../shared/ReactDOMUnknownPropertyHook'); var {validateProperties: validateARIAProperties} = ReactDOMInvalidARIAHook; var { validateProperties: validateInputProperties, diff --git a/packages/react-dom/src/client/ReactDOMFiberInput.js b/packages/react-dom/src/client/ReactDOMFiberInput.js index 89f1056bc4103..e456af07ec6ce 100644 --- a/packages/react-dom/src/client/ReactDOMFiberInput.js +++ b/packages/react-dom/src/client/ReactDOMFiberInput.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFiberInput * @flow */ @@ -18,13 +17,20 @@ type InputWithWrapperState = HTMLInputElement & { }, }; -var DOMPropertyOperations = require('DOMPropertyOperations'); -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber'); +var DOMPropertyOperations = require('./DOMPropertyOperations'); +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes'); +var ReactDOMComponentTree = require('./ReactDOMComponentTree'); + +// TODO: direct imports like some-package/src/* are bad. Fix me. +var { + getCurrentFiberOwnerName, +} = require('react-reconciler/src/ReactDebugCurrentFiber'); if (__DEV__) { - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + var { + getCurrentFiberStackAddendum, + } = require('react-reconciler/src/ReactDebugCurrentFiber'); var warning = require('fbjs/lib/warning'); } diff --git a/packages/react-dom/src/client/ReactDOMFiberOption.js b/packages/react-dom/src/client/ReactDOMFiberOption.js index b0f31cc1bd695..fb4428617243d 100644 --- a/packages/react-dom/src/client/ReactDOMFiberOption.js +++ b/packages/react-dom/src/client/ReactDOMFiberOption.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFiberOption * @flow */ diff --git a/packages/react-dom/src/client/ReactDOMFiberSelect.js b/packages/react-dom/src/client/ReactDOMFiberSelect.js index d35d0bf179ae8..0772bf7525adf 100644 --- a/packages/react-dom/src/client/ReactDOMFiberSelect.js +++ b/packages/react-dom/src/client/ReactDOMFiberSelect.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFiberSelect * @flow */ @@ -17,13 +16,18 @@ type SelectWithWrapperState = HTMLSelectElement & { }, }; -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes'); -var {getCurrentFiberOwnerName} = require('ReactDebugCurrentFiber'); +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes'); +var { + getCurrentFiberOwnerName, +} = require('react-reconciler/src/ReactDebugCurrentFiber'); if (__DEV__) { var didWarnValueDefaultValue = false; var warning = require('fbjs/lib/warning'); - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + var { + getCurrentFiberStackAddendum, + } = require('react-reconciler/src/ReactDebugCurrentFiber'); } function getDeclarationErrorAddendum() { diff --git a/packages/react-dom/src/client/ReactDOMFiberTextarea.js b/packages/react-dom/src/client/ReactDOMFiberTextarea.js index 72e17b2b9d18c..25901252e67e5 100644 --- a/packages/react-dom/src/client/ReactDOMFiberTextarea.js +++ b/packages/react-dom/src/client/ReactDOMFiberTextarea.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFiberTextarea * @flow */ @@ -16,13 +15,16 @@ type TextAreaWithWrapperState = HTMLTextAreaElement & { }, }; -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes'); +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + var { + getCurrentFiberStackAddendum, + } = require('react-reconciler/src/ReactDebugCurrentFiber'); } var didWarnValDefaultVal = false; diff --git a/packages/react-dom/src/client/ReactDOMSelection.js b/packages/react-dom/src/client/ReactDOMSelection.js index 61a1882636a03..dd12760edd048 100644 --- a/packages/react-dom/src/client/ReactDOMSelection.js +++ b/packages/react-dom/src/client/ReactDOMSelection.js @@ -3,16 +3,14 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMSelection */ 'use strict'; -var {TEXT_NODE} = require('HTMLNodeType'); +var {TEXT_NODE} = require('../shared/HTMLNodeType'); -var getNodeForCharacterOffset = require('getNodeForCharacterOffset'); -var getTextContentAccessor = require('getTextContentAccessor'); +var getNodeForCharacterOffset = require('./getNodeForCharacterOffset'); +var getTextContentAccessor = require('./getTextContentAccessor'); /** * @param {DOMElement} outerNode diff --git a/packages/react-dom/src/client/ReactInputSelection.js b/packages/react-dom/src/client/ReactInputSelection.js index 81f788aa5c8d6..c98fc4571ad5a 100644 --- a/packages/react-dom/src/client/ReactInputSelection.js +++ b/packages/react-dom/src/client/ReactInputSelection.js @@ -3,14 +3,12 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactInputSelection */ 'use strict'; -var ReactDOMSelection = require('ReactDOMSelection'); -var {ELEMENT_NODE} = require('HTMLNodeType'); +var ReactDOMSelection = require('./ReactDOMSelection'); +var {ELEMENT_NODE} = require('../shared/HTMLNodeType'); var containsNode = require('fbjs/lib/containsNode'); var focusNode = require('fbjs/lib/focusNode'); diff --git a/packages/react-dom/src/client/__tests__/getNodeForCharacterOffset-test.js b/packages/react-dom/src/client/__tests__/getNodeForCharacterOffset-test.js index 534d6442e6824..eb625a0454431 100644 --- a/packages/react-dom/src/client/__tests__/getNodeForCharacterOffset-test.js +++ b/packages/react-dom/src/client/__tests__/getNodeForCharacterOffset-test.js @@ -10,7 +10,7 @@ 'use strict'; // TODO: can we express this test with only public API? -var getNodeForCharacterOffset = require('getNodeForCharacterOffset'); +var getNodeForCharacterOffset = require('react-dom/src/client/getNodeForCharacterOffset'); // Create node from HTML string function createNode(html) { diff --git a/packages/react-dom/src/client/__tests__/setInnerHTML-test.js b/packages/react-dom/src/client/__tests__/setInnerHTML-test.js index 6b2cd5b6ac97c..193a8c57a05ab 100644 --- a/packages/react-dom/src/client/__tests__/setInnerHTML-test.js +++ b/packages/react-dom/src/client/__tests__/setInnerHTML-test.js @@ -10,8 +10,8 @@ 'use strict'; // TODO: can we express this test with only public API? -var setInnerHTML = require('setInnerHTML'); -var Namespaces = require('DOMNamespaces').Namespaces; +var setInnerHTML = require('react-dom/src/client/setInnerHTML'); +var Namespaces = require('react-dom/src/shared/DOMNamespaces').Namespaces; describe('setInnerHTML', () => { describe('when the node has innerHTML property', () => { diff --git a/packages/react-dom/src/client/getNodeForCharacterOffset.js b/packages/react-dom/src/client/getNodeForCharacterOffset.js index acaece0f3833e..fec92761a8ef6 100644 --- a/packages/react-dom/src/client/getNodeForCharacterOffset.js +++ b/packages/react-dom/src/client/getNodeForCharacterOffset.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getNodeForCharacterOffset */ 'use strict'; -var {TEXT_NODE} = require('HTMLNodeType'); +var {TEXT_NODE} = require('../shared/HTMLNodeType'); /** * Given any node return the first leaf node without children. diff --git a/packages/react-dom/src/client/getTextContentAccessor.js b/packages/react-dom/src/client/getTextContentAccessor.js index 4a820f488be57..1b23eccc6e8aa 100644 --- a/packages/react-dom/src/client/getTextContentAccessor.js +++ b/packages/react-dom/src/client/getTextContentAccessor.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getTextContentAccessor */ 'use strict'; diff --git a/packages/react-dom/src/client/inputValueTracking.js b/packages/react-dom/src/client/inputValueTracking.js index e5b9789eb449a..ca3d4b31c4f88 100644 --- a/packages/react-dom/src/client/inputValueTracking.js +++ b/packages/react-dom/src/client/inputValueTracking.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule inputValueTracking * @flow */ diff --git a/packages/react-dom/src/client/setInnerHTML.js b/packages/react-dom/src/client/setInnerHTML.js index 4a749ab3be441..990b9c9ad6893 100644 --- a/packages/react-dom/src/client/setInnerHTML.js +++ b/packages/react-dom/src/client/setInnerHTML.js @@ -3,14 +3,12 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule setInnerHTML */ 'use strict'; -var Namespaces = require('DOMNamespaces').Namespaces; -var createMicrosoftUnsafeLocalFunction = require('createMicrosoftUnsafeLocalFunction'); +var Namespaces = require('../shared/DOMNamespaces').Namespaces; +var createMicrosoftUnsafeLocalFunction = require('../shared/createMicrosoftUnsafeLocalFunction'); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; diff --git a/packages/react-dom/src/client/setTextContent.js b/packages/react-dom/src/client/setTextContent.js index f9b2f1e635a2d..cb7129c8ef55c 100644 --- a/packages/react-dom/src/client/setTextContent.js +++ b/packages/react-dom/src/client/setTextContent.js @@ -3,16 +3,14 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule setTextContent */ 'use strict'; var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); -var escapeTextContentForBrowser = require('escapeTextContentForBrowser'); -var setInnerHTML = require('setInnerHTML'); -var {TEXT_NODE} = require('HTMLNodeType'); +var escapeTextContentForBrowser = require('../shared/escapeTextContentForBrowser'); +var setInnerHTML = require('./setInnerHTML'); +var {TEXT_NODE} = require('../shared/HTMLNodeType'); /** * Set the textContent property of a node, ensuring that whitespace is preserved diff --git a/packages/react-dom/src/client/validateDOMNesting.js b/packages/react-dom/src/client/validateDOMNesting.js index ba6d55d813881..0551df13b9838 100644 --- a/packages/react-dom/src/client/validateDOMNesting.js +++ b/packages/react-dom/src/client/validateDOMNesting.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule validateDOMNesting */ 'use strict'; @@ -15,7 +13,10 @@ var validateDOMNesting = emptyFunction; if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + var { + getCurrentFiberStackAddendum, + } = require('react-reconciler/src/ReactDebugCurrentFiber'); // This validation code was written based on the HTML5 parsing spec: // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope diff --git a/packages/react-dom/src/events/BeforeInputEventPlugin.js b/packages/react-dom/src/events/BeforeInputEventPlugin.js index b4f6b9bd473e7..5679dddeb280e 100644 --- a/packages/react-dom/src/events/BeforeInputEventPlugin.js +++ b/packages/react-dom/src/events/BeforeInputEventPlugin.js @@ -3,17 +3,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule BeforeInputEventPlugin */ 'use strict'; -var EventPropagators = require('EventPropagators'); +var EventPropagators = require('events/EventPropagators'); var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); -var FallbackCompositionState = require('FallbackCompositionState'); -var SyntheticCompositionEvent = require('SyntheticCompositionEvent'); -var SyntheticInputEvent = require('SyntheticInputEvent'); +var FallbackCompositionState = require('./FallbackCompositionState'); +var SyntheticCompositionEvent = require('./SyntheticCompositionEvent'); +var SyntheticInputEvent = require('./SyntheticInputEvent'); import type {TopLevelTypes} from 'BrowserEventConstants'; diff --git a/packages/react-dom/src/events/BrowserEventConstants.js b/packages/react-dom/src/events/BrowserEventConstants.js index 786983ad64899..783a392611932 100644 --- a/packages/react-dom/src/events/BrowserEventConstants.js +++ b/packages/react-dom/src/events/BrowserEventConstants.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule BrowserEventConstants */ 'use strict'; -var getVendorPrefixedEventName = require('getVendorPrefixedEventName'); +var getVendorPrefixedEventName = require('./getVendorPrefixedEventName'); /** * Types of raw signals from the browser caught at the top level. diff --git a/packages/react-dom/src/events/ChangeEventPlugin.js b/packages/react-dom/src/events/ChangeEventPlugin.js index 815ff6b035efc..b20c17eee8483 100644 --- a/packages/react-dom/src/events/ChangeEventPlugin.js +++ b/packages/react-dom/src/events/ChangeEventPlugin.js @@ -3,24 +3,22 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ChangeEventPlugin */ 'use strict'; -var EventPluginHub = require('EventPluginHub'); -var EventPropagators = require('EventPropagators'); +var EventPluginHub = require('events/EventPluginHub'); +var EventPropagators = require('events/EventPropagators'); var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); -var ReactControlledComponent = require('ReactControlledComponent'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var ReactGenericBatching = require('ReactGenericBatching'); -var SyntheticEvent = require('SyntheticEvent'); - -var inputValueTracking = require('inputValueTracking'); -var getEventTarget = require('getEventTarget'); -var isEventSupported = require('isEventSupported'); -var isTextInputElement = require('isTextInputElement'); +var ReactControlledComponent = require('events/ReactControlledComponent'); +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree'); +var ReactGenericBatching = require('events/ReactGenericBatching'); +var SyntheticEvent = require('events/SyntheticEvent'); + +var inputValueTracking = require('../client/inputValueTracking'); +var getEventTarget = require('./getEventTarget'); +var isEventSupported = require('./isEventSupported'); +var isTextInputElement = require('shared/isTextInputElement'); var eventTypes = { change: { diff --git a/packages/react-dom/src/events/DOMEventPluginOrder.js b/packages/react-dom/src/events/DOMEventPluginOrder.js index dc9ad1335e06e..5983a53607f8a 100644 --- a/packages/react-dom/src/events/DOMEventPluginOrder.js +++ b/packages/react-dom/src/events/DOMEventPluginOrder.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule DOMEventPluginOrder */ 'use strict'; diff --git a/packages/react-dom/src/events/EnterLeaveEventPlugin.js b/packages/react-dom/src/events/EnterLeaveEventPlugin.js index d7834f3dcc1ba..2105916476835 100644 --- a/packages/react-dom/src/events/EnterLeaveEventPlugin.js +++ b/packages/react-dom/src/events/EnterLeaveEventPlugin.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule EnterLeaveEventPlugin */ 'use strict'; -var EventPropagators = require('EventPropagators'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var SyntheticMouseEvent = require('SyntheticMouseEvent'); +var EventPropagators = require('events/EventPropagators'); +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree'); +var SyntheticMouseEvent = require('./SyntheticMouseEvent'); var eventTypes = { mouseEnter: { diff --git a/packages/react-dom/src/events/FallbackCompositionState.js b/packages/react-dom/src/events/FallbackCompositionState.js index 314eb64fb7a20..26d18557dd579 100644 --- a/packages/react-dom/src/events/FallbackCompositionState.js +++ b/packages/react-dom/src/events/FallbackCompositionState.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule FallbackCompositionState */ 'use strict'; -var getTextContentAccessor = require('getTextContentAccessor'); +var getTextContentAccessor = require('../client/getTextContentAccessor'); /** * This helper object stores information about text content of a target node, diff --git a/packages/react-dom/src/events/ReactBrowserEventEmitter.js b/packages/react-dom/src/events/ReactBrowserEventEmitter.js index c7ac57da4ded8..7b0f579361194 100644 --- a/packages/react-dom/src/events/ReactBrowserEventEmitter.js +++ b/packages/react-dom/src/events/ReactBrowserEventEmitter.js @@ -3,18 +3,16 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactBrowserEventEmitter */ 'use strict'; -var EventPluginRegistry = require('EventPluginRegistry'); -var ReactDOMEventListener = require('ReactDOMEventListener'); -var ReactEventEmitterMixin = require('ReactEventEmitterMixin'); +var EventPluginRegistry = require('events/EventPluginRegistry'); +var ReactDOMEventListener = require('./ReactDOMEventListener'); +var ReactEventEmitterMixin = require('events/ReactEventEmitterMixin'); -var isEventSupported = require('isEventSupported'); -var {topLevelTypes} = require('BrowserEventConstants'); +var isEventSupported = require('./isEventSupported'); +var {topLevelTypes} = require('./BrowserEventConstants'); /** * Summary of `ReactBrowserEventEmitter` event handling: diff --git a/packages/react-dom/src/events/ReactDOMEventListener.js b/packages/react-dom/src/events/ReactDOMEventListener.js index 6950f06acae2a..2bbf67fad2a6b 100644 --- a/packages/react-dom/src/events/ReactDOMEventListener.js +++ b/packages/react-dom/src/events/ReactDOMEventListener.js @@ -3,19 +3,17 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMEventListener */ 'use strict'; var EventListener = require('fbjs/lib/EventListener'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var ReactFiberTreeReflection = require('ReactFiberTreeReflection'); -var ReactGenericBatching = require('ReactGenericBatching'); -var ReactTypeOfWork = require('ReactTypeOfWork'); +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree'); +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection'); +var ReactGenericBatching = require('events/ReactGenericBatching'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); -var getEventTarget = require('getEventTarget'); +var getEventTarget = require('./getEventTarget'); var {HostRoot} = ReactTypeOfWork; diff --git a/packages/react-dom/src/events/SelectEventPlugin.js b/packages/react-dom/src/events/SelectEventPlugin.js index 5b99fc1038f50..aab6fcc7b4350 100644 --- a/packages/react-dom/src/events/SelectEventPlugin.js +++ b/packages/react-dom/src/events/SelectEventPlugin.js @@ -3,22 +3,20 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SelectEventPlugin */ 'use strict'; -var EventPropagators = require('EventPropagators'); +var EventPropagators = require('events/EventPropagators'); var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); -var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter'); -var ReactDOMComponentTree = require('ReactDOMComponentTree'); -var ReactInputSelection = require('ReactInputSelection'); -var SyntheticEvent = require('SyntheticEvent'); -var {DOCUMENT_NODE} = require('HTMLNodeType'); +var ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter'); +var ReactDOMComponentTree = require('../client/ReactDOMComponentTree'); +var ReactInputSelection = require('../client/ReactInputSelection'); +var SyntheticEvent = require('events/SyntheticEvent'); +var {DOCUMENT_NODE} = require('../shared/HTMLNodeType'); var getActiveElement = require('fbjs/lib/getActiveElement'); -var isTextInputElement = require('isTextInputElement'); +var isTextInputElement = require('shared/isTextInputElement'); var shallowEqual = require('fbjs/lib/shallowEqual'); var skipSelectionChangeEvent = diff --git a/packages/react-dom/src/events/SimpleEventPlugin.js b/packages/react-dom/src/events/SimpleEventPlugin.js index d33e45b936ba9..f0e66fa1c7ee1 100644 --- a/packages/react-dom/src/events/SimpleEventPlugin.js +++ b/packages/react-dom/src/events/SimpleEventPlugin.js @@ -4,38 +4,37 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule SimpleEventPlugin * @flow */ 'use strict'; -var EventPropagators = require('EventPropagators'); -var SyntheticAnimationEvent = require('SyntheticAnimationEvent'); -var SyntheticClipboardEvent = require('SyntheticClipboardEvent'); -var SyntheticEvent = require('SyntheticEvent'); -var SyntheticFocusEvent = require('SyntheticFocusEvent'); -var SyntheticKeyboardEvent = require('SyntheticKeyboardEvent'); -var SyntheticMouseEvent = require('SyntheticMouseEvent'); -var SyntheticDragEvent = require('SyntheticDragEvent'); -var SyntheticTouchEvent = require('SyntheticTouchEvent'); -var SyntheticTransitionEvent = require('SyntheticTransitionEvent'); -var SyntheticUIEvent = require('SyntheticUIEvent'); -var SyntheticWheelEvent = require('SyntheticWheelEvent'); +var EventPropagators = require('events/EventPropagators'); +var SyntheticAnimationEvent = require('./SyntheticAnimationEvent'); +var SyntheticClipboardEvent = require('./SyntheticClipboardEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); +var SyntheticFocusEvent = require('./SyntheticFocusEvent'); +var SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent'); +var SyntheticMouseEvent = require('./SyntheticMouseEvent'); +var SyntheticDragEvent = require('./SyntheticDragEvent'); +var SyntheticTouchEvent = require('./SyntheticTouchEvent'); +var SyntheticTransitionEvent = require('./SyntheticTransitionEvent'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); +var SyntheticWheelEvent = require('./SyntheticWheelEvent'); -var getEventCharCode = require('getEventCharCode'); +var getEventCharCode = require('./getEventCharCode'); if (__DEV__) { var warning = require('fbjs/lib/warning'); } -import type {TopLevelTypes} from 'BrowserEventConstants'; +import type {TopLevelTypes} from './BrowserEventConstants'; import type { DispatchConfig, ReactSyntheticEvent, -} from 'ReactSyntheticEventType'; -import type {Fiber} from 'ReactFiber'; -import type {EventTypes, PluginModule} from 'PluginModuleType'; +} from 'events/ReactSyntheticEventType'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; +import type {EventTypes, PluginModule} from 'events/PluginModuleType'; /** * Turns diff --git a/packages/react-dom/src/events/SyntheticAnimationEvent.js b/packages/react-dom/src/events/SyntheticAnimationEvent.js index 9198fb2eeacd7..463ed02dffb77 100644 --- a/packages/react-dom/src/events/SyntheticAnimationEvent.js +++ b/packages/react-dom/src/events/SyntheticAnimationEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticAnimationEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface Event diff --git a/packages/react-dom/src/events/SyntheticClipboardEvent.js b/packages/react-dom/src/events/SyntheticClipboardEvent.js index 908672ab86c4b..d73860b669059 100644 --- a/packages/react-dom/src/events/SyntheticClipboardEvent.js +++ b/packages/react-dom/src/events/SyntheticClipboardEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticClipboardEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface Event diff --git a/packages/react-dom/src/events/SyntheticCompositionEvent.js b/packages/react-dom/src/events/SyntheticCompositionEvent.js index 0bab1290bcbc9..9e3096c373655 100644 --- a/packages/react-dom/src/events/SyntheticCompositionEvent.js +++ b/packages/react-dom/src/events/SyntheticCompositionEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticCompositionEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface Event diff --git a/packages/react-dom/src/events/SyntheticDragEvent.js b/packages/react-dom/src/events/SyntheticDragEvent.js index 32f66345d1722..8ba119a75bdee 100644 --- a/packages/react-dom/src/events/SyntheticDragEvent.js +++ b/packages/react-dom/src/events/SyntheticDragEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticDragEvent */ 'use strict'; -var SyntheticMouseEvent = require('SyntheticMouseEvent'); +var SyntheticMouseEvent = require('./SyntheticMouseEvent'); /** * @interface DragEvent diff --git a/packages/react-dom/src/events/SyntheticFocusEvent.js b/packages/react-dom/src/events/SyntheticFocusEvent.js index 167955722debc..62ad360e46558 100644 --- a/packages/react-dom/src/events/SyntheticFocusEvent.js +++ b/packages/react-dom/src/events/SyntheticFocusEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticFocusEvent */ 'use strict'; -var SyntheticUIEvent = require('SyntheticUIEvent'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); /** * @interface FocusEvent diff --git a/packages/react-dom/src/events/SyntheticInputEvent.js b/packages/react-dom/src/events/SyntheticInputEvent.js index 08bf381b8b0f0..caa432ce77130 100644 --- a/packages/react-dom/src/events/SyntheticInputEvent.js +++ b/packages/react-dom/src/events/SyntheticInputEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticInputEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface Event diff --git a/packages/react-dom/src/events/SyntheticKeyboardEvent.js b/packages/react-dom/src/events/SyntheticKeyboardEvent.js index 6514dc809b682..4a187821f134d 100644 --- a/packages/react-dom/src/events/SyntheticKeyboardEvent.js +++ b/packages/react-dom/src/events/SyntheticKeyboardEvent.js @@ -3,17 +3,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticKeyboardEvent */ 'use strict'; -var SyntheticUIEvent = require('SyntheticUIEvent'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); -var getEventCharCode = require('getEventCharCode'); -var getEventKey = require('getEventKey'); -var getEventModifierState = require('getEventModifierState'); +var getEventCharCode = require('./getEventCharCode'); +var getEventKey = require('./getEventKey'); +var getEventModifierState = require('./getEventModifierState'); /** * @interface KeyboardEvent diff --git a/packages/react-dom/src/events/SyntheticMouseEvent.js b/packages/react-dom/src/events/SyntheticMouseEvent.js index bfbe4f3e9c467..ffc52b55da963 100644 --- a/packages/react-dom/src/events/SyntheticMouseEvent.js +++ b/packages/react-dom/src/events/SyntheticMouseEvent.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticMouseEvent */ 'use strict'; -var SyntheticUIEvent = require('SyntheticUIEvent'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); -var getEventModifierState = require('getEventModifierState'); +var getEventModifierState = require('./getEventModifierState'); /** * @interface MouseEvent diff --git a/packages/react-dom/src/events/SyntheticTouchEvent.js b/packages/react-dom/src/events/SyntheticTouchEvent.js index c8bfb9f10ce5f..2fdb43c489192 100644 --- a/packages/react-dom/src/events/SyntheticTouchEvent.js +++ b/packages/react-dom/src/events/SyntheticTouchEvent.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticTouchEvent */ 'use strict'; -var SyntheticUIEvent = require('SyntheticUIEvent'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); -var getEventModifierState = require('getEventModifierState'); +var getEventModifierState = require('./getEventModifierState'); /** * @interface TouchEvent diff --git a/packages/react-dom/src/events/SyntheticTransitionEvent.js b/packages/react-dom/src/events/SyntheticTransitionEvent.js index 12095c11fc030..1a10a96264c4d 100644 --- a/packages/react-dom/src/events/SyntheticTransitionEvent.js +++ b/packages/react-dom/src/events/SyntheticTransitionEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticTransitionEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface Event diff --git a/packages/react-dom/src/events/SyntheticUIEvent.js b/packages/react-dom/src/events/SyntheticUIEvent.js index 844b8cc360a13..f3935b457c552 100644 --- a/packages/react-dom/src/events/SyntheticUIEvent.js +++ b/packages/react-dom/src/events/SyntheticUIEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticUIEvent */ 'use strict'; -var SyntheticEvent = require('SyntheticEvent'); +var SyntheticEvent = require('events/SyntheticEvent'); /** * @interface UIEvent diff --git a/packages/react-dom/src/events/SyntheticWheelEvent.js b/packages/react-dom/src/events/SyntheticWheelEvent.js index 100518eff55b7..0eac6cc4c9863 100644 --- a/packages/react-dom/src/events/SyntheticWheelEvent.js +++ b/packages/react-dom/src/events/SyntheticWheelEvent.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SyntheticWheelEvent */ 'use strict'; -var SyntheticMouseEvent = require('SyntheticMouseEvent'); +var SyntheticMouseEvent = require('./SyntheticMouseEvent'); /** * @interface WheelEvent diff --git a/packages/react-dom/src/events/TapEventPlugin.js b/packages/react-dom/src/events/TapEventPlugin.js index 154cb8bae4caa..d3e53624b822e 100644 --- a/packages/react-dom/src/events/TapEventPlugin.js +++ b/packages/react-dom/src/events/TapEventPlugin.js @@ -4,15 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule TapEventPlugin * @flow */ 'use strict'; -var EventPluginUtils = require('EventPluginUtils'); -var EventPropagators = require('EventPropagators'); -var SyntheticUIEvent = require('SyntheticUIEvent'); +var EventPluginUtils = require('events/EventPluginUtils'); +var EventPropagators = require('events/EventPropagators'); +var SyntheticUIEvent = require('./SyntheticUIEvent'); var TouchEventUtils = require('fbjs/lib/TouchEventUtils'); var isStartish = EventPluginUtils.isStartish; diff --git a/packages/react-dom/src/events/__tests__/BeforeInputEventPlugin-test.js b/packages/react-dom/src/events/__tests__/BeforeInputEventPlugin-test.js index f073b0963a4f9..eb48bcd88a05d 100644 --- a/packages/react-dom/src/events/__tests__/BeforeInputEventPlugin-test.js +++ b/packages/react-dom/src/events/__tests__/BeforeInputEventPlugin-test.js @@ -49,10 +49,10 @@ describe('BeforeInputEventPlugin', function() { this.ReactDOM = require('react-dom'); // TODO: can we express this test with only public API? - this.ReactDOMComponentTree = require('ReactDOMComponentTree'); - this.SyntheticCompositionEvent = require('SyntheticCompositionEvent'); - this.SyntheticInputEvent = require('SyntheticInputEvent'); - this.BeforeInputEventPlugin = require('BeforeInputEventPlugin'); + this.ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); + this.SyntheticCompositionEvent = require('react-dom/src/events/SyntheticCompositionEvent'); + this.SyntheticInputEvent = require('react-dom/src/events/SyntheticInputEvent'); + this.BeforeInputEventPlugin = require('react-dom/src/events/BeforeInputEventPlugin'); } function extract(node, eventType, optionalData) { diff --git a/packages/react-dom/src/events/__tests__/ChangeEventPlugin-test.js b/packages/react-dom/src/events/__tests__/ChangeEventPlugin-test.js index 15adf32e99862..684f1a73c01a1 100644 --- a/packages/react-dom/src/events/__tests__/ChangeEventPlugin-test.js +++ b/packages/react-dom/src/events/__tests__/ChangeEventPlugin-test.js @@ -13,8 +13,8 @@ var React = require('react'); var ReactDOM = require('react-dom'); var ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? -var ChangeEventPlugin = require('ChangeEventPlugin'); -var inputValueTracking = require('inputValueTracking'); +var ChangeEventPlugin = require('react-dom/src/events/ChangeEventPlugin'); +var inputValueTracking = require('react-dom/src/client/inputValueTracking'); function getTrackedValue(elem) { var tracker = inputValueTracking._getTrackerFromNode(elem); diff --git a/packages/react-dom/src/events/__tests__/EnterLeaveEventPlugin-test.js b/packages/react-dom/src/events/__tests__/EnterLeaveEventPlugin-test.js index c9bb7863a93cd..25048fe1d7627 100644 --- a/packages/react-dom/src/events/__tests__/EnterLeaveEventPlugin-test.js +++ b/packages/react-dom/src/events/__tests__/EnterLeaveEventPlugin-test.js @@ -23,8 +23,8 @@ describe('EnterLeaveEventPlugin', () => { ReactDOM = require('react-dom'); ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? - ReactDOMComponentTree = require('ReactDOMComponentTree'); - EnterLeaveEventPlugin = require('EnterLeaveEventPlugin'); + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); + EnterLeaveEventPlugin = require('react-dom/src/events/EnterLeaveEventPlugin'); }); it('should set relatedTarget properly in iframe', () => { diff --git a/packages/react-dom/src/events/__tests__/FallbackCompositionState-test.js b/packages/react-dom/src/events/__tests__/FallbackCompositionState-test.js index 0f6149e25c128..5dc540ef0f837 100644 --- a/packages/react-dom/src/events/__tests__/FallbackCompositionState-test.js +++ b/packages/react-dom/src/events/__tests__/FallbackCompositionState-test.js @@ -16,7 +16,7 @@ describe('FallbackCompositionState', () => { beforeEach(() => { // TODO: can we express this test with only public API? - FallbackCompositionState = require('FallbackCompositionState'); + FallbackCompositionState = require('react-dom/src/events/FallbackCompositionState'); }); function getInput() { diff --git a/packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js b/packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js index bc118828f704a..deee5e767025f 100644 --- a/packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js +++ b/packages/react-dom/src/events/__tests__/SelectEventPlugin-test.js @@ -30,8 +30,8 @@ describe('SelectEventPlugin', () => { ReactDOM = require('react-dom'); ReactTestUtils = require('react-dom/test-utils'); // TODO: can we express this test with only public API? - ReactDOMComponentTree = require('ReactDOMComponentTree'); - SelectEventPlugin = require('SelectEventPlugin'); + ReactDOMComponentTree = require('react-dom/src/client/ReactDOMComponentTree'); + SelectEventPlugin = require('react-dom/src/events/SelectEventPlugin'); }); it('should skip extraction if no listeners are present', () => { diff --git a/packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js b/packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js index f671f39a5ac98..aa2a008db3c6a 100644 --- a/packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js +++ b/packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js @@ -16,9 +16,9 @@ describe('SyntheticClipboardEvent', () => { beforeEach(() => { // TODO: can we express this test with only public API? - SyntheticClipboardEvent = require('SyntheticClipboardEvent'); + SyntheticClipboardEvent = require('react-dom/src/events/SyntheticClipboardEvent'); createEvent = function(nativeEvent) { - var target = require('getEventTarget')(nativeEvent); + var target = require('react-dom/src/events/getEventTarget')(nativeEvent); return SyntheticClipboardEvent.getPooled({}, '', nativeEvent, target); }; }); diff --git a/packages/react-dom/src/events/__tests__/SyntheticEvent-test.js b/packages/react-dom/src/events/__tests__/SyntheticEvent-test.js index 46ad876144f1a..8d057e9e32faf 100644 --- a/packages/react-dom/src/events/__tests__/SyntheticEvent-test.js +++ b/packages/react-dom/src/events/__tests__/SyntheticEvent-test.js @@ -19,13 +19,13 @@ describe('SyntheticEvent', () => { beforeEach(() => { // TODO: can we express this test with only public API? - SyntheticEvent = require('SyntheticEvent'); + SyntheticEvent = require('events/SyntheticEvent'); React = require('react'); ReactDOM = require('react-dom'); ReactTestUtils = require('react-dom/test-utils'); createEvent = function(nativeEvent) { - var target = require('getEventTarget')(nativeEvent); + var target = require('react-dom/src/events/getEventTarget')(nativeEvent); return SyntheticEvent.getPooled({}, '', nativeEvent, target); }; }); diff --git a/packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js b/packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js index 4c510cc6f60af..1f48e33e39378 100644 --- a/packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js +++ b/packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js @@ -17,13 +17,13 @@ describe('SyntheticKeyboardEvent', () => { beforeEach(() => { // Mock getEventCharCode for proper unit testing - jest.mock('getEventCharCode'); - getEventCharCode = require('getEventCharCode'); + jest.mock('react-dom/src/events/getEventCharCode'); + getEventCharCode = require('react-dom/src/events/getEventCharCode'); // TODO: can we express this test with only public API? - SyntheticKeyboardEvent = require('SyntheticKeyboardEvent'); + SyntheticKeyboardEvent = require('react-dom/src/events/SyntheticKeyboardEvent'); createEvent = function(nativeEvent) { - var target = require('getEventTarget')(nativeEvent); + var target = require('react-dom/src/events/getEventTarget')(nativeEvent); return SyntheticKeyboardEvent.getPooled({}, '', nativeEvent, target); }; }); diff --git a/packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js b/packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js index 2da16b632ad26..a60d3965be795 100644 --- a/packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js +++ b/packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js @@ -16,10 +16,10 @@ describe('SyntheticWheelEvent', () => { beforeEach(() => { // TODO: can we express this test with only public API? - SyntheticWheelEvent = require('SyntheticWheelEvent'); + SyntheticWheelEvent = require('react-dom/src/events/SyntheticWheelEvent'); createEvent = function(nativeEvent) { - var target = require('getEventTarget')(nativeEvent); + var target = require('react-dom/src/events/getEventTarget')(nativeEvent); return SyntheticWheelEvent.getPooled({}, '', nativeEvent, target); }; }); diff --git a/packages/react-dom/src/events/__tests__/getEventCharCode-test.js b/packages/react-dom/src/events/__tests__/getEventCharCode-test.js index d6b3e0a46bce2..d885706f8928f 100644 --- a/packages/react-dom/src/events/__tests__/getEventCharCode-test.js +++ b/packages/react-dom/src/events/__tests__/getEventCharCode-test.js @@ -10,7 +10,7 @@ 'use strict'; // TODO: can we express this test with only public API? -var getEventCharCode = require('getEventCharCode'); +var getEventCharCode = require('react-dom/src/events/getEventCharCode'); describe('getEventCharCode', () => { describe('when charCode is present in nativeEvent', () => { diff --git a/packages/react-dom/src/events/__tests__/getEventKey-test.js b/packages/react-dom/src/events/__tests__/getEventKey-test.js index 9e48e2b72a93c..12e4a8342ab1e 100644 --- a/packages/react-dom/src/events/__tests__/getEventKey-test.js +++ b/packages/react-dom/src/events/__tests__/getEventKey-test.js @@ -10,7 +10,7 @@ 'use strict'; // TODO: can we express this test with only public API? -var getEventKey = require('getEventKey'); +var getEventKey = require('react-dom/src/events/getEventKey'); describe('getEventKey', () => { describe('when key is implemented in a browser', () => { diff --git a/packages/react-dom/src/events/getEventCharCode.js b/packages/react-dom/src/events/getEventCharCode.js index 176b32ce1e3e9..a06be3c16e84b 100644 --- a/packages/react-dom/src/events/getEventCharCode.js +++ b/packages/react-dom/src/events/getEventCharCode.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getEventCharCode */ 'use strict'; diff --git a/packages/react-dom/src/events/getEventKey.js b/packages/react-dom/src/events/getEventKey.js index 82408f8e13521..d7cebc894d048 100644 --- a/packages/react-dom/src/events/getEventKey.js +++ b/packages/react-dom/src/events/getEventKey.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getEventKey */ 'use strict'; -var getEventCharCode = require('getEventCharCode'); +var getEventCharCode = require('./getEventCharCode'); /** * Normalization of deprecated HTML5 `key` values diff --git a/packages/react-dom/src/events/getEventModifierState.js b/packages/react-dom/src/events/getEventModifierState.js index 5cf170b8d8454..a3b8073b7ec85 100644 --- a/packages/react-dom/src/events/getEventModifierState.js +++ b/packages/react-dom/src/events/getEventModifierState.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getEventModifierState */ 'use strict'; diff --git a/packages/react-dom/src/events/getEventTarget.js b/packages/react-dom/src/events/getEventTarget.js index 6a02d239028e7..9792a29df1c69 100644 --- a/packages/react-dom/src/events/getEventTarget.js +++ b/packages/react-dom/src/events/getEventTarget.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getEventTarget */ 'use strict'; -var {TEXT_NODE} = require('HTMLNodeType'); +var {TEXT_NODE} = require('../shared/HTMLNodeType'); /** * Gets the target node from a native browser event by accounting for diff --git a/packages/react-dom/src/events/getVendorPrefixedEventName.js b/packages/react-dom/src/events/getVendorPrefixedEventName.js index eb666fec500f2..225ca5492d744 100644 --- a/packages/react-dom/src/events/getVendorPrefixedEventName.js +++ b/packages/react-dom/src/events/getVendorPrefixedEventName.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule getVendorPrefixedEventName */ 'use strict'; diff --git a/packages/react-dom/src/events/isEventSupported.js b/packages/react-dom/src/events/isEventSupported.js index 8496624e3bb28..e07f151c5bfdc 100644 --- a/packages/react-dom/src/events/isEventSupported.js +++ b/packages/react-dom/src/events/isEventSupported.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule isEventSupported */ 'use strict'; diff --git a/packages/react-dom/src/server/DOMMarkupOperations.js b/packages/react-dom/src/server/DOMMarkupOperations.js index d2470493053d9..a908aeda9695b 100644 --- a/packages/react-dom/src/server/DOMMarkupOperations.js +++ b/packages/react-dom/src/server/DOMMarkupOperations.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule DOMMarkupOperations */ 'use strict'; -var DOMProperty = require('DOMProperty'); +var DOMProperty = require('../shared/DOMProperty'); -var quoteAttributeValueForBrowser = require('quoteAttributeValueForBrowser'); +var quoteAttributeValueForBrowser = require('../shared/quoteAttributeValueForBrowser'); if (__DEV__) { var warning = require('fbjs/lib/warning'); diff --git a/packages/react-dom/src/server/ReactDOMNodeStreamRenderer.js b/packages/react-dom/src/server/ReactDOMNodeStreamRenderer.js index d3ff728ed2213..56155183e1680 100644 --- a/packages/react-dom/src/server/ReactDOMNodeStreamRenderer.js +++ b/packages/react-dom/src/server/ReactDOMNodeStreamRenderer.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMNodeStreamRenderer */ 'use strict'; -var ReactPartialRenderer = require('ReactPartialRenderer'); +var ReactPartialRenderer = require('./ReactPartialRenderer'); var Readable = require('stream').Readable; // This is a Readable Node.js stream which wraps the ReactDOMPartialRenderer. diff --git a/packages/react-dom/src/server/ReactDOMServerBrowser.js b/packages/react-dom/src/server/ReactDOMServerBrowser.js index fa3557106f8b4..c0c8e97facd68 100644 --- a/packages/react-dom/src/server/ReactDOMServerBrowser.js +++ b/packages/react-dom/src/server/ReactDOMServerBrowser.js @@ -7,11 +7,11 @@ 'use strict'; -var ReactDOMStringRenderer = require('ReactDOMStringRenderer'); -var ReactVersion = require('ReactVersion'); +var ReactDOMStringRenderer = require('./ReactDOMStringRenderer'); +var ReactVersion = require('shared/ReactVersion'); var invariant = require('fbjs/lib/invariant'); -require('ReactDOMInjection'); +require('../shared/ReactDOMInjection'); module.exports = { renderToString: ReactDOMStringRenderer.renderToString, diff --git a/packages/react-dom/src/server/ReactDOMServerNode.js b/packages/react-dom/src/server/ReactDOMServerNode.js index dbec2e1815aac..7b5e103ed2d74 100644 --- a/packages/react-dom/src/server/ReactDOMServerNode.js +++ b/packages/react-dom/src/server/ReactDOMServerNode.js @@ -7,11 +7,11 @@ 'use strict'; -var ReactDOMStringRenderer = require('ReactDOMStringRenderer'); -var ReactDOMNodeStreamRenderer = require('ReactDOMNodeStreamRenderer'); -var ReactVersion = require('ReactVersion'); +var ReactDOMStringRenderer = require('./ReactDOMStringRenderer'); +var ReactDOMNodeStreamRenderer = require('./ReactDOMNodeStreamRenderer'); +var ReactVersion = require('shared/ReactVersion'); -require('ReactDOMInjection'); +require('../shared/ReactDOMInjection'); module.exports = { renderToString: ReactDOMStringRenderer.renderToString, diff --git a/packages/react-dom/src/server/ReactDOMStringRenderer.js b/packages/react-dom/src/server/ReactDOMStringRenderer.js index f5571e449772c..e32e6a19c6990 100644 --- a/packages/react-dom/src/server/ReactDOMStringRenderer.js +++ b/packages/react-dom/src/server/ReactDOMStringRenderer.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMStringRenderer */ 'use strict'; -var ReactPartialRenderer = require('ReactPartialRenderer'); +var ReactPartialRenderer = require('./ReactPartialRenderer'); /** * Render a ReactElement to its initial HTML. This should only be used on the diff --git a/packages/react-dom/src/server/ReactPartialRenderer.js b/packages/react-dom/src/server/ReactPartialRenderer.js index d01feaebe198c..9e62982f84de0 100644 --- a/packages/react-dom/src/server/ReactPartialRenderer.js +++ b/packages/react-dom/src/server/ReactPartialRenderer.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactPartialRenderer */ 'use strict'; @@ -13,21 +11,21 @@ var { Namespaces, getIntrinsicNamespace, getChildNamespace, -} = require('DOMNamespaces'); -var DOMMarkupOperations = require('DOMMarkupOperations'); +} = require('../shared/DOMNamespaces'); +var DOMMarkupOperations = require('./DOMMarkupOperations'); var React = require('react'); -var ReactControlledValuePropTypes = require('ReactControlledValuePropTypes'); +var ReactControlledValuePropTypes = require('../shared/ReactControlledValuePropTypes'); -var assertValidProps = require('assertValidProps'); -var dangerousStyleValue = require('dangerousStyleValue'); +var assertValidProps = require('../shared/assertValidProps'); +var dangerousStyleValue = require('../shared/dangerousStyleValue'); var emptyFunction = require('fbjs/lib/emptyFunction'); var emptyObject = require('fbjs/lib/emptyObject'); -var escapeTextContentForBrowser = require('escapeTextContentForBrowser'); +var escapeTextContentForBrowser = require('../shared/escapeTextContentForBrowser'); var hyphenateStyleName = require('fbjs/lib/hyphenateStyleName'); var invariant = require('fbjs/lib/invariant'); var memoizeStringOnly = require('fbjs/lib/memoizeStringOnly'); -var omittedCloseTags = require('omittedCloseTags'); -var isCustomComponent = require('isCustomComponent'); +var omittedCloseTags = require('../shared/omittedCloseTags'); +var isCustomComponent = require('../shared/isCustomComponent'); var toArray = React.Children.toArray; var getStackAddendum = emptyFunction.thatReturns(''); @@ -35,23 +33,23 @@ var getStackAddendum = emptyFunction.thatReturns(''); if (__DEV__) { var warning = require('fbjs/lib/warning'); var checkPropTypes = require('prop-types/checkPropTypes'); - var warnValidStyle = require('warnValidStyle'); + var warnValidStyle = require('../shared/warnValidStyle'); var { validateProperties: validateARIAProperties, - } = require('ReactDOMInvalidARIAHook'); + } = require('../shared/ReactDOMInvalidARIAHook'); var { validateProperties: validateInputProperties, - } = require('ReactDOMNullInputValuePropHook'); + } = require('../shared/ReactDOMNullInputValuePropHook'); var { validateProperties: validateUnknownProperties, - } = require('ReactDOMUnknownPropertyHook'); + } = require('../shared/ReactDOMUnknownPropertyHook'); var validatePropertiesInDevelopment = function(type, props) { validateARIAProperties(type, props); validateInputProperties(type, props); validateUnknownProperties(type, props); }; - var describeComponentFrame = require('describeComponentFrame'); + var describeComponentFrame = require('shared/describeComponentFrame'); var describeStackFrame = function(element): string { var source = element._source; var type = element.type; @@ -60,7 +58,7 @@ if (__DEV__) { return describeComponentFrame(name, source, ownerName); }; - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState'); var currentDebugStack = null; var currentDebugElementStack = null; var setCurrentDebugStack = function(stack) { diff --git a/packages/react-dom/src/shared/CSSProperty.js b/packages/react-dom/src/shared/CSSProperty.js index 19835c261a5ea..961b3406ab730 100644 --- a/packages/react-dom/src/shared/CSSProperty.js +++ b/packages/react-dom/src/shared/CSSProperty.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule CSSProperty */ 'use strict'; diff --git a/packages/react-dom/src/shared/CSSPropertyOperations.js b/packages/react-dom/src/shared/CSSPropertyOperations.js index 4fea94c13a0f9..87e9f2e3b9877 100644 --- a/packages/react-dom/src/shared/CSSPropertyOperations.js +++ b/packages/react-dom/src/shared/CSSPropertyOperations.js @@ -3,17 +3,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule CSSPropertyOperations */ 'use strict'; -var dangerousStyleValue = require('dangerousStyleValue'); +var dangerousStyleValue = require('./dangerousStyleValue'); if (__DEV__) { var hyphenateStyleName = require('fbjs/lib/hyphenateStyleName'); - var warnValidStyle = require('warnValidStyle'); + var warnValidStyle = require('./warnValidStyle'); } /** diff --git a/packages/react-dom/src/shared/DOMNamespaces.js b/packages/react-dom/src/shared/DOMNamespaces.js index d105334ef88a8..efb2eff6b974f 100644 --- a/packages/react-dom/src/shared/DOMNamespaces.js +++ b/packages/react-dom/src/shared/DOMNamespaces.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule DOMNamespaces */ 'use strict'; diff --git a/packages/react-dom/src/shared/DOMProperty.js b/packages/react-dom/src/shared/DOMProperty.js index efdd149663bfd..b61a9c5a852d4 100644 --- a/packages/react-dom/src/shared/DOMProperty.js +++ b/packages/react-dom/src/shared/DOMProperty.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule DOMProperty */ 'use strict'; diff --git a/packages/react-dom/src/shared/HTMLDOMPropertyConfig.js b/packages/react-dom/src/shared/HTMLDOMPropertyConfig.js index 45a3669fa6f86..964c824beafbb 100644 --- a/packages/react-dom/src/shared/HTMLDOMPropertyConfig.js +++ b/packages/react-dom/src/shared/HTMLDOMPropertyConfig.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule HTMLDOMPropertyConfig */ 'use strict'; -var DOMProperty = require('DOMProperty'); +var DOMProperty = require('./DOMProperty'); var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; diff --git a/packages/react-dom/src/shared/HTMLNodeType.js b/packages/react-dom/src/shared/HTMLNodeType.js index c8b5efb28e685..e0741cf91c357 100644 --- a/packages/react-dom/src/shared/HTMLNodeType.js +++ b/packages/react-dom/src/shared/HTMLNodeType.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule HTMLNodeType */ 'use strict'; diff --git a/packages/react-dom/src/shared/ReactControlledValuePropTypes.js b/packages/react-dom/src/shared/ReactControlledValuePropTypes.js index 1774728d9a9da..7aa4784711658 100644 --- a/packages/react-dom/src/shared/ReactControlledValuePropTypes.js +++ b/packages/react-dom/src/shared/ReactControlledValuePropTypes.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactControlledValuePropTypes */ 'use strict'; diff --git a/packages/react-dom/src/shared/ReactDOMInjection.js b/packages/react-dom/src/shared/ReactDOMInjection.js index 05608a75e81ae..c0e1987c937c7 100644 --- a/packages/react-dom/src/shared/ReactDOMInjection.js +++ b/packages/react-dom/src/shared/ReactDOMInjection.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMInjection */ 'use strict'; -var DOMProperty = require('DOMProperty'); -var HTMLDOMPropertyConfig = require('HTMLDOMPropertyConfig'); -var SVGDOMPropertyConfig = require('SVGDOMPropertyConfig'); +var DOMProperty = require('./DOMProperty'); +var HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig'); +var SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig'); DOMProperty.injection.injectDOMPropertyConfig(HTMLDOMPropertyConfig); DOMProperty.injection.injectDOMPropertyConfig(SVGDOMPropertyConfig); diff --git a/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js b/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js index d54d0e7878837..74cc759adc83e 100644 --- a/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js +++ b/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js @@ -3,14 +3,12 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMInvalidARIAHook */ 'use strict'; -var DOMProperty = require('DOMProperty'); -var isCustomComponent = require('isCustomComponent'); +var DOMProperty = require('./DOMProperty'); +var isCustomComponent = require('./isCustomComponent'); var warnedProperties = {}; var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); @@ -22,7 +20,7 @@ var hasOwnProperty = Object.prototype.hasOwnProperty; if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState'); var validAriaProperties = require('./validAriaProperties'); } diff --git a/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js b/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js index 74ddf2b888938..27c0718591a97 100644 --- a/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js +++ b/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js @@ -3,15 +3,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMNullInputValuePropHook */ 'use strict'; if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState'); } var didWarnValueNull = false; diff --git a/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js b/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js index 3fb07e4ca9c77..33877cf48e9c6 100644 --- a/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js +++ b/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js @@ -3,19 +3,17 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactDOMUnknownPropertyHook */ 'use strict'; -var DOMProperty = require('DOMProperty'); -var EventPluginRegistry = require('EventPluginRegistry'); -var isCustomComponent = require('isCustomComponent'); +var DOMProperty = require('./DOMProperty'); +var EventPluginRegistry = require('events/EventPluginRegistry'); +var isCustomComponent = require('./isCustomComponent'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); + var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState'); } function getStackAddendum() { @@ -31,7 +29,7 @@ if (__DEV__) { var rARIACamel = new RegExp( '^(aria)[A-Z][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$', ); - var possibleStandardNames = require('possibleStandardNames'); + var possibleStandardNames = require('./possibleStandardNames'); var validateProperty = function(tagName, name, value) { if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) { diff --git a/packages/react-dom/src/shared/SVGDOMPropertyConfig.js b/packages/react-dom/src/shared/SVGDOMPropertyConfig.js index 6d45eb15bb6c4..2aa9f0fb5b0f2 100644 --- a/packages/react-dom/src/shared/SVGDOMPropertyConfig.js +++ b/packages/react-dom/src/shared/SVGDOMPropertyConfig.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule SVGDOMPropertyConfig */ 'use strict'; -var DOMProperty = require('DOMProperty'); +var DOMProperty = require('./DOMProperty'); var {HAS_STRING_BOOLEAN_VALUE} = DOMProperty.injection; diff --git a/packages/react-dom/src/shared/assertValidProps.js b/packages/react-dom/src/shared/assertValidProps.js index 2efa70d4da57b..1d9e2f27d6445 100644 --- a/packages/react-dom/src/shared/assertValidProps.js +++ b/packages/react-dom/src/shared/assertValidProps.js @@ -3,14 +3,12 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule assertValidProps */ 'use strict'; var invariant = require('fbjs/lib/invariant'); -var voidElementTags = require('voidElementTags'); +var voidElementTags = require('./voidElementTags'); if (__DEV__) { var warning = require('fbjs/lib/warning'); diff --git a/packages/react-dom/src/shared/checkReact.js b/packages/react-dom/src/shared/checkReact.js index 780497a5b7590..d6f7280d1c1de 100644 --- a/packages/react-dom/src/shared/checkReact.js +++ b/packages/react-dom/src/shared/checkReact.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule checkReact * @flow */ diff --git a/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js b/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js index c27beba9d5b4b..2473afdc6eaa2 100644 --- a/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js +++ b/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule createMicrosoftUnsafeLocalFunction */ /* globals MSApp */ diff --git a/packages/react-dom/src/shared/dangerousStyleValue.js b/packages/react-dom/src/shared/dangerousStyleValue.js index 0da1044febb30..8d90e1113648a 100644 --- a/packages/react-dom/src/shared/dangerousStyleValue.js +++ b/packages/react-dom/src/shared/dangerousStyleValue.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule dangerousStyleValue */ 'use strict'; -var CSSProperty = require('CSSProperty'); +var CSSProperty = require('./CSSProperty'); var isUnitlessNumber = CSSProperty.isUnitlessNumber; diff --git a/packages/react-dom/src/shared/escapeTextContentForBrowser.js b/packages/react-dom/src/shared/escapeTextContentForBrowser.js index b077247b4996a..c2210d8c5af17 100644 --- a/packages/react-dom/src/shared/escapeTextContentForBrowser.js +++ b/packages/react-dom/src/shared/escapeTextContentForBrowser.js @@ -28,8 +28,6 @@ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * @providesModule escapeTextContentForBrowser */ 'use strict'; diff --git a/packages/react-dom/src/shared/isCustomComponent.js b/packages/react-dom/src/shared/isCustomComponent.js index a84071038615f..4740144e6daee 100644 --- a/packages/react-dom/src/shared/isCustomComponent.js +++ b/packages/react-dom/src/shared/isCustomComponent.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule isCustomComponent * @flow */ diff --git a/packages/react-dom/src/shared/omittedCloseTags.js b/packages/react-dom/src/shared/omittedCloseTags.js index e54b16fb5b8fe..2af43168f4a59 100644 --- a/packages/react-dom/src/shared/omittedCloseTags.js +++ b/packages/react-dom/src/shared/omittedCloseTags.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule omittedCloseTags */ 'use strict'; diff --git a/packages/react-dom/src/shared/possibleStandardNames.js b/packages/react-dom/src/shared/possibleStandardNames.js index 0349d4ce4e0b7..3308cb6276465 100644 --- a/packages/react-dom/src/shared/possibleStandardNames.js +++ b/packages/react-dom/src/shared/possibleStandardNames.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule possibleStandardNames */ // When adding attributes to the HTML or SVG whitelist, be sure to diff --git a/packages/react-dom/src/shared/quoteAttributeValueForBrowser.js b/packages/react-dom/src/shared/quoteAttributeValueForBrowser.js index 9fae79031c336..4e25e1bf19d33 100644 --- a/packages/react-dom/src/shared/quoteAttributeValueForBrowser.js +++ b/packages/react-dom/src/shared/quoteAttributeValueForBrowser.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule quoteAttributeValueForBrowser */ 'use strict'; -var escapeTextContentForBrowser = require('escapeTextContentForBrowser'); +var escapeTextContentForBrowser = require('./escapeTextContentForBrowser'); /** * Escapes attribute value to prevent scripting attacks. diff --git a/packages/react-dom/src/shared/validAriaProperties.js b/packages/react-dom/src/shared/validAriaProperties.js index 2d31dc5a9bc0c..7c5570d71c437 100644 --- a/packages/react-dom/src/shared/validAriaProperties.js +++ b/packages/react-dom/src/shared/validAriaProperties.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule validAriaProperties */ 'use strict'; diff --git a/packages/react-dom/src/shared/voidElementTags.js b/packages/react-dom/src/shared/voidElementTags.js index 5bd717c4fb8c7..3f4d3558928ca 100644 --- a/packages/react-dom/src/shared/voidElementTags.js +++ b/packages/react-dom/src/shared/voidElementTags.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule voidElementTags */ 'use strict'; -var omittedCloseTags = require('omittedCloseTags'); +var omittedCloseTags = require('./omittedCloseTags'); // For HTML, certain tags cannot have children. This has the same purpose as // `omittedCloseTags` except that `menuitem` should still have its closing tag. diff --git a/packages/react-dom/src/shared/warnValidStyle.js b/packages/react-dom/src/shared/warnValidStyle.js index 9f176c7292e65..5914e8a69650e 100644 --- a/packages/react-dom/src/shared/warnValidStyle.js +++ b/packages/react-dom/src/shared/warnValidStyle.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule warnValidStyle */ 'use strict'; diff --git a/packages/react-dom/src/test-utils/ReactTestUtils.js b/packages/react-dom/src/test-utils/ReactTestUtils.js index 4292897a46b03..eab0c9fbe1d58 100644 --- a/packages/react-dom/src/test-utils/ReactTestUtils.js +++ b/packages/react-dom/src/test-utils/ReactTestUtils.js @@ -7,13 +7,13 @@ 'use strict'; -var BrowserEventConstants = require('BrowserEventConstants'); +var BrowserEventConstants = require('../events/BrowserEventConstants'); var React = require('react'); var ReactDOM = require('react-dom'); -var ReactFiberTreeReflection = require('ReactFiberTreeReflection'); -var ReactInstanceMap = require('ReactInstanceMap'); -var ReactTypeOfWork = require('ReactTypeOfWork'); -var SyntheticEvent = require('SyntheticEvent'); +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); +var SyntheticEvent = require('events/SyntheticEvent'); var invariant = require('fbjs/lib/invariant'); diff --git a/packages/react-dom/src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies.js b/packages/react-dom/src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies.js index 046fc60f77d1b..afe4345d90b84 100644 --- a/packages/react-dom/src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies.js +++ b/packages/react-dom/src/unstable-native-dependencies/ReactDOMUnstableNativeDependencies.js @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -const EventPluginUtils = require('EventPluginUtils'); -const ResponderEventPlugin = require('ResponderEventPlugin'); -const ResponderTouchHistoryStore = require('ResponderTouchHistoryStore'); +const EventPluginUtils = require('events/EventPluginUtils'); +const ResponderEventPlugin = require('events/ResponderEventPlugin'); +const ResponderTouchHistoryStore = require('events/ResponderTouchHistoryStore'); // This is used by react-native-web. const ReactDOMUnstableNativeDependencies = { diff --git a/packages/react-native-renderer/package.json b/packages/react-native-renderer/package.json index 607a6cfe43dd7..73e282f2c2aee 100644 --- a/packages/react-native-renderer/package.json +++ b/packages/react-native-renderer/package.json @@ -5,6 +5,10 @@ "repository": "facebook/react", "dependencies": { "fbjs": "^0.8.16", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16.0.0" } } diff --git a/packages/react-native-renderer/src/NativeMethodsMixin.js b/packages/react-native-renderer/src/NativeMethodsMixin.js index 840c952f5005e..6a189164128cf 100644 --- a/packages/react-native-renderer/src/NativeMethodsMixin.js +++ b/packages/react-native-renderer/src/NativeMethodsMixin.js @@ -4,24 +4,25 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule NativeMethodsMixin * @flow */ 'use strict'; -const ReactNativeAttributePayload = require('ReactNativeAttributePayload'); +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload'); + +// Module provided by RN: const TextInputState = require('TextInputState'); const UIManager = require('UIManager'); const invariant = require('fbjs/lib/invariant'); -const findNodeHandle = require('findNodeHandle'); -const findNumericNodeHandle = require('findNumericNodeHandle'); +const findNodeHandle = require('./findNodeHandle'); +const findNumericNodeHandle = require('./findNumericNodeHandle'); const { mountSafeCallback, throwOnStylesProp, warnForStyleProps, -} = require('NativeMethodsMixinUtils'); +} = require('./NativeMethodsMixinUtils'); import type { MeasureInWindowOnSuccessCallback, @@ -29,7 +30,7 @@ import type { MeasureOnSuccessCallback, NativeMethodsMixinType, ReactNativeBaseComponentViewConfig, -} from 'ReactNativeTypes'; +} from './ReactNativeTypes'; /** * `NativeMethodsMixin` provides methods to access the underlying native diff --git a/packages/react-native-renderer/src/NativeMethodsMixinUtils.js b/packages/react-native-renderer/src/NativeMethodsMixinUtils.js index 50290385b0bf8..e70f1cfeeddd5 100644 --- a/packages/react-native-renderer/src/NativeMethodsMixinUtils.js +++ b/packages/react-native-renderer/src/NativeMethodsMixinUtils.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule NativeMethodsMixinUtils * @flow */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeAttributePayload.js b/packages/react-native-renderer/src/ReactNativeAttributePayload.js index 9dcf54b654f5f..6579b39cea8a0 100644 --- a/packages/react-native-renderer/src/ReactNativeAttributePayload.js +++ b/packages/react-native-renderer/src/ReactNativeAttributePayload.js @@ -4,13 +4,13 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeAttributePayload * @flow */ 'use strict'; -var ReactNativePropRegistry = require('ReactNativePropRegistry'); +var ReactNativePropRegistry = require('./ReactNativePropRegistry'); +// Module provided by RN: var deepDiffer = require('deepDiffer'); var flattenStyle = require('flattenStyle'); diff --git a/packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js b/packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js index 089c6b1591ba1..ecf3fe8f62ddd 100644 --- a/packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js +++ b/packages/react-native-renderer/src/ReactNativeBridgeEventPlugin.js @@ -4,19 +4,18 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeBridgeEventPlugin * @flow */ 'use strict'; -const EventPropagators = require('EventPropagators'); -const SyntheticEvent = require('SyntheticEvent'); +const EventPropagators = require('events/EventPropagators'); +const SyntheticEvent = require('events/SyntheticEvent'); const invariant = require('fbjs/lib/invariant'); const customBubblingEventTypes = {}; const customDirectEventTypes = {}; -import type {ReactNativeBaseComponentViewConfig} from 'ReactNativeTypes'; +import type {ReactNativeBaseComponentViewConfig} from './ReactNativeTypes'; const ReactNativeBridgeEventPlugin = { eventTypes: {}, diff --git a/packages/react-native-renderer/src/ReactNativeComponent.js b/packages/react-native-renderer/src/ReactNativeComponent.js index 5399171bfed9c..0022073cdda19 100644 --- a/packages/react-native-renderer/src/ReactNativeComponent.js +++ b/packages/react-native-renderer/src/ReactNativeComponent.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeComponent * @flow * @format */ @@ -12,14 +11,16 @@ 'use strict'; const React = require('react'); -const ReactNativeAttributePayload = require('ReactNativeAttributePayload'); +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload'); + +// Modules provided by RN: const TextInputState = require('TextInputState'); const UIManager = require('UIManager'); -const findNodeHandle = require('findNodeHandle'); -const findNumericNodeHandle = require('findNumericNodeHandle'); +const findNodeHandle = require('./findNodeHandle'); +const findNumericNodeHandle = require('./findNumericNodeHandle'); -const {mountSafeCallback} = require('NativeMethodsMixinUtils'); +const {mountSafeCallback} = require('./NativeMethodsMixinUtils'); import type { MeasureInWindowOnSuccessCallback, @@ -27,7 +28,7 @@ import type { MeasureOnSuccessCallback, NativeMethodsMixinType, ReactNativeBaseComponentViewConfig, -} from 'ReactNativeTypes'; +} from './ReactNativeTypes'; /** * Superclass that provides methods to access the underlying native component. diff --git a/packages/react-native-renderer/src/ReactNativeComponentTree.js b/packages/react-native-renderer/src/ReactNativeComponentTree.js index a67da6213bc68..95318abbcef23 100644 --- a/packages/react-native-renderer/src/ReactNativeComponentTree.js +++ b/packages/react-native-renderer/src/ReactNativeComponentTree.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactNativeComponentTree */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeEventEmitter.js b/packages/react-native-renderer/src/ReactNativeEventEmitter.js index 7ba69efdb8dfb..40fc38165079c 100644 --- a/packages/react-native-renderer/src/ReactNativeEventEmitter.js +++ b/packages/react-native-renderer/src/ReactNativeEventEmitter.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeEventEmitter * @flow */ 'use strict'; -var EventPluginHub = require('EventPluginHub'); -var EventPluginRegistry = require('EventPluginRegistry'); -var ReactEventEmitterMixin = require('ReactEventEmitterMixin'); -var ReactNativeComponentTree = require('ReactNativeComponentTree'); -var ReactNativeTagHandles = require('ReactNativeTagHandles'); -var ReactGenericBatching = require('ReactGenericBatching'); +var EventPluginHub = require('events/EventPluginHub'); +var EventPluginRegistry = require('events/EventPluginRegistry'); +var ReactEventEmitterMixin = require('events/ReactEventEmitterMixin'); +var ReactNativeComponentTree = require('./ReactNativeComponentTree'); +var ReactNativeTagHandles = require('./ReactNativeTagHandles'); +var ReactGenericBatching = require('events/ReactGenericBatching'); if (__DEV__) { var warning = require('fbjs/lib/warning'); diff --git a/packages/react-native-renderer/src/ReactNativeEventPluginOrder.js b/packages/react-native-renderer/src/ReactNativeEventPluginOrder.js index a94a55f19f4b8..4b2a118a2631f 100644 --- a/packages/react-native-renderer/src/ReactNativeEventPluginOrder.js +++ b/packages/react-native-renderer/src/ReactNativeEventPluginOrder.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeEventPluginOrder * @flow */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeFiberErrorDialog.js b/packages/react-native-renderer/src/ReactNativeFiberErrorDialog.js index 69dc88149b7e4..76d32b1112fcc 100644 --- a/packages/react-native-renderer/src/ReactNativeFiberErrorDialog.js +++ b/packages/react-native-renderer/src/ReactNativeFiberErrorDialog.js @@ -4,15 +4,15 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeFiberErrorDialog * @flow */ 'use strict'; +// Module provided by RN: const ExceptionsManager = require('ExceptionsManager'); -import type {CapturedError} from 'ReactFiberScheduler'; +import type {CapturedError} from 'react-reconciler/src/ReactFiberScheduler'; /** * Intercept lifecycle errors and ensure they are shown with the correct stack diff --git a/packages/react-native-renderer/src/ReactNativeFiberHostComponent.js b/packages/react-native-renderer/src/ReactNativeFiberHostComponent.js index 28371213ebe0d..9e3a8770b0594 100644 --- a/packages/react-native-renderer/src/ReactNativeFiberHostComponent.js +++ b/packages/react-native-renderer/src/ReactNativeFiberHostComponent.js @@ -4,17 +4,21 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeFiberHostComponent * @flow */ 'use strict'; -var ReactNativeAttributePayload = require('ReactNativeAttributePayload'); +var ReactNativeAttributePayload = require('./ReactNativeAttributePayload'); + +// Modules provided by RN: var TextInputState = require('TextInputState'); var UIManager = require('UIManager'); -var {mountSafeCallback, warnForStyleProps} = require('NativeMethodsMixinUtils'); +var { + mountSafeCallback, + warnForStyleProps, +} = require('./NativeMethodsMixinUtils'); import type { MeasureInWindowOnSuccessCallback, @@ -22,8 +26,8 @@ import type { MeasureOnSuccessCallback, NativeMethodsMixinType, ReactNativeBaseComponentViewConfig, -} from 'ReactNativeTypes'; -import type {Instance} from 'ReactNativeFiberRenderer'; +} from './ReactNativeTypes'; +import type {Instance} from './ReactNativeFiberRenderer'; /** * This component defines the same methods as NativeMethodsMixin but without the diff --git a/packages/react-native-renderer/src/ReactNativeFiberInspector.js b/packages/react-native-renderer/src/ReactNativeFiberInspector.js index b88e225fbcb9a..7016f0885978d 100644 --- a/packages/react-native-renderer/src/ReactNativeFiberInspector.js +++ b/packages/react-native-renderer/src/ReactNativeFiberInspector.js @@ -4,24 +4,25 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeFiberInspector * @flow */ 'use strict'; -const ReactNativeComponentTree = require('ReactNativeComponentTree'); -const ReactFiberTreeReflection = require('ReactFiberTreeReflection'); -const getComponentName = require('getComponentName'); +const ReactNativeComponentTree = require('./ReactNativeComponentTree'); +const ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection'); +const getComponentName = require('shared/getComponentName'); const emptyObject = require('fbjs/lib/emptyObject'); -const ReactTypeOfWork = require('ReactTypeOfWork'); -const UIManager = require('UIManager'); +const ReactTypeOfWork = require('shared/ReactTypeOfWork'); const invariant = require('fbjs/lib/invariant'); +// Module provided by RN: +const UIManager = require('UIManager'); + const {getClosestInstanceFromNode} = ReactNativeComponentTree; const {findCurrentFiberUsingSlowPath} = ReactFiberTreeReflection; const {HostComponent} = ReactTypeOfWork; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; let getInspectorDataForViewTag; diff --git a/packages/react-native-renderer/src/ReactNativeFiberRenderer.js b/packages/react-native-renderer/src/ReactNativeFiberRenderer.js index fdb0918c293ed..4e5ed2ef4f260 100644 --- a/packages/react-native-renderer/src/ReactNativeFiberRenderer.js +++ b/packages/react-native-renderer/src/ReactNativeFiberRenderer.js @@ -4,25 +4,26 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeFiberRenderer * @flow */ 'use strict'; const ReactFiberReconciler = require('react-reconciler'); -const ReactNativeAttributePayload = require('ReactNativeAttributePayload'); -const ReactNativeComponentTree = require('ReactNativeComponentTree'); -const ReactNativeFiberHostComponent = require('ReactNativeFiberHostComponent'); -const ReactNativeTagHandles = require('ReactNativeTagHandles'); -const ReactNativeViewConfigRegistry = require('ReactNativeViewConfigRegistry'); -const UIManager = require('UIManager'); +const ReactNativeAttributePayload = require('./ReactNativeAttributePayload'); +const ReactNativeComponentTree = require('./ReactNativeComponentTree'); +const ReactNativeFiberHostComponent = require('./ReactNativeFiberHostComponent'); +const ReactNativeTagHandles = require('./ReactNativeTagHandles'); +const ReactNativeViewConfigRegistry = require('./ReactNativeViewConfigRegistry'); +// Modules provided by RN: +const UIManager = require('UIManager'); const deepFreezeAndThrowOnMutationInDev = require('deepFreezeAndThrowOnMutationInDev'); + const emptyObject = require('fbjs/lib/emptyObject'); const invariant = require('fbjs/lib/invariant'); -import type {ReactNativeBaseComponentViewConfig} from 'ReactNativeTypes'; +import type {ReactNativeBaseComponentViewConfig} from './ReactNativeTypes'; export type Container = number; export type Instance = { diff --git a/packages/react-native-renderer/src/ReactNativeGlobalResponderHandler.js b/packages/react-native-renderer/src/ReactNativeGlobalResponderHandler.js index 84104c6a62b67..986d37d8445f9 100644 --- a/packages/react-native-renderer/src/ReactNativeGlobalResponderHandler.js +++ b/packages/react-native-renderer/src/ReactNativeGlobalResponderHandler.js @@ -3,11 +3,10 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactNativeGlobalResponderHandler */ 'use strict'; +// Module provided by RN: var UIManager = require('UIManager'); var ReactNativeGlobalResponderHandler = { diff --git a/packages/react-native-renderer/src/ReactNativeInjection.js b/packages/react-native-renderer/src/ReactNativeInjection.js index 4c8d5b56786dd..0050826574ced 100644 --- a/packages/react-native-renderer/src/ReactNativeInjection.js +++ b/packages/react-native-renderer/src/ReactNativeInjection.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeInjection * @flow */ 'use strict'; @@ -15,17 +14,19 @@ * ensures it exists in the dependency graph and can be `require`d. * TODO: require this in packager, not in React #10932517 */ +// Module provided by RN: require('InitializeCore'); -var EventPluginHub = require('EventPluginHub'); -var EventPluginUtils = require('EventPluginUtils'); +var EventPluginHub = require('events/EventPluginHub'); +var EventPluginUtils = require('events/EventPluginUtils'); +// Module provided by RN: var RCTEventEmitter = require('RCTEventEmitter'); -var ReactNativeBridgeEventPlugin = require('ReactNativeBridgeEventPlugin'); -var ReactNativeComponentTree = require('ReactNativeComponentTree'); -var ReactNativeEventEmitter = require('ReactNativeEventEmitter'); -var ReactNativeEventPluginOrder = require('ReactNativeEventPluginOrder'); -var ReactNativeGlobalResponderHandler = require('ReactNativeGlobalResponderHandler'); -var ResponderEventPlugin = require('ResponderEventPlugin'); +var ReactNativeBridgeEventPlugin = require('./ReactNativeBridgeEventPlugin'); +var ReactNativeComponentTree = require('./ReactNativeComponentTree'); +var ReactNativeEventEmitter = require('./ReactNativeEventEmitter'); +var ReactNativeEventPluginOrder = require('./ReactNativeEventPluginOrder'); +var ReactNativeGlobalResponderHandler = require('./ReactNativeGlobalResponderHandler'); +var ResponderEventPlugin = require('events/ResponderEventPlugin'); /** * Register the event emitter with the native bridge diff --git a/packages/react-native-renderer/src/ReactNativePropRegistry.js b/packages/react-native-renderer/src/ReactNativePropRegistry.js index 80919287293f4..78aaef44647d3 100644 --- a/packages/react-native-renderer/src/ReactNativePropRegistry.js +++ b/packages/react-native-renderer/src/ReactNativePropRegistry.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativePropRegistry * @flow */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeRenderer.js b/packages/react-native-renderer/src/ReactNativeRenderer.js index a9724e5416c5c..4396c9ad6058b 100644 --- a/packages/react-native-renderer/src/ReactNativeRenderer.js +++ b/packages/react-native-renderer/src/ReactNativeRenderer.js @@ -9,24 +9,29 @@ 'use strict'; -const ReactFiberErrorLogger = require('ReactFiberErrorLogger'); -const ReactGenericBatching = require('ReactGenericBatching'); -const ReactNativeFiberErrorDialog = require('ReactNativeFiberErrorDialog'); -const ReactPortal = require('ReactPortal'); -const ReactNativeComponentTree = require('ReactNativeComponentTree'); -const ReactNativeFiberRenderer = require('ReactNativeFiberRenderer'); -const ReactNativeFiberInspector = require('ReactNativeFiberInspector'); -const ReactVersion = require('ReactVersion'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger'); +const ReactPortal = require('react-reconciler/src/ReactPortal'); +const { + injectInternals, +} = require('react-reconciler/src/ReactFiberDevToolsHook'); + +const ReactGenericBatching = require('events/ReactGenericBatching'); +const ReactNativeFiberErrorDialog = require('./ReactNativeFiberErrorDialog'); +const ReactNativeComponentTree = require('./ReactNativeComponentTree'); +const ReactNativeFiberRenderer = require('./ReactNativeFiberRenderer'); +const ReactNativeFiberInspector = require('./ReactNativeFiberInspector'); +const ReactVersion = require('shared/ReactVersion'); + +// Module provided by RN: const UIManager = require('UIManager'); -const findNumericNodeHandle = require('findNumericNodeHandle'); +const findNumericNodeHandle = require('./findNumericNodeHandle'); -const {injectInternals} = require('ReactFiberDevToolsHook'); +import type {ReactNativeType} from './ReactNativeTypes'; +import type {ReactNodeList} from 'shared/ReactTypes'; -import type {ReactNativeType} from 'ReactNativeTypes'; -import type {ReactNodeList} from 'ReactTypes'; - -require('ReactNativeInjection'); +require('./ReactNativeInjection'); ReactGenericBatching.injection.injectFiberBatchedUpdates( ReactNativeFiberRenderer.batchedUpdates, @@ -41,7 +46,7 @@ ReactFiberErrorLogger.injection.injectDialog( ); const ReactNativeRenderer: ReactNativeType = { - NativeComponent: require('ReactNativeComponent'), + NativeComponent: require('./ReactNativeComponent'), findNodeHandle: findNumericNodeHandle, @@ -90,16 +95,16 @@ const ReactNativeRenderer: ReactNativeType = { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { // Used as a mixin in many createClass-based components - NativeMethodsMixin: require('NativeMethodsMixin'), + NativeMethodsMixin: require('./NativeMethodsMixin'), // Used by react-native-github/Libraries/ components - ReactNativeBridgeEventPlugin: require('ReactNativeBridgeEventPlugin'), // requireNativeComponent - ReactGlobalSharedState: require('ReactGlobalSharedState'), // Systrace - ReactNativeComponentTree: require('ReactNativeComponentTree'), // InspectorUtils, ScrollResponder - ReactNativePropRegistry: require('ReactNativePropRegistry'), // flattenStyle, Stylesheet - TouchHistoryMath: require('TouchHistoryMath'), // PanResponder - createReactNativeComponentClass: require('createReactNativeComponentClass'), // eg RCTText, RCTView, ReactNativeART - takeSnapshot: require('takeSnapshot'), // react-native-implementation + ReactNativeBridgeEventPlugin: require('./ReactNativeBridgeEventPlugin'), // requireNativeComponent + ReactGlobalSharedState: require('shared/ReactGlobalSharedState'), // Systrace + ReactNativeComponentTree: require('./ReactNativeComponentTree'), // InspectorUtils, ScrollResponder + ReactNativePropRegistry: require('./ReactNativePropRegistry'), // flattenStyle, Stylesheet + TouchHistoryMath: require('events/TouchHistoryMath'), // PanResponder + createReactNativeComponentClass: require('./createReactNativeComponentClass'), // RCTText, RCTView, ReactNativeART + takeSnapshot: require('./takeSnapshot'), // react-native-implementation }, }; diff --git a/packages/react-native-renderer/src/ReactNativeTagHandles.js b/packages/react-native-renderer/src/ReactNativeTagHandles.js index fcfbae4746ede..6ca15ded45f1b 100644 --- a/packages/react-native-renderer/src/ReactNativeTagHandles.js +++ b/packages/react-native-renderer/src/ReactNativeTagHandles.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeTagHandles * @flow */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeTypes.js b/packages/react-native-renderer/src/ReactNativeTypes.js index 5da6886014ffb..59316b637a372 100644 --- a/packages/react-native-renderer/src/ReactNativeTypes.js +++ b/packages/react-native-renderer/src/ReactNativeTypes.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeTypes * @flow */ 'use strict'; diff --git a/packages/react-native-renderer/src/ReactNativeViewConfigRegistry.js b/packages/react-native-renderer/src/ReactNativeViewConfigRegistry.js index 46bf630372491..a86eccfb505bf 100644 --- a/packages/react-native-renderer/src/ReactNativeViewConfigRegistry.js +++ b/packages/react-native-renderer/src/ReactNativeViewConfigRegistry.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeViewConfigRegistry * @flow */ @@ -15,7 +14,7 @@ const invariant = require('fbjs/lib/invariant'); import type { ReactNativeBaseComponentViewConfig, ViewConfigGetter, -} from 'ReactNativeTypes'; +} from './ReactNativeTypes'; const viewConfigCallbacks = new Map(); const viewConfigs = new Map(); diff --git a/packages/react-native-renderer/src/__mocks__/UIManager.js b/packages/react-native-renderer/src/__mocks__/UIManager.js index def31e2ad1ffb..5ffdc3ddeb985 100644 --- a/packages/react-native-renderer/src/__mocks__/UIManager.js +++ b/packages/react-native-renderer/src/__mocks__/UIManager.js @@ -9,7 +9,7 @@ // Mock of the Native Hooks -const ReactNativeTagHandles = require('ReactNativeTagHandles'); +const ReactNativeTagHandles = require('../ReactNativeTagHandles'); const invariant = require('fbjs/lib/invariant'); // Map of viewTag -> {children: [childTag], parent: ?parentTag} diff --git a/packages/react-native-renderer/src/__mocks__/View.js b/packages/react-native-renderer/src/__mocks__/View.js index d74f2f822b653..988458ec44c1c 100644 --- a/packages/react-native-renderer/src/__mocks__/View.js +++ b/packages/react-native-renderer/src/__mocks__/View.js @@ -7,7 +7,7 @@ 'use strict'; -var createReactNativeComponentClass = require('createReactNativeComponentClass'); +var createReactNativeComponentClass = require('../createReactNativeComponentClass'); var View = createReactNativeComponentClass({ validAttributes: {}, diff --git a/packages/react-native-renderer/src/__tests__/ReactNativeAttributePayload-test.js b/packages/react-native-renderer/src/__tests__/ReactNativeAttributePayload-test.js index 3f8c50b5b8ae8..124e26a4e1c45 100644 --- a/packages/react-native-renderer/src/__tests__/ReactNativeAttributePayload-test.js +++ b/packages/react-native-renderer/src/__tests__/ReactNativeAttributePayload-test.js @@ -7,8 +7,8 @@ */ 'use strict'; -var ReactNativeAttributePayload = require('ReactNativeAttributePayload'); -var ReactNativePropRegistry = require('ReactNativePropRegistry'); +var ReactNativeAttributePayload = require('react-native-renderer/src/ReactNativeAttributePayload'); +var ReactNativePropRegistry = require('react-native-renderer/src/ReactNativePropRegistry'); var diff = ReactNativeAttributePayload.diff; diff --git a/packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.js b/packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.js index c25818f2dc255..4e18e920d376c 100644 --- a/packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.js +++ b/packages/react-native-renderer/src/__tests__/ReactNativeEvents-test.js @@ -69,10 +69,10 @@ beforeEach(() => { RCTEventEmitter = require('RCTEventEmitter'); React = require('react'); ReactNative = require('react-native-renderer'); - ReactNativeBridgeEventPlugin = require('ReactNativeBridgeEventPlugin'); - ResponderEventPlugin = require('ResponderEventPlugin'); + ReactNativeBridgeEventPlugin = require('react-native-renderer/src/ReactNativeBridgeEventPlugin'); + ResponderEventPlugin = require('events/ResponderEventPlugin'); UIManager = require('UIManager'); - createReactNativeComponentClass = require('createReactNativeComponentClass'); + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass'); }); it('fails if unknown/unsupported event types are dispatched', () => { diff --git a/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.js b/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.js index 782bb310cbf1e..374fea72b9e22 100644 --- a/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.js +++ b/packages/react-native-renderer/src/__tests__/ReactNativeMount-test.js @@ -21,7 +21,7 @@ describe('ReactNative', () => { React = require('react'); ReactNative = require('react-native-renderer'); UIManager = require('UIManager'); - createReactNativeComponentClass = require('createReactNativeComponentClass'); + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass'); }); it('should be able to create and render a native component', () => { diff --git a/packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.js b/packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.js index 1ac08508d59c8..70166d57ecdee 100644 --- a/packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.js +++ b/packages/react-native-renderer/src/__tests__/createReactNativeComponentClass-test.js @@ -17,7 +17,7 @@ describe('createReactNativeComponentClass', () => { beforeEach(() => { jest.resetModules(); - createReactNativeComponentClass = require('createReactNativeComponentClass'); + createReactNativeComponentClass = require('react-native-renderer/src/createReactNativeComponentClass'); React = require('react'); ReactNative = require('react-native-renderer'); }); diff --git a/packages/react-native-renderer/src/createReactNativeComponentClass.js b/packages/react-native-renderer/src/createReactNativeComponentClass.js index dc27698d46168..f7118b5275857 100644 --- a/packages/react-native-renderer/src/createReactNativeComponentClass.js +++ b/packages/react-native-renderer/src/createReactNativeComponentClass.js @@ -4,15 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule createReactNativeComponentClass * @flow */ 'use strict'; -const ReactNativeViewConfigRegistry = require('ReactNativeViewConfigRegistry'); +const ReactNativeViewConfigRegistry = require('./ReactNativeViewConfigRegistry'); -import type {ViewConfigGetter} from 'ReactNativeTypes'; +import type {ViewConfigGetter} from './ReactNativeTypes'; /** * Creates a renderable ReactNative host component. diff --git a/packages/react-native-renderer/src/findNodeHandle.js b/packages/react-native-renderer/src/findNodeHandle.js index 2098da550b5a9..32b5328f937f9 100644 --- a/packages/react-native-renderer/src/findNodeHandle.js +++ b/packages/react-native-renderer/src/findNodeHandle.js @@ -4,23 +4,22 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule findNodeHandle * @flow */ 'use strict'; -var ReactInstanceMap = require('ReactInstanceMap'); -var ReactNativeFiberRenderer = require('ReactNativeFiberRenderer'); -var {ReactCurrentOwner} = require('ReactGlobalSharedState'); -var getComponentName = require('getComponentName'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); +var ReactNativeFiberRenderer = require('./ReactNativeFiberRenderer'); +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState'); +var getComponentName = require('shared/getComponentName'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { var warning = require('fbjs/lib/warning'); } -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; /** * ReactNative vs ReactWeb diff --git a/packages/react-native-renderer/src/findNumericNodeHandle.js b/packages/react-native-renderer/src/findNumericNodeHandle.js index 11c5eacf134e4..e6bc039da4248 100644 --- a/packages/react-native-renderer/src/findNumericNodeHandle.js +++ b/packages/react-native-renderer/src/findNumericNodeHandle.js @@ -4,12 +4,11 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule findNumericNodeHandle * @flow */ 'use strict'; -var findNodeHandle = require('findNodeHandle'); +var findNodeHandle = require('./findNodeHandle'); /** * External users of findNodeHandle() expect the host tag number return type. diff --git a/packages/react-native-renderer/src/takeSnapshot.js b/packages/react-native-renderer/src/takeSnapshot.js index be46aa52464f6..3f06f8aa52466 100644 --- a/packages/react-native-renderer/src/takeSnapshot.js +++ b/packages/react-native-renderer/src/takeSnapshot.js @@ -4,14 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule takeSnapshot * @flow */ 'use strict'; +// Module provided by RN: const UIManager = require('UIManager'); -const findNumericNodeHandle = require('findNumericNodeHandle'); +const findNumericNodeHandle = require('./findNumericNodeHandle'); /** * Capture an image of the screen, window or an individual view. The image diff --git a/packages/react-noop-renderer/package.json b/packages/react-noop-renderer/package.json index e4c942fb275c5..386cbfa7b8aaa 100644 --- a/packages/react-noop-renderer/package.json +++ b/packages/react-noop-renderer/package.json @@ -8,7 +8,11 @@ "license": "MIT", "dependencies": { "fbjs": "^0.8.16", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16.0.0" }, "files": [ "LICENSE", diff --git a/packages/react-noop-renderer/src/ReactNoop.js b/packages/react-noop-renderer/src/ReactNoop.js index b49705adbd736..2c90361135bad 100644 --- a/packages/react-noop-renderer/src/ReactNoop.js +++ b/packages/react-noop-renderer/src/ReactNoop.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNoop * @flow */ @@ -17,13 +16,14 @@ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {UpdateQueue} from 'ReactFiberUpdateQueue'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; +import type {UpdateQueue} from 'react-reconciler/src/ReactFiberUpdateQueue'; -var ReactFeatureFlags = require('ReactFeatureFlags'); -var ReactFiberInstrumentation = require('ReactFiberInstrumentation'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +var ReactFiberInstrumentation = require('react-reconciler/src/ReactFiberInstrumentation'); var ReactFiberReconciler = require('react-reconciler'); -var ReactInstanceMap = require('ReactInstanceMap'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); var emptyObject = require('fbjs/lib/emptyObject'); var expect = require('jest-matchers'); diff --git a/packages/react-reconciler/package.json b/packages/react-reconciler/package.json index 1432bb2ee6871..f3fccf1774aa4 100644 --- a/packages/react-reconciler/package.json +++ b/packages/react-reconciler/package.json @@ -25,7 +25,8 @@ "dependencies": { "fbjs": "^0.8.16", "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" }, "browserify": { "transform": [ diff --git a/packages/react-reconciler/src/ReactChildFiber.js b/packages/react-reconciler/src/ReactChildFiber.js index 2aab280dde634..602958d553bd1 100644 --- a/packages/react-reconciler/src/ReactChildFiber.js +++ b/packages/react-reconciler/src/ReactChildFiber.js @@ -4,29 +4,30 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactChildFiber * @flow */ 'use strict'; -import type {ReactElement} from 'ReactElementType'; -import type {ReactCoroutine, ReactPortal, ReactYield} from 'ReactTypes'; -import type {Fiber} from 'ReactFiber'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {ReactElement} from 'shared/ReactElementType'; +import type {ReactCoroutine, ReactPortal, ReactYield} from 'shared/ReactTypes'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; +import type { + ExpirationTime, +} from 'react-reconciler/src/ReactFiberExpirationTime'; -var {REACT_COROUTINE_TYPE, REACT_YIELD_TYPE} = require('ReactCoroutine'); -var {REACT_PORTAL_TYPE} = require('ReactPortal'); +var {REACT_COROUTINE_TYPE, REACT_YIELD_TYPE} = require('./ReactCoroutine'); +var {REACT_PORTAL_TYPE} = require('./ReactPortal'); -var ReactFiber = require('ReactFiber'); -var ReactTypeOfSideEffect = require('ReactTypeOfSideEffect'); -var ReactTypeOfWork = require('ReactTypeOfWork'); +var ReactFiber = require('./ReactFiber'); +var ReactTypeOfSideEffect = require('shared/ReactTypeOfSideEffect'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); var emptyObject = require('fbjs/lib/emptyObject'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { - var {getCurrentFiberStackAddendum} = require('ReactDebugCurrentFiber'); + var {getCurrentFiberStackAddendum} = require('./ReactDebugCurrentFiber'); var warning = require('fbjs/lib/warning'); var didWarnAboutMaps = false; /** diff --git a/packages/react-reconciler/src/ReactCoroutine.js b/packages/react-reconciler/src/ReactCoroutine.js index 73f5b9826d96a..749fe94b421c8 100644 --- a/packages/react-reconciler/src/ReactCoroutine.js +++ b/packages/react-reconciler/src/ReactCoroutine.js @@ -4,13 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactCoroutine * @flow */ 'use strict'; -import type {ReactCoroutine, ReactNodeList, ReactYield} from 'ReactTypes'; +import type { + ReactCoroutine, + ReactNodeList, + ReactYield, +} from 'shared/ReactTypes'; // The Symbol used to tag the special React types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. diff --git a/packages/react-reconciler/src/ReactDebugCurrentFiber.js b/packages/react-reconciler/src/ReactDebugCurrentFiber.js index 92b3fa26f1441..d27b203466fcb 100644 --- a/packages/react-reconciler/src/ReactDebugCurrentFiber.js +++ b/packages/react-reconciler/src/ReactDebugCurrentFiber.js @@ -4,23 +4,22 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDebugCurrentFiber * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from './ReactFiber'; type LifeCyclePhase = 'render' | 'getChildContext'; -var {ReactDebugCurrentFrame} = require('ReactGlobalSharedState'); +var {ReactDebugCurrentFrame} = require('shared/ReactGlobalSharedState'); if (__DEV__) { - var getComponentName = require('getComponentName'); + var getComponentName = require('shared/getComponentName'); var { getStackAddendumByWorkInProgressFiber, - } = require('ReactFiberComponentTreeHook'); + } = require('shared/ReactFiberComponentTreeHook'); } function getCurrentFiberOwnerName(): string | null { diff --git a/packages/react-reconciler/src/ReactDebugFiberPerf.js b/packages/react-reconciler/src/ReactDebugFiberPerf.js index 2d41a1e4655a6..e84a67d3d0e5a 100644 --- a/packages/react-reconciler/src/ReactDebugFiberPerf.js +++ b/packages/react-reconciler/src/ReactDebugFiberPerf.js @@ -4,11 +4,10 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDebugFiberPerf * @flow */ -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from './ReactFiber'; type MeasurementPhase = | 'componentWillMount' @@ -31,9 +30,9 @@ if (__DEV__) { HostPortal, YieldComponent, Fragment, - } = require('ReactTypeOfWork'); + } = require('shared/ReactTypeOfWork'); - const getComponentName = require('getComponentName'); + const getComponentName = require('shared/getComponentName'); // Prefix measurements so that it's possible to filter them. // Longer prefixes are hard to read in DevTools. diff --git a/packages/react-reconciler/src/ReactFiber.js b/packages/react-reconciler/src/ReactFiber.js index 18e4a984a3f3d..58a81749c57d7 100644 --- a/packages/react-reconciler/src/ReactFiber.js +++ b/packages/react-reconciler/src/ReactFiber.js @@ -4,24 +4,23 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiber * @flow */ 'use strict'; -import type {ReactElement, Source} from 'ReactElementType'; +import type {ReactElement, Source} from 'shared/ReactElementType'; import type { ReactCoroutine, ReactFragment, ReactPortal, ReactYield, -} from 'ReactTypes'; -import type {TypeOfWork} from 'ReactTypeOfWork'; -import type {TypeOfInternalContext} from 'ReactTypeOfInternalContext'; -import type {TypeOfSideEffect} from 'ReactTypeOfSideEffect'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; -import type {UpdateQueue} from 'ReactFiberUpdateQueue'; +} from 'shared/ReactTypes'; +import type {TypeOfWork} from 'shared/ReactTypeOfWork'; +import type {TypeOfInternalContext} from './ReactTypeOfInternalContext'; +import type {TypeOfSideEffect} from 'shared/ReactTypeOfSideEffect'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; +import type {UpdateQueue} from './ReactFiberUpdateQueue'; var { IndeterminateComponent, @@ -33,18 +32,18 @@ var { CoroutineComponent, YieldComponent, Fragment, -} = require('ReactTypeOfWork'); +} = require('shared/ReactTypeOfWork'); -var {NoWork} = require('ReactFiberExpirationTime'); +var {NoWork} = require('./ReactFiberExpirationTime'); -var {NoContext} = require('ReactTypeOfInternalContext'); +var {NoContext} = require('./ReactTypeOfInternalContext'); -var {NoEffect} = require('ReactTypeOfSideEffect'); +var {NoEffect} = require('shared/ReactTypeOfSideEffect'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { - var getComponentName = require('getComponentName'); + var getComponentName = require('shared/getComponentName'); var hasBadMapPolyfill = false; try { const nonExtensibleObject = Object.preventExtensions({}); diff --git a/packages/react-reconciler/src/ReactFiberBeginWork.js b/packages/react-reconciler/src/ReactFiberBeginWork.js index a36d40b67ef91..6cee50814c4d6 100644 --- a/packages/react-reconciler/src/ReactFiberBeginWork.js +++ b/packages/react-reconciler/src/ReactFiberBeginWork.js @@ -4,28 +4,27 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberBeginWork * @flow */ 'use strict'; import type {HostConfig} from 'react-reconciler'; -import type {ReactCoroutine} from 'ReactTypes'; -import type {Fiber} from 'ReactFiber'; -import type {HostContext} from 'ReactFiberHostContext'; -import type {HydrationContext} from 'ReactFiberHydrationContext'; -import type {FiberRoot} from 'ReactFiberRoot'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {ReactCoroutine} from 'shared/ReactTypes'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; +import type {HostContext} from './ReactFiberHostContext'; +import type {HydrationContext} from './ReactFiberHydrationContext'; +import type {FiberRoot} from './ReactFiberRoot'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; var { mountChildFibersInPlace, reconcileChildFibers, reconcileChildFibersInPlace, cloneChildFibers, -} = require('ReactChildFiber'); -var {processUpdateQueue} = require('ReactFiberUpdateQueue'); -var ReactTypeOfWork = require('ReactTypeOfWork'); +} = require('./ReactChildFiber'); +var {processUpdateQueue} = require('./ReactFiberUpdateQueue'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); var { getMaskedContext, getUnmaskedContext, @@ -33,7 +32,7 @@ var { pushContextProvider, pushTopLevelContextObject, invalidateContextProvider, -} = require('ReactFiberContext'); +} = require('./ReactFiberContext'); var { IndeterminateComponent, FunctionalComponent, @@ -47,21 +46,21 @@ var { YieldComponent, Fragment, } = ReactTypeOfWork; -var {NoWork, Never} = require('ReactFiberExpirationTime'); +var {NoWork, Never} = require('./ReactFiberExpirationTime'); var { PerformedWork, Placement, ContentReset, Err, Ref, -} = require('ReactTypeOfSideEffect'); -var ReactFiberClassComponent = require('ReactFiberClassComponent'); -var {ReactCurrentOwner} = require('ReactGlobalSharedState'); +} = require('shared/ReactTypeOfSideEffect'); +var ReactFiberClassComponent = require('./ReactFiberClassComponent'); +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); - var {cancelWorkTimer} = require('ReactDebugFiberPerf'); + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber'); + var {cancelWorkTimer} = require('./ReactDebugFiberPerf'); var warning = require('fbjs/lib/warning'); var warnedAboutStatelessRefs = {}; diff --git a/packages/react-reconciler/src/ReactFiberClassComponent.js b/packages/react-reconciler/src/ReactFiberClassComponent.js index a9464b1af2dff..ff2091dfb8445 100644 --- a/packages/react-reconciler/src/ReactFiberClassComponent.js +++ b/packages/react-reconciler/src/ReactFiberClassComponent.js @@ -4,35 +4,34 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberClassComponent * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {Fiber} from './ReactFiber'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; -var {Update} = require('ReactTypeOfSideEffect'); +var {Update} = require('shared/ReactTypeOfSideEffect'); -var ReactFeatureFlags = require('ReactFeatureFlags'); -var {AsyncUpdates} = require('ReactTypeOfInternalContext'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); +var {AsyncUpdates} = require('./ReactTypeOfInternalContext'); var { cacheContext, getMaskedContext, getUnmaskedContext, isContextConsumer, -} = require('ReactFiberContext'); +} = require('./ReactFiberContext'); var { insertUpdateIntoFiber, processUpdateQueue, -} = require('ReactFiberUpdateQueue'); -var {hasContextChanged} = require('ReactFiberContext'); -var {isMounted} = require('ReactFiberTreeReflection'); -var ReactInstanceMap = require('ReactInstanceMap'); +} = require('./ReactFiberUpdateQueue'); +var {hasContextChanged} = require('./ReactFiberContext'); +var {isMounted} = require('shared/ReactFiberTreeReflection'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); var emptyObject = require('fbjs/lib/emptyObject'); -var getComponentName = require('getComponentName'); +var getComponentName = require('shared/getComponentName'); var shallowEqual = require('fbjs/lib/shallowEqual'); var invariant = require('fbjs/lib/invariant'); @@ -40,7 +39,7 @@ const fakeInternalInstance = {}; const isArray = Array.isArray; if (__DEV__) { - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf'); + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf'); var warning = require('fbjs/lib/warning'); var warnOnInvalidCallback = function(callback: mixed, callerName: string) { warning( diff --git a/packages/react-reconciler/src/ReactFiberCommitWork.js b/packages/react-reconciler/src/ReactFiberCommitWork.js index 5ad88d78935c7..91b3c7a239bb2 100644 --- a/packages/react-reconciler/src/ReactFiberCommitWork.js +++ b/packages/react-reconciler/src/ReactFiberCommitWork.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberCommitWork * @flow */ 'use strict'; import type {HostConfig} from 'react-reconciler'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from './ReactFiber'; -var ReactFeatureFlags = require('ReactFeatureFlags'); -var ReactTypeOfWork = require('ReactTypeOfWork'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); var { ClassComponent, HostRoot, @@ -23,20 +22,20 @@ var { HostPortal, CoroutineComponent, } = ReactTypeOfWork; -var {commitCallbacks} = require('ReactFiberUpdateQueue'); -var {onCommitUnmount} = require('ReactFiberDevToolsHook'); +var {commitCallbacks} = require('./ReactFiberUpdateQueue'); +var {onCommitUnmount} = require('./ReactFiberDevToolsHook'); var { invokeGuardedCallback, hasCaughtError, clearCaughtError, -} = require('ReactErrorUtils'); +} = require('shared/ReactErrorUtils'); -var {Placement, Update, ContentReset} = require('ReactTypeOfSideEffect'); +var {Placement, Update, ContentReset} = require('shared/ReactTypeOfSideEffect'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf'); + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf'); } module.exports = function( diff --git a/packages/react-reconciler/src/ReactFiberCompleteWork.js b/packages/react-reconciler/src/ReactFiberCompleteWork.js index cb252756678d6..d94db5869f9c4 100644 --- a/packages/react-reconciler/src/ReactFiberCompleteWork.js +++ b/packages/react-reconciler/src/ReactFiberCompleteWork.js @@ -4,29 +4,28 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberCompleteWork * @flow */ 'use strict'; import type {HostConfig} from 'react-reconciler'; -import type {ReactCoroutine} from 'ReactTypes'; -import type {Fiber} from 'ReactFiber'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; -import type {HostContext} from 'ReactFiberHostContext'; -import type {HydrationContext} from 'ReactFiberHydrationContext'; -import type {FiberRoot} from 'ReactFiberRoot'; +import type {ReactCoroutine} from 'shared/ReactTypes'; +import type {Fiber} from './ReactFiber'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; +import type {HostContext} from './ReactFiberHostContext'; +import type {HydrationContext} from './ReactFiberHydrationContext'; +import type {FiberRoot} from './ReactFiberRoot'; -var {reconcileChildFibers} = require('ReactChildFiber'); +var {reconcileChildFibers} = require('./ReactChildFiber'); var { popContextProvider, popTopLevelContextObject, -} = require('ReactFiberContext'); -var ReactFeatureFlags = require('ReactFeatureFlags'); -var ReactTypeOfWork = require('ReactTypeOfWork'); -var ReactTypeOfSideEffect = require('ReactTypeOfSideEffect'); -var ReactFiberExpirationTime = require('ReactFiberExpirationTime'); +} = require('./ReactFiberContext'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); +var ReactTypeOfSideEffect = require('shared/ReactTypeOfSideEffect'); +var ReactFiberExpirationTime = require('./ReactFiberExpirationTime'); var { IndeterminateComponent, FunctionalComponent, diff --git a/packages/react-reconciler/src/ReactFiberContext.js b/packages/react-reconciler/src/ReactFiberContext.js index 8c5bb96526177..4f89ccee85451 100644 --- a/packages/react-reconciler/src/ReactFiberContext.js +++ b/packages/react-reconciler/src/ReactFiberContext.js @@ -4,27 +4,26 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberContext * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {StackCursor} from 'ReactFiberStack'; +import type {Fiber} from './ReactFiber'; +import type {StackCursor} from './ReactFiberStack'; var emptyObject = require('fbjs/lib/emptyObject'); -var getComponentName = require('getComponentName'); +var getComponentName = require('shared/getComponentName'); var invariant = require('fbjs/lib/invariant'); -var {isFiberMounted} = require('ReactFiberTreeReflection'); -var {ClassComponent, HostRoot} = require('ReactTypeOfWork'); -const {createCursor, pop, push} = require('ReactFiberStack'); +var {isFiberMounted} = require('shared/ReactFiberTreeReflection'); +var {ClassComponent, HostRoot} = require('shared/ReactTypeOfWork'); +const {createCursor, pop, push} = require('./ReactFiberStack'); if (__DEV__) { var warning = require('fbjs/lib/warning'); var checkPropTypes = require('prop-types/checkPropTypes'); - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); - var {startPhaseTimer, stopPhaseTimer} = require('ReactDebugFiberPerf'); + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber'); + var {startPhaseTimer, stopPhaseTimer} = require('./ReactDebugFiberPerf'); var warnedAboutMissingGetChildContext = {}; } diff --git a/packages/react-reconciler/src/ReactFiberDevToolsHook.js b/packages/react-reconciler/src/ReactFiberDevToolsHook.js index 79aa19ea82969..eebd2031c6b3a 100644 --- a/packages/react-reconciler/src/ReactFiberDevToolsHook.js +++ b/packages/react-reconciler/src/ReactFiberDevToolsHook.js @@ -4,14 +4,13 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberDevToolsHook * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {FiberRoot} from 'ReactFiberRoot'; +import type {Fiber} from './ReactFiber'; +import type {FiberRoot} from './ReactFiberRoot'; declare var __REACT_DEVTOOLS_GLOBAL_HOOK__: Object | void; diff --git a/packages/react-reconciler/src/ReactFiberErrorLogger.js b/packages/react-reconciler/src/ReactFiberErrorLogger.js index c4aa2abc5e403..cd929552e91ce 100644 --- a/packages/react-reconciler/src/ReactFiberErrorLogger.js +++ b/packages/react-reconciler/src/ReactFiberErrorLogger.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberErrorLogger * @flow */ @@ -12,7 +11,7 @@ const invariant = require('fbjs/lib/invariant'); -import type {CapturedError} from 'ReactFiberScheduler'; +import type {CapturedError} from './ReactFiberScheduler'; const defaultShowDialog = (capturedError: CapturedError) => true; diff --git a/packages/react-reconciler/src/ReactFiberExpirationTime.js b/packages/react-reconciler/src/ReactFiberExpirationTime.js index d79c795b1a9c4..7a4e599f36cb5 100644 --- a/packages/react-reconciler/src/ReactFiberExpirationTime.js +++ b/packages/react-reconciler/src/ReactFiberExpirationTime.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberExpirationTime * @flow */ diff --git a/packages/react-reconciler/src/ReactFiberHostContext.js b/packages/react-reconciler/src/ReactFiberHostContext.js index 0612d8e1b4191..b6858198d9656 100644 --- a/packages/react-reconciler/src/ReactFiberHostContext.js +++ b/packages/react-reconciler/src/ReactFiberHostContext.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberHostContext * @flow */ 'use strict'; import type {HostConfig} from 'react-reconciler'; -import type {Fiber} from 'ReactFiber'; -import type {StackCursor} from 'ReactFiberStack'; +import type {Fiber} from './ReactFiber'; +import type {StackCursor} from './ReactFiberStack'; -const {createCursor, pop, push} = require('ReactFiberStack'); +const {createCursor, pop, push} = require('./ReactFiberStack'); const invariant = require('fbjs/lib/invariant'); diff --git a/packages/react-reconciler/src/ReactFiberHydrationContext.js b/packages/react-reconciler/src/ReactFiberHydrationContext.js index 367f0ad71743c..f37fe514eef6a 100644 --- a/packages/react-reconciler/src/ReactFiberHydrationContext.js +++ b/packages/react-reconciler/src/ReactFiberHydrationContext.js @@ -4,21 +4,20 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberHydrationContext * @flow */ 'use strict'; import type {HostConfig} from 'react-reconciler'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from './ReactFiber'; var invariant = require('fbjs/lib/invariant'); -const {HostComponent, HostText, HostRoot} = require('ReactTypeOfWork'); -const {Deletion, Placement} = require('ReactTypeOfSideEffect'); +const {HostComponent, HostText, HostRoot} = require('shared/ReactTypeOfWork'); +const {Deletion, Placement} = require('shared/ReactTypeOfSideEffect'); -const {createFiberFromHostInstanceForDeletion} = require('ReactFiber'); +const {createFiberFromHostInstanceForDeletion} = require('./ReactFiber'); export type HydrationContext = { enterHydrationState(fiber: Fiber): boolean, diff --git a/packages/react-reconciler/src/ReactFiberInstrumentation.js b/packages/react-reconciler/src/ReactFiberInstrumentation.js index e29cb61357a93..249daa3e45bb4 100644 --- a/packages/react-reconciler/src/ReactFiberInstrumentation.js +++ b/packages/react-reconciler/src/ReactFiberInstrumentation.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberInstrumentation * @flow */ diff --git a/packages/react-reconciler/src/ReactFiberReconciler.js b/packages/react-reconciler/src/ReactFiberReconciler.js index 1310189b0436b..43ed72878b8ab 100644 --- a/packages/react-reconciler/src/ReactFiberReconciler.js +++ b/packages/react-reconciler/src/ReactFiberReconciler.js @@ -9,35 +9,35 @@ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {FiberRoot} from 'ReactFiberRoot'; -import type {ReactNodeList} from 'ReactTypes'; +import type {Fiber} from './ReactFiber'; +import type {FiberRoot} from './ReactFiberRoot'; +import type {ReactNodeList} from 'shared/ReactTypes'; -var ReactFeatureFlags = require('ReactFeatureFlags'); +var ReactFeatureFlags = require('shared/ReactFeatureFlags'); var { findCurrentUnmaskedContext, isContextProvider, processChildContext, -} = require('ReactFiberContext'); -var {createFiberRoot} = require('ReactFiberRoot'); -var ReactFiberScheduler = require('ReactFiberScheduler'); -var ReactInstanceMap = require('ReactInstanceMap'); -var {HostComponent} = require('ReactTypeOfWork'); -var {insertUpdateIntoFiber} = require('ReactFiberUpdateQueue'); +} = require('./ReactFiberContext'); +var {createFiberRoot} = require('./ReactFiberRoot'); +var ReactFiberScheduler = require('./ReactFiberScheduler'); +var ReactInstanceMap = require('shared/ReactInstanceMap'); +var {HostComponent} = require('shared/ReactTypeOfWork'); +var {insertUpdateIntoFiber} = require('./ReactFiberUpdateQueue'); var emptyObject = require('fbjs/lib/emptyObject'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var ReactFiberInstrumentation = require('ReactFiberInstrumentation'); - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); - var getComponentName = require('getComponentName'); + var ReactFiberInstrumentation = require('./ReactFiberInstrumentation'); + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber'); + var getComponentName = require('shared/getComponentName'); var didWarnAboutNestedUpdates = false; } var { findCurrentHostFiber, findCurrentHostFiberWithNoPortals, -} = require('ReactFiberTreeReflection'); +} = require('shared/ReactFiberTreeReflection'); export type Deadline = { timeRemaining: () => number, diff --git a/packages/react-reconciler/src/ReactFiberRoot.js b/packages/react-reconciler/src/ReactFiberRoot.js index 6c6b894a4c993..a8fa67e49b929 100644 --- a/packages/react-reconciler/src/ReactFiberRoot.js +++ b/packages/react-reconciler/src/ReactFiberRoot.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberRoot * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {Fiber} from './ReactFiber'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; -const {createHostRootFiber} = require('ReactFiber'); -const {NoWork} = require('ReactFiberExpirationTime'); +const {createHostRootFiber} = require('./ReactFiber'); +const {NoWork} = require('./ReactFiberExpirationTime'); export type FiberRoot = { // Any additional information from the host associated with this root. diff --git a/packages/react-reconciler/src/ReactFiberScheduler.js b/packages/react-reconciler/src/ReactFiberScheduler.js index da726ef51ee8c..6b0b9c577e965 100644 --- a/packages/react-reconciler/src/ReactFiberScheduler.js +++ b/packages/react-reconciler/src/ReactFiberScheduler.js @@ -4,17 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberScheduler * @flow */ 'use strict'; import type {HostConfig, Deadline} from 'react-reconciler'; -import type {Fiber} from 'ReactFiber'; -import type {FiberRoot} from 'ReactFiberRoot'; -import type {HydrationContext} from 'ReactFiberHydrationContext'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {Fiber} from './ReactFiber'; +import type {FiberRoot} from './ReactFiberRoot'; +import type {HydrationContext} from './ReactFiberHydrationContext'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; export type CapturedError = { componentName: ?string, @@ -30,28 +29,28 @@ export type HandleErrorInfo = { componentStack: string, }; -var {popContextProvider} = require('ReactFiberContext'); -const {reset} = require('ReactFiberStack'); +var {popContextProvider} = require('./ReactFiberContext'); +const {reset} = require('./ReactFiberStack'); var { getStackAddendumByWorkInProgressFiber, -} = require('ReactFiberComponentTreeHook'); -var {logCapturedError} = require('ReactFiberErrorLogger'); +} = require('shared/ReactFiberComponentTreeHook'); +var {logCapturedError} = require('./ReactFiberErrorLogger'); var { invokeGuardedCallback, hasCaughtError, clearCaughtError, -} = require('ReactErrorUtils'); +} = require('shared/ReactErrorUtils'); -var ReactFiberBeginWork = require('ReactFiberBeginWork'); -var ReactFiberCompleteWork = require('ReactFiberCompleteWork'); -var ReactFiberCommitWork = require('ReactFiberCommitWork'); -var ReactFiberHostContext = require('ReactFiberHostContext'); -var ReactFiberHydrationContext = require('ReactFiberHydrationContext'); -var {ReactCurrentOwner} = require('ReactGlobalSharedState'); -var getComponentName = require('getComponentName'); +var ReactFiberBeginWork = require('./ReactFiberBeginWork'); +var ReactFiberCompleteWork = require('./ReactFiberCompleteWork'); +var ReactFiberCommitWork = require('./ReactFiberCommitWork'); +var ReactFiberHostContext = require('./ReactFiberHostContext'); +var ReactFiberHydrationContext = require('./ReactFiberHydrationContext'); +var {ReactCurrentOwner} = require('shared/ReactGlobalSharedState'); +var getComponentName = require('shared/getComponentName'); -var {createWorkInProgress} = require('ReactFiber'); -var {onCommitRoot} = require('ReactFiberDevToolsHook'); +var {createWorkInProgress} = require('./ReactFiber'); +var {onCommitRoot} = require('./ReactFiberDevToolsHook'); var { NoWork, @@ -60,9 +59,9 @@ var { Never, msToExpirationTime, computeExpirationBucket, -} = require('ReactFiberExpirationTime'); +} = require('./ReactFiberExpirationTime'); -var {AsyncUpdates} = require('ReactTypeOfInternalContext'); +var {AsyncUpdates} = require('./ReactTypeOfInternalContext'); var { PerformedWork, @@ -74,25 +73,25 @@ var { Callback, Err, Ref, -} = require('ReactTypeOfSideEffect'); +} = require('shared/ReactTypeOfSideEffect'); var { HostRoot, HostComponent, HostPortal, ClassComponent, -} = require('ReactTypeOfWork'); +} = require('shared/ReactTypeOfWork'); -var {getUpdateExpirationTime} = require('ReactFiberUpdateQueue'); +var {getUpdateExpirationTime} = require('./ReactFiberUpdateQueue'); -var {resetContext} = require('ReactFiberContext'); +var {resetContext} = require('./ReactFiberContext'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var ReactFiberInstrumentation = require('ReactFiberInstrumentation'); - var ReactDebugCurrentFiber = require('ReactDebugCurrentFiber'); + var ReactFiberInstrumentation = require('./ReactFiberInstrumentation'); + var ReactDebugCurrentFiber = require('./ReactDebugCurrentFiber'); var { recordEffect, recordScheduleUpdate, @@ -107,7 +106,7 @@ if (__DEV__) { stopCommitHostEffectsTimer, startCommitLifeCyclesTimer, stopCommitLifeCyclesTimer, - } = require('ReactDebugFiberPerf'); + } = require('./ReactDebugFiberPerf'); var didWarnAboutStateTransition = false; diff --git a/packages/react-reconciler/src/ReactFiberStack.js b/packages/react-reconciler/src/ReactFiberStack.js index c5d5cd8ed3976..d77a2254aab6c 100644 --- a/packages/react-reconciler/src/ReactFiberStack.js +++ b/packages/react-reconciler/src/ReactFiberStack.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberStack * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from './ReactFiber'; export type StackCursor = { current: T, diff --git a/packages/react-reconciler/src/ReactFiberUpdateQueue.js b/packages/react-reconciler/src/ReactFiberUpdateQueue.js index 2a6cd6cf495ef..634f09727e1f5 100644 --- a/packages/react-reconciler/src/ReactFiberUpdateQueue.js +++ b/packages/react-reconciler/src/ReactFiberUpdateQueue.js @@ -4,20 +4,19 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberUpdateQueue * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; -import type {ExpirationTime} from 'ReactFiberExpirationTime'; +import type {Fiber} from './ReactFiber'; +import type {ExpirationTime} from './ReactFiberExpirationTime'; -const {Callback: CallbackEffect} = require('ReactTypeOfSideEffect'); +const {Callback: CallbackEffect} = require('shared/ReactTypeOfSideEffect'); -const {NoWork} = require('ReactFiberExpirationTime'); +const {NoWork} = require('./ReactFiberExpirationTime'); -const {ClassComponent, HostRoot} = require('ReactTypeOfWork'); +const {ClassComponent, HostRoot} = require('shared/ReactTypeOfWork'); const invariant = require('fbjs/lib/invariant'); diff --git a/packages/react-reconciler/src/ReactPortal.js b/packages/react-reconciler/src/ReactPortal.js index 478b96415911e..08dfb66ab04c1 100644 --- a/packages/react-reconciler/src/ReactPortal.js +++ b/packages/react-reconciler/src/ReactPortal.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactPortal * @flow */ 'use strict'; -import type {ReactNodeList, ReactPortal} from 'ReactTypes'; +import type {ReactNodeList, ReactPortal} from 'shared/ReactTypes'; // The Symbol used to tag the special React types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. diff --git a/packages/react-reconciler/src/ReactTypeOfInternalContext.js b/packages/react-reconciler/src/ReactTypeOfInternalContext.js index d58b92c8a32e1..c1778eb9e25e7 100644 --- a/packages/react-reconciler/src/ReactTypeOfInternalContext.js +++ b/packages/react-reconciler/src/ReactTypeOfInternalContext.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactTypeOfInternalContext * @flow */ diff --git a/packages/react-reconciler/src/__tests__/ReactCoroutine-test.js b/packages/react-reconciler/src/__tests__/ReactCoroutine-test.js index 310db4813f8d9..fde4ded1f0727 100644 --- a/packages/react-reconciler/src/__tests__/ReactCoroutine-test.js +++ b/packages/react-reconciler/src/__tests__/ReactCoroutine-test.js @@ -19,7 +19,8 @@ describe('ReactCoroutine', () => { React = require('react'); ReactNoop = require('react-noop-renderer'); // TODO: can we express this test with only public API? - ReactCoroutine = require('ReactCoroutine'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + ReactCoroutine = require('react-reconciler/src/ReactCoroutine'); }); function div(...children) { diff --git a/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.js b/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.js index ef0766195291c..250575debd0a4 100644 --- a/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.js +++ b/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.js @@ -935,9 +935,11 @@ describe('ReactIncrementalErrorHandling', () => { function initReactFiberErrorLoggerMock(mock) { jest.resetModules(); if (mock) { - jest.mock('ReactFiberErrorLogger'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + jest.mock('react-reconciler/src/ReactFiberErrorLogger'); } else { - jest.unmock('ReactFiberErrorLogger'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + jest.unmock('react-reconciler/src/ReactFiberErrorLogger'); } React = require('react'); ReactNoop = require('react-noop-renderer'); @@ -1033,7 +1035,8 @@ describe('ReactIncrementalErrorHandling', () => { const logCapturedErrorCalls = []; - const ReactFiberErrorLogger = require('ReactFiberErrorLogger'); + // TODO: direct imports like some-package/src/* are bad. Fix me. + const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger'); ReactFiberErrorLogger.logCapturedError.mockImplementation( capturedError => { logCapturedErrorCalls.push(capturedError); diff --git a/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.js b/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.js index c3e7668964357..ac751b7ed4cd9 100644 --- a/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.js +++ b/packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.js @@ -116,8 +116,8 @@ describe('ReactDebugFiberPerf', () => { React = require('react'); ReactNoop = require('react-noop-renderer'); // TODO: can we express this test with only public API? - ReactCoroutine = require('ReactCoroutine'); - ReactPortal = require('ReactPortal'); + ReactCoroutine = require('react-reconciler/src/ReactCoroutine'); + ReactPortal = require('react-reconciler/src/ReactPortal'); PropTypes = require('prop-types'); }); diff --git a/packages/react-reconciler/src/__tests__/ReactPersistent-test.js b/packages/react-reconciler/src/__tests__/ReactPersistent-test.js index 023050b519779..163c0bc9378e3 100644 --- a/packages/react-reconciler/src/__tests__/ReactPersistent-test.js +++ b/packages/react-reconciler/src/__tests__/ReactPersistent-test.js @@ -17,14 +17,14 @@ describe('ReactPersistent', () => { beforeEach(() => { jest.resetModules(); - const ReactFeatureFlags = require('ReactFeatureFlags'); + const ReactFeatureFlags = require('shared/ReactFeatureFlags'); ReactFeatureFlags.enableMutableReconciler = false; ReactFeatureFlags.enablePersistentReconciler = true; ReactFeatureFlags.enableNoopReconciler = false; React = require('react'); ReactNoop = require('react-noop-renderer'); - ReactPortal = require('ReactPortal'); + ReactPortal = require('react-reconciler/src/ReactPortal'); }); const DEFAULT_ROOT_ID = 'persistent-test'; diff --git a/packages/react-rt-renderer/package.json b/packages/react-rt-renderer/package.json index 3e531207757fc..f9fabeabe91a6 100644 --- a/packages/react-rt-renderer/package.json +++ b/packages/react-rt-renderer/package.json @@ -5,6 +5,10 @@ "repository": "facebook/react", "dependencies": { "fbjs": "^0.8.16", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16.0.0" } } diff --git a/packages/react-rt-renderer/src/ReactNativeRT.js b/packages/react-rt-renderer/src/ReactNativeRT.js index 4b4608731fd67..7d1fc677294c1 100644 --- a/packages/react-rt-renderer/src/ReactNativeRT.js +++ b/packages/react-rt-renderer/src/ReactNativeRT.js @@ -4,25 +4,27 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTFiberEntry * @flow */ 'use strict'; -const ReactFiberErrorLogger = require('ReactFiberErrorLogger'); -const ReactGenericBatching = require('ReactGenericBatching'); -const ReactNativeFiberErrorDialog = require('ReactNativeFiberErrorDialog'); // Reused from RN, seems fine? -const ReactPortal = require('ReactPortal'); -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree'); -const ReactNativeRTFiberRenderer = require('ReactNativeRTFiberRenderer'); -const ReactNativeRTFiberInspector = require('ReactNativeRTFiberInspector'); -const ReactVersion = require('ReactVersion'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +const ReactFiberErrorLogger = require('react-reconciler/src/ReactFiberErrorLogger'); +const ReactNativeFiberErrorDialog = require('react-native-renderer/src/ReactNativeFiberErrorDialog'); +const ReactPortal = require('react-reconciler/src/ReactPortal'); +const { + injectInternals, +} = require('react-reconciler/src/ReactFiberDevToolsHook'); -const {injectInternals} = require('ReactFiberDevToolsHook'); +const ReactGenericBatching = require('events/ReactGenericBatching'); +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree'); +const ReactNativeRTFiberRenderer = require('./ReactNativeRTFiberRenderer'); +const ReactNativeRTFiberInspector = require('./ReactNativeRTFiberInspector'); +const ReactVersion = require('shared/ReactVersion'); -import type {ReactNativeRTType} from 'ReactNativeRTTypes'; -import type {ReactNodeList} from 'ReactTypes'; +import type {ReactNativeRTType} from './ReactNativeRTTypes'; +import type {ReactNodeList} from 'shared/ReactTypes'; /** * Make sure essential globals are available and are patched correctly. Please don't remove this @@ -32,7 +34,7 @@ import type {ReactNodeList} from 'ReactTypes'; */ require('InitializeCore'); -require('ReactNativeRTEventEmitter'); +require('./ReactNativeRTEventEmitter'); ReactGenericBatching.injection.injectFiberBatchedUpdates( ReactNativeRTFiberRenderer.batchedUpdates, diff --git a/packages/react-rt-renderer/src/ReactNativeRTComponentTree.js b/packages/react-rt-renderer/src/ReactNativeRTComponentTree.js index bd212575e9045..d6b2334f9431b 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTComponentTree.js +++ b/packages/react-rt-renderer/src/ReactNativeRTComponentTree.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTComponentTree * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; var instanceCache: {[key: number]: Fiber} = {}; var instanceProps: {[key: number]: Object} = {}; diff --git a/packages/react-rt-renderer/src/ReactNativeRTEventEmitter.js b/packages/react-rt-renderer/src/ReactNativeRTEventEmitter.js index a6855678dc4b0..3947414ee58b1 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTEventEmitter.js +++ b/packages/react-rt-renderer/src/ReactNativeRTEventEmitter.js @@ -4,13 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTEventEmitter * @flow */ 'use strict'; -var ReactNativeRTComponentTree = require('ReactNativeRTComponentTree'); -var ReactGenericBatching = require('ReactGenericBatching'); +var ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree'); +var ReactGenericBatching = require('events/ReactGenericBatching'); + +// Module provided by RN: var BatchedBridge = require('BatchedBridge'); var ReactNativeRTEventEmitter = { diff --git a/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js b/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js index e5f9baeafe64f..05952f8767ff6 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js +++ b/packages/react-rt-renderer/src/ReactNativeRTFiberInspector.js @@ -4,16 +4,15 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTFiberInspector * @flow */ 'use strict'; -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree'); -const ReactFiberTreeReflection = require('ReactFiberTreeReflection'); -const getComponentName = require('getComponentName'); +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree'); +const ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection'); +const getComponentName = require('shared/getComponentName'); const emptyObject = require('fbjs/lib/emptyObject'); -const ReactTypeOfWork = require('ReactTypeOfWork'); +const ReactTypeOfWork = require('shared/ReactTypeOfWork'); const invariant = require('fbjs/lib/invariant'); const {getFiberFromTag} = ReactNativeRTComponentTree; diff --git a/packages/react-rt-renderer/src/ReactNativeRTFiberRenderer.js b/packages/react-rt-renderer/src/ReactNativeRTFiberRenderer.js index fe90da2d4afa4..29e03213ebf13 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTFiberRenderer.js +++ b/packages/react-rt-renderer/src/ReactNativeRTFiberRenderer.js @@ -4,15 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTFiberRenderer * @flow */ 'use strict'; const ReactFiberReconciler = require('react-reconciler'); -const ReactNativeRTComponentTree = require('ReactNativeRTComponentTree'); -const ReactNativeRTTagHandles = require('ReactNativeRTTagHandles'); +const ReactNativeRTComponentTree = require('./ReactNativeRTComponentTree'); +const ReactNativeRTTagHandles = require('./ReactNativeRTTagHandles'); + +// Module provided by RN: const RTManager = require('RTManager'); const emptyObject = require('fbjs/lib/emptyObject'); diff --git a/packages/react-rt-renderer/src/ReactNativeRTTagHandles.js b/packages/react-rt-renderer/src/ReactNativeRTTagHandles.js index 6f09dff04e50f..1796320806bee 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTTagHandles.js +++ b/packages/react-rt-renderer/src/ReactNativeRTTagHandles.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTTagHandles * @flow */ 'use strict'; diff --git a/packages/react-rt-renderer/src/ReactNativeRTTypes.js b/packages/react-rt-renderer/src/ReactNativeRTTypes.js index df7cb8e7d3899..fe542e1a24b53 100644 --- a/packages/react-rt-renderer/src/ReactNativeRTTypes.js +++ b/packages/react-rt-renderer/src/ReactNativeRTTypes.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactNativeRTTypes * @flow */ 'use strict'; diff --git a/packages/react-test-renderer/src/ReactShallowRenderer.js b/packages/react-test-renderer/src/ReactShallowRenderer.js index 866619997c46a..9ac35d2bc580c 100644 --- a/packages/react-test-renderer/src/ReactShallowRenderer.js +++ b/packages/react-test-renderer/src/ReactShallowRenderer.js @@ -14,8 +14,8 @@ const React = require('react'); const emptyObject = require('fbjs/lib/emptyObject'); const invariant = require('fbjs/lib/invariant'); -const describeComponentFrame = require('describeComponentFrame'); -const getComponentName = require('getComponentName'); +const describeComponentFrame = require('shared/describeComponentFrame'); +const getComponentName = require('shared/getComponentName'); class ReactShallowRenderer { static createRenderer = function() { diff --git a/packages/react-test-renderer/src/ReactTestRenderer.js b/packages/react-test-renderer/src/ReactTestRenderer.js index be6267c898f32..88f898c84f304 100644 --- a/packages/react-test-renderer/src/ReactTestRenderer.js +++ b/packages/react-test-renderer/src/ReactTestRenderer.js @@ -10,10 +10,10 @@ 'use strict'; var ReactFiberReconciler = require('react-reconciler'); -var ReactFiberTreeReflection = require('ReactFiberTreeReflection'); -var ReactGenericBatching = require('ReactGenericBatching'); +var ReactFiberTreeReflection = require('shared/ReactFiberTreeReflection'); +var ReactGenericBatching = require('events/ReactGenericBatching'); var emptyObject = require('fbjs/lib/emptyObject'); -var ReactTypeOfWork = require('ReactTypeOfWork'); +var ReactTypeOfWork = require('shared/ReactTypeOfWork'); var invariant = require('fbjs/lib/invariant'); var { Fragment, @@ -24,8 +24,8 @@ var { HostRoot, } = ReactTypeOfWork; -import type {Fiber} from 'ReactFiber'; -import type {FiberRoot} from 'ReactFiberRoot'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; +import type {FiberRoot} from 'react-reconciler/src/ReactFiberRoot'; type TestRendererOptions = { createNodeMock: (element: React$Element) => any, diff --git a/packages/react/src/React.js b/packages/react/src/React.js index d67fdd8540e04..812e5d9ea9b16 100644 --- a/packages/react/src/React.js +++ b/packages/react/src/React.js @@ -7,19 +7,19 @@ 'use strict'; -var ReactBaseClasses = require('ReactBaseClasses'); -var ReactChildren = require('ReactChildren'); -var ReactElement = require('ReactElement'); -var ReactVersion = require('ReactVersion'); +var ReactBaseClasses = require('./ReactBaseClasses'); +var ReactChildren = require('./ReactChildren'); +var ReactElement = require('./ReactElement'); +var ReactVersion = require('shared/ReactVersion'); -var onlyChild = require('onlyChild'); +var onlyChild = require('./onlyChild'); var createElement = ReactElement.createElement; var createFactory = ReactElement.createFactory; var cloneElement = ReactElement.cloneElement; if (__DEV__) { - var ReactElementValidator = require('ReactElementValidator'); + var ReactElementValidator = require('./ReactElementValidator'); createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; cloneElement = ReactElementValidator.cloneElement; @@ -47,7 +47,7 @@ var React = { version: ReactVersion, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { - ReactCurrentOwner: require('ReactCurrentOwner'), + ReactCurrentOwner: require('./ReactCurrentOwner'), // Used by renderers to avoid bundling object-assign twice in UMD bundles: assign: require('object-assign'), }, @@ -56,7 +56,7 @@ var React = { if (__DEV__) { Object.assign(React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, { // These should not be included in production. - ReactDebugCurrentFrame: require('ReactDebugCurrentFrame'), + ReactDebugCurrentFrame: require('./ReactDebugCurrentFrame'), }); } diff --git a/packages/react/src/ReactBaseClasses.js b/packages/react/src/ReactBaseClasses.js index 5c7c082125162..50a47759f80b1 100644 --- a/packages/react/src/ReactBaseClasses.js +++ b/packages/react/src/ReactBaseClasses.js @@ -3,17 +3,15 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactBaseClasses */ 'use strict'; -var ReactNoopUpdateQueue = require('ReactNoopUpdateQueue'); +var ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue'); var emptyObject = require('fbjs/lib/emptyObject'); var invariant = require('fbjs/lib/invariant'); -var lowPriorityWarning = require('lowPriorityWarning'); +var lowPriorityWarning = require('shared/lowPriorityWarning'); /** * Base class helpers for the updating state of a component. diff --git a/packages/react/src/ReactChildren.js b/packages/react/src/ReactChildren.js index 3d4d3e19e75f7..4b2fd1cba7631 100644 --- a/packages/react/src/ReactChildren.js +++ b/packages/react/src/ReactChildren.js @@ -3,20 +3,18 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactChildren */ 'use strict'; -var ReactElement = require('ReactElement'); +var ReactElement = require('./ReactElement'); var emptyFunction = require('fbjs/lib/emptyFunction'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { var warning = require('fbjs/lib/warning'); - var {getStackAddendum} = require('ReactDebugCurrentFrame'); + var {getStackAddendum} = require('./ReactDebugCurrentFrame'); } var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; diff --git a/packages/react/src/ReactCurrentOwner.js b/packages/react/src/ReactCurrentOwner.js index 720de0acc4806..c0eb29541ea2c 100644 --- a/packages/react/src/ReactCurrentOwner.js +++ b/packages/react/src/ReactCurrentOwner.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactCurrentOwner * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; /** * Keeps track of the current owner. diff --git a/packages/react/src/ReactDebugCurrentFrame.js b/packages/react/src/ReactDebugCurrentFrame.js index e92990a41c1e1..2caed6274bda0 100644 --- a/packages/react/src/ReactDebugCurrentFrame.js +++ b/packages/react/src/ReactDebugCurrentFrame.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDebugCurrentFrame * @flow */ diff --git a/packages/react/src/ReactElement.js b/packages/react/src/ReactElement.js index f1d20fdf08ff0..d3b73b9014ff1 100644 --- a/packages/react/src/ReactElement.js +++ b/packages/react/src/ReactElement.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactElement */ 'use strict'; -var ReactCurrentOwner = require('ReactCurrentOwner'); +var ReactCurrentOwner = require('./ReactCurrentOwner'); var hasOwnProperty = Object.prototype.hasOwnProperty; if (__DEV__) { diff --git a/packages/react/src/ReactElementValidator.js b/packages/react/src/ReactElementValidator.js index 2c0a2271a10bf..bc43037ce2299 100644 --- a/packages/react/src/ReactElementValidator.js +++ b/packages/react/src/ReactElementValidator.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactElementValidator */ /** @@ -16,16 +14,16 @@ 'use strict'; -var ReactCurrentOwner = require('ReactCurrentOwner'); -var ReactElement = require('ReactElement'); +var ReactCurrentOwner = require('./ReactCurrentOwner'); +var ReactElement = require('./ReactElement'); if (__DEV__) { + var ReactDebugCurrentFrame = require('./ReactDebugCurrentFrame'); var checkPropTypes = require('prop-types/checkPropTypes'); - var lowPriorityWarning = require('lowPriorityWarning'); - var ReactDebugCurrentFrame = require('ReactDebugCurrentFrame'); + var lowPriorityWarning = require('shared/lowPriorityWarning'); var warning = require('fbjs/lib/warning'); - var describeComponentFrame = require('describeComponentFrame'); - var getComponentName = require('getComponentName'); + var describeComponentFrame = require('shared/describeComponentFrame'); + var getComponentName = require('shared/getComponentName'); var currentlyValidatingElement = null; diff --git a/packages/react/src/ReactNoopUpdateQueue.js b/packages/react/src/ReactNoopUpdateQueue.js index 5c18b85ea8bcb..5b0631dd08617 100644 --- a/packages/react/src/ReactNoopUpdateQueue.js +++ b/packages/react/src/ReactNoopUpdateQueue.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactNoopUpdateQueue */ 'use strict'; diff --git a/packages/react/src/onlyChild.js b/packages/react/src/onlyChild.js index 590825c4a7494..e52a478a8f8dd 100644 --- a/packages/react/src/onlyChild.js +++ b/packages/react/src/onlyChild.js @@ -3,12 +3,10 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule onlyChild */ 'use strict'; -var ReactElement = require('ReactElement'); +var ReactElement = require('./ReactElement'); var invariant = require('fbjs/lib/invariant'); diff --git a/packages/shared/ReactDOMFrameScheduling.js b/packages/shared/ReactDOMFrameScheduling.js index a4c9ae0af88d4..0d433d1bb4328 100644 --- a/packages/shared/ReactDOMFrameScheduling.js +++ b/packages/shared/ReactDOMFrameScheduling.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactDOMFrameScheduling * @flow */ diff --git a/packages/shared/ReactErrorUtils.js b/packages/shared/ReactErrorUtils.js index 35bed7e28863a..6b509382f9b5d 100644 --- a/packages/shared/ReactErrorUtils.js +++ b/packages/shared/ReactErrorUtils.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactErrorUtils * @flow */ diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 6291d1054abc2..fae5bce66ad24 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFeatureFlags * @flow */ diff --git a/packages/shared/ReactFiberComponentTreeHook.js b/packages/shared/ReactFiberComponentTreeHook.js index ced52082590d7..f32da7e672afa 100644 --- a/packages/shared/ReactFiberComponentTreeHook.js +++ b/packages/shared/ReactFiberComponentTreeHook.js @@ -10,17 +10,17 @@ 'use strict'; -var ReactTypeOfWork = require('ReactTypeOfWork'); +var ReactTypeOfWork = require('./ReactTypeOfWork'); var { IndeterminateComponent, FunctionalComponent, ClassComponent, HostComponent, } = ReactTypeOfWork; -var describeComponentFrame = require('describeComponentFrame'); -var getComponentName = require('getComponentName'); +var describeComponentFrame = require('./describeComponentFrame'); +var getComponentName = require('./getComponentName'); -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; function describeFiber(fiber: Fiber): string { switch (fiber.tag) { diff --git a/packages/shared/ReactFiberTreeReflection.js b/packages/shared/ReactFiberTreeReflection.js index 2ee9626866d53..15ba7c3fb69ff 100644 --- a/packages/shared/ReactFiberTreeReflection.js +++ b/packages/shared/ReactFiberTreeReflection.js @@ -4,18 +4,17 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactFiberTreeReflection * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; -var ReactInstanceMap = require('ReactInstanceMap'); -var {ReactCurrentOwner} = require('ReactGlobalSharedState'); +var ReactInstanceMap = require('./ReactInstanceMap'); +var {ReactCurrentOwner} = require('./ReactGlobalSharedState'); -var getComponentName = require('getComponentName'); +var getComponentName = require('./getComponentName'); var invariant = require('fbjs/lib/invariant'); if (__DEV__) { @@ -28,9 +27,9 @@ var { HostRoot, HostPortal, HostText, -} = require('ReactTypeOfWork'); +} = require('./ReactTypeOfWork'); -var {NoEffect, Placement} = require('ReactTypeOfSideEffect'); +var {NoEffect, Placement} = require('./ReactTypeOfSideEffect'); var MOUNTING = 1; var MOUNTED = 2; diff --git a/packages/shared/ReactGlobalSharedState.js b/packages/shared/ReactGlobalSharedState.js index 3f922adf0921c..6aeeb166dca6f 100644 --- a/packages/shared/ReactGlobalSharedState.js +++ b/packages/shared/ReactGlobalSharedState.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactGlobalSharedState */ 'use strict'; diff --git a/packages/shared/ReactInstanceMap.js b/packages/shared/ReactInstanceMap.js index b7bf144542b9f..5c52920952b41 100644 --- a/packages/shared/ReactInstanceMap.js +++ b/packages/shared/ReactInstanceMap.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactInstanceMap */ 'use strict'; diff --git a/packages/shared/ReactTreeTraversal.js b/packages/shared/ReactTreeTraversal.js index a926440d734f1..820ba4f14d6ec 100644 --- a/packages/shared/ReactTreeTraversal.js +++ b/packages/shared/ReactTreeTraversal.js @@ -3,13 +3,11 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactTreeTraversal */ 'use strict'; -var {HostComponent} = require('ReactTypeOfWork'); +var {HostComponent} = require('./ReactTypeOfWork'); function getParent(inst) { do { diff --git a/packages/shared/ReactTypeOfSideEffect.js b/packages/shared/ReactTypeOfSideEffect.js index 1ba7242238651..fe00adf38953a 100644 --- a/packages/shared/ReactTypeOfSideEffect.js +++ b/packages/shared/ReactTypeOfSideEffect.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactTypeOfSideEffect * @flow */ diff --git a/packages/shared/ReactTypeOfWork.js b/packages/shared/ReactTypeOfWork.js index a5a4fdfd0b997..b5c844bae37df 100644 --- a/packages/shared/ReactTypeOfWork.js +++ b/packages/shared/ReactTypeOfWork.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactTypeOfWork * @flow */ diff --git a/packages/react-reconciler/src/ReactTypes.js b/packages/shared/ReactTypes.js similarity index 97% rename from packages/react-reconciler/src/ReactTypes.js rename to packages/shared/ReactTypes.js index 736d1210e1f5c..5953ba948e2b5 100644 --- a/packages/react-reconciler/src/ReactTypes.js +++ b/packages/shared/ReactTypes.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule ReactTypes * @flow */ diff --git a/packages/shared/ReactVersion.js b/packages/shared/ReactVersion.js index b97367c4f8165..0b999eaef2a19 100644 --- a/packages/shared/ReactVersion.js +++ b/packages/shared/ReactVersion.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule ReactVersion */ 'use strict'; diff --git a/packages/shared/__tests__/ReactErrorUtils-test.js b/packages/shared/__tests__/ReactErrorUtils-test.js index 1fd7c04d00450..dca4cef43a100 100644 --- a/packages/shared/__tests__/ReactErrorUtils-test.js +++ b/packages/shared/__tests__/ReactErrorUtils-test.js @@ -14,7 +14,7 @@ var ReactErrorUtils; describe('ReactErrorUtils', () => { beforeEach(() => { // TODO: can we express this test with only public API? - ReactErrorUtils = require('ReactErrorUtils'); + ReactErrorUtils = require('shared/ReactErrorUtils'); }); // Run tests in both DEV and production @@ -36,7 +36,7 @@ describe('ReactErrorUtils', () => { }; jest.resetModules(); - ReactErrorUtils = require('ReactErrorUtils'); + ReactErrorUtils = require('shared/ReactErrorUtils'); }); afterEach(() => { @@ -161,9 +161,9 @@ describe('ReactErrorUtils', () => { }); it('handles nested errors in separate renderers', () => { - const ReactErrorUtils1 = require('ReactErrorUtils'); + const ReactErrorUtils1 = require('shared/ReactErrorUtils'); jest.resetModules(); - const ReactErrorUtils2 = require('ReactErrorUtils'); + const ReactErrorUtils2 = require('shared/ReactErrorUtils'); expect(ReactErrorUtils1).not.toEqual(ReactErrorUtils2); let ops = []; diff --git a/packages/shared/__tests__/reactProdInvariant-test.js b/packages/shared/__tests__/reactProdInvariant-test.js index a406a796c6726..7cd2e88a78636 100644 --- a/packages/shared/__tests__/reactProdInvariant-test.js +++ b/packages/shared/__tests__/reactProdInvariant-test.js @@ -13,7 +13,7 @@ var reactProdInvariant; describe('reactProdInvariant', () => { beforeEach(() => { jest.resetModules(); - reactProdInvariant = require('reactProdInvariant'); + reactProdInvariant = require('shared/reactProdInvariant'); }); it('should throw with the correct number of `%s`s in the URL', () => { diff --git a/packages/shared/getComponentName.js b/packages/shared/getComponentName.js index 5a3b00ec29f90..d7ebb930018ab 100644 --- a/packages/shared/getComponentName.js +++ b/packages/shared/getComponentName.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule getComponentName * @flow */ 'use strict'; -import type {Fiber} from 'ReactFiber'; +import type {Fiber} from 'react-reconciler/src/ReactFiber'; function getComponentName(fiber: Fiber): string | null { const {type} = fiber; diff --git a/packages/shared/isTextInputElement.js b/packages/shared/isTextInputElement.js index 1c5c3fd7a74b4..76b3a6b44457d 100644 --- a/packages/shared/isTextInputElement.js +++ b/packages/shared/isTextInputElement.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule isTextInputElement * @flow */ diff --git a/packages/shared/lowPriorityWarning.js b/packages/shared/lowPriorityWarning.js index 93546cc07fb6c..524e16b1cab9f 100644 --- a/packages/shared/lowPriorityWarning.js +++ b/packages/shared/lowPriorityWarning.js @@ -3,8 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @providesModule lowPriorityWarning */ 'use strict'; diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000000000..3398f229c586c --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,5 @@ +{ + "private": true, + "name": "shared", + "version": "0.0.0" +} diff --git a/packages/shared/reactProdInvariant.js b/packages/shared/reactProdInvariant.js index f47681754598d..22e84e7a43bfb 100644 --- a/packages/shared/reactProdInvariant.js +++ b/packages/shared/reactProdInvariant.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule reactProdInvariant * @flow */ 'use strict'; diff --git a/packages/shared/validateCallback.js b/packages/shared/validateCallback.js index fe370ce348111..236e77c45d1f3 100644 --- a/packages/shared/validateCallback.js +++ b/packages/shared/validateCallback.js @@ -4,7 +4,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @providesModule validateCallback * @flow */ diff --git a/scripts/circleci/build.sh b/scripts/circleci/build.sh index edd97f88925f8..a52233685bd8b 100755 --- a/scripts/circleci/build.sh +++ b/scripts/circleci/build.sh @@ -1,8 +1,8 @@ #!/bin/bash set -e - -npm run build -- --extract-errors + +yarn build --extract-errors git checkout -- scripts/error-codes/codes.json # Check that the standalone reconciler isn't borked diff --git a/scripts/error-codes/__tests__/dev-expression-with-codes-test.js b/scripts/error-codes/__tests__/dev-expression-with-codes-test.js index 1053328a6e6b9..958e32aa85d6c 100644 --- a/scripts/error-codes/__tests__/dev-expression-with-codes-test.js +++ b/scripts/error-codes/__tests__/dev-expression-with-codes-test.js @@ -36,7 +36,7 @@ describe('dev-expression', () => { it("should add `reactProdInvariant` when it finds `require('invariant')`", () => { compare( "var invariant = require('invariant');", - `var _prodInvariant = require('reactProdInvariant'); + `var _prodInvariant = require('shared/reactProdInvariant'); var invariant = require('invariant');` ); @@ -45,7 +45,7 @@ var invariant = require('invariant');` it('should replace simple invariant calls', () => { compare( "invariant(condition, 'Do not override existing functions.');", - "var _prodInvariant = require('reactProdInvariant');\n\n" + + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" + '!condition ? ' + '__DEV__ ? ' + "invariant(false, 'Do not override existing functions.') : " + @@ -64,7 +64,7 @@ var invariant = require('invariant');` `var invariant = require('invariant'); invariant(condition, 'Do not override existing functions.'); invariant(condition, 'Do not override existing functions.');`, - `var _prodInvariant = require('reactProdInvariant'); + `var _prodInvariant = require('shared/reactProdInvariant'); var invariant = require('invariant'); ${expectedInvariantTransformResult} @@ -75,7 +75,7 @@ ${expectedInvariantTransformResult}` it('should support invariant calls with args', () => { compare( "invariant(condition, 'Expected %s target to be an array; got %s', 'foo', 'bar');", - "var _prodInvariant = require('reactProdInvariant');\n\n" + + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" + '!condition ? ' + '__DEV__ ? ' + "invariant(false, 'Expected %s target to be an array; got %s', 'foo', 'bar') : " + @@ -86,7 +86,7 @@ ${expectedInvariantTransformResult}` it('should support invariant calls with a concatenated template string and args', () => { compare( "invariant(condition, 'Expected a component class, ' + 'got %s.' + '%s', 'Foo', 'Bar');", - "var _prodInvariant = require('reactProdInvariant');\n\n" + + "var _prodInvariant = require('shared/reactProdInvariant');\n\n" + '!condition ? ' + '__DEV__ ? ' + "invariant(false, 'Expected a component class, got %s.%s', 'Foo', 'Bar') : " + diff --git a/scripts/error-codes/extract-errors.js b/scripts/error-codes/extract-errors.js index cbf32790ddcbc..fcf72e2285762 100644 --- a/scripts/error-codes/extract-errors.js +++ b/scripts/error-codes/extract-errors.js @@ -95,9 +95,7 @@ module.exports = function(opts) { ); } - return function extractErrors(filepath) { - const source = fs.readFileSync(filepath, 'utf-8'); - + return function extractErrors(source) { transform(source); flush(); }; diff --git a/scripts/error-codes/replace-invariant-error-codes.js b/scripts/error-codes/replace-invariant-error-codes.js index 5ea6fa24aacfe..2bcb5c4c47ba2 100644 --- a/scripts/error-codes/replace-invariant-error-codes.js +++ b/scripts/error-codes/replace-invariant-error-codes.js @@ -6,12 +6,10 @@ */ 'use strict'; +var fs = require('fs'); var evalToString = require('../shared/evalToString'); -var existingErrorMap = require('./codes.json'); var invertObject = require('./invertObject'); -var errorMap = invertObject(existingErrorMap); - module.exports = function(babel) { var t = babel.types; @@ -26,7 +24,7 @@ module.exports = function(babel) { path.scope.getProgramParent().push({ id: localState.prodInvariantIdentifier, init: t.callExpression(t.identifier('require'), [ - t.stringLiteral('reactProdInvariant'), + t.stringLiteral('shared/reactProdInvariant'), ]), }); } @@ -101,6 +99,12 @@ module.exports = function(babel) { devInvariant[SEEN_SYMBOL] = true; + // Avoid caching because we write it as we go. + var existingErrorMap = JSON.parse( + fs.readFileSync(__dirname + '/codes.json', 'utf-8') + ); + var errorMap = invertObject(existingErrorMap); + var localInvariantId = getProdInvariantIdentifier(path, this); var prodErrorId = errorMap[errorMsgLiteral]; var body = null; diff --git a/scripts/jest/preprocessor.js b/scripts/jest/preprocessor.js index 3ea40a5364e1f..7602665f83490 100644 --- a/scripts/jest/preprocessor.js +++ b/scripts/jest/preprocessor.js @@ -11,11 +11,6 @@ var babel = require('babel-core'); var coffee = require('coffee-script'); var tsPreprocessor = require('./ts-preprocessor'); - -// This assumes the module map has been built. This might not be safe. -// We should consider consuming this from a built fbjs module from npm. -var moduleMap = require('fbjs/module-map'); -var babelPluginModules = require('fbjs-scripts/babel-6/rewrite-modules'); var createCacheKeyFunction = require('fbjs-scripts/jest/createCacheKeyFunction'); // Use require.resolve to be resilient to file moves, npm updates, etc @@ -40,15 +35,7 @@ var pathToErrorCodes = require.resolve('../error-codes/codes.json'); // TODO: make sure this stays in sync with gulpfile var babelOptions = { plugins: [ - pathToBabelPluginDevWithCode, // this pass has to run before `rewrite-modules` - [ - babelPluginModules, - { - map: Object.assign({}, moduleMap, { - 'object-assign': 'object-assign', - }), - }, - ], + pathToBabelPluginDevWithCode, // Keep stacks detailed in tests. // Don't put this in .babelrc so that we don't embed filenames // into ReactART builds that include JSX. diff --git a/scripts/jest/setup.js b/scripts/jest/setup.js index a0fbd78530a06..c8fc8dd1435c9 100644 --- a/scripts/jest/setup.js +++ b/scripts/jest/setup.js @@ -2,8 +2,8 @@ // We want to globally mock this but jest doesn't let us do that by default // for a file that already exists. So we have to explicitly mock it. -jest.mock('ReactFeatureFlags', () => { - const flags = require.requireActual('ReactFeatureFlags'); +jest.mock('shared/ReactFeatureFlags', () => { + const flags = require.requireActual('shared/ReactFeatureFlags'); return Object.assign({}, flags, { disableNewFiberFeatures: true, }); @@ -11,4 +11,5 @@ jest.mock('ReactFeatureFlags', () => { // Error logging varies between Fiber and Stack; // Rather than fork dozens of tests, mock the error-logging file by default. -jest.mock('ReactFiberErrorLogger'); +// TODO: direct imports like some-package/src/* are bad. Fix me. +jest.mock('react-reconciler/src/ReactFiberErrorLogger'); diff --git a/scripts/print-warnings/print-warnings.js b/scripts/print-warnings/print-warnings.js index 9612b924a8231..df638ce6cc028 100644 --- a/scripts/print-warnings/print-warnings.js +++ b/scripts/print-warnings/print-warnings.js @@ -11,8 +11,6 @@ const fs = require('fs'); const through = require('through2'); const traverse = require('babel-traverse').default; const gs = require('glob-stream'); -const Bundles = require('../rollup/bundles'); -const Modules = require('../rollup/modules'); const evalToString = require('../shared/evalToString'); @@ -64,16 +62,7 @@ function transform(file, enc, cb) { }); } -const sourcePaths = Bundles.bundles - .filter( - bundle => - bundle.bundleTypes.indexOf(Bundles.bundleTypes.FB_DEV) !== -1 || - bundle.bundleTypes.indexOf(Bundles.bundleTypes.FB_PROD) !== -1 - ) - .reduce((allPaths, bundle) => allPaths.concat(bundle.paths), []) - .concat(Modules.getExcludedHasteGlobs().map(glob => `!${glob}`)); - -gs(sourcePaths).pipe( +gs(['packages/**/*.js', '!**/__tests__/**/*.js', '!**/__mocks__/**/*.js']).pipe( through.obj(transform, cb => { process.stdout.write(Array.from(warnings).sort().join('\n') + '\n'); cb(); diff --git a/scripts/rollup/build.js b/scripts/rollup/build.js index c3df0a054d10e..85736ca44435c 100644 --- a/scripts/rollup/build.js +++ b/scripts/rollup/build.js @@ -7,17 +7,17 @@ const alias = require('rollup-plugin-alias'); const uglify = require('rollup-plugin-uglify'); const replace = require('rollup-plugin-replace'); const chalk = require('chalk'); -const escapeStringRegexp = require('escape-string-regexp'); const join = require('path').join; const resolve = require('path').resolve; +const resolvePlugin = require('rollup-plugin-node-resolve'); const fs = require('fs'); const rimraf = require('rimraf'); const argv = require('minimist')(process.argv.slice(2)); const Modules = require('./modules'); const Bundles = require('./bundles'); -const propertyMangleWhitelist = require('./mangle').propertyMangleWhitelist; const sizes = require('./plugins/sizes-plugin'); const Stats = require('./stats'); +const extractErrorCodes = require('../error-codes/extract-errors'); const syncReactDom = require('./sync').syncReactDom; const syncReactNative = require('./sync').syncReactNative; const syncReactNativeRT = require('./sync').syncReactNativeRT; @@ -46,22 +46,18 @@ const requestedBundleNames = (argv._[0] || '') .map(type => type.toLowerCase()); const syncFbsource = argv['sync-fbsource']; const syncWww = argv['sync-www']; +const shouldExtractErrors = argv['extract-errors']; +const errorCodeOpts = { + errorMapFilePath: 'scripts/error-codes/codes.json', +}; -// used for when we property mangle with uglify/gcc -const mangleRegex = new RegExp( - `^(?${propertyMangleWhitelist - .map(prop => `!${escapeStringRegexp(prop)}`) - .join('|')}$).*$`, - 'g' -); - -function getHeaderSanityCheck(bundleType, hasteName) { +function getHeaderSanityCheck(bundleType, globalName) { switch (bundleType) { case FB_DEV: case FB_PROD: case RN_DEV: case RN_PROD: - let hasteFinalName = hasteName; + let hasteFinalName = globalName; switch (bundleType) { case FB_DEV: case RN_DEV: @@ -81,7 +77,7 @@ function getHeaderSanityCheck(bundleType, hasteName) { } } -function getBanner(bundleType, hasteName, filename, moduleType) { +function getBanner(bundleType, globalName, filename, moduleType) { if (moduleType === RECONCILER) { // Standalone reconciler is only used by third-party renderers. // It is handled separately. @@ -109,7 +105,7 @@ function getBanner(bundleType, hasteName, filename, moduleType) { case RN_DEV: case RN_PROD: const isDev = bundleType === FB_DEV || bundleType === RN_DEV; - const hasteFinalName = hasteName + (isDev ? '-dev' : '-prod'); + const hasteFinalName = globalName + (isDev ? '-dev' : '-prod'); // Wrap the contents of the if-DEV check with an IIFE. // Block-level function definitions can cause problems for strict mode. return ( @@ -179,14 +175,22 @@ function getReconcilerFooter(bundleType) { } } -function updateBabelConfig(babelOpts, bundleType, filename) { +function getBabelConfig(updateBabelOptions, bundleType, filename) { + let options = { + exclude: 'node_modules/**', + presets: [], + plugins: [], + }; + if (updateBabelOptions) { + options = updateBabelOptions(options); + } switch (bundleType) { case FB_DEV: case FB_PROD: case RN_DEV: case RN_PROD: - return Object.assign({}, babelOpts, { - plugins: babelOpts.plugins.concat([ + return Object.assign({}, options, { + plugins: options.plugins.concat([ // Wrap warning() calls in a __DEV__ check so they are stripped from production. require('./plugins/wrap-warning-with-env-check'), ]), @@ -195,8 +199,8 @@ function updateBabelConfig(babelOpts, bundleType, filename) { case UMD_PROD: case NODE_DEV: case NODE_PROD: - return Object.assign({}, babelOpts, { - plugins: babelOpts.plugins.concat([ + return Object.assign({}, options, { + plugins: options.plugins.concat([ // Use object-assign polyfill in open source resolve('./scripts/babel/transform-object-assign-require'), @@ -208,7 +212,7 @@ function updateBabelConfig(babelOpts, bundleType, filename) { ]), }); default: - return babelOpts; + return options; } } @@ -220,26 +224,33 @@ function handleRollupWarnings(warning) { console.warn(warning.message || warning); } -function updateBundleConfig( - config, +function getRollupOutputOptions( filename, format, bundleType, - hasteName, + globals, + globalName, moduleType ) { - return Object.assign({}, config, { - banner: getBanner(bundleType, hasteName, filename, moduleType), - dest: Packaging.getPackageDestination( - config, - bundleType, - filename, - hasteName - ), - footer: getFooter(bundleType, filename, moduleType), - format, - interop: false, - }); + return Object.assign( + {}, + { + banner: getBanner(bundleType, globalName, filename, moduleType), + destDir: 'build/', + dest: 'build/' + + Packaging.getOutputPathRelativeToBuildFolder( + bundleType, + filename, + globalName + ), + footer: getFooter(bundleType, filename, moduleType), + format, + globals, + interop: false, + moduleName: globalName, + sourceMap: false, + } + ); } function stripEnvVariables(production) { @@ -264,7 +275,7 @@ function getFormat(bundleType) { } } -function getFilename(name, hasteName, bundleType) { +function getFilename(name, globalName, bundleType) { // we do this to replace / to -, for react-dom/server name = name.replace('/', '-'); switch (bundleType) { @@ -278,16 +289,15 @@ function getFilename(name, hasteName, bundleType) { return `${name}.production.min.js`; case FB_DEV: case RN_DEV: - return `${hasteName}-dev.js`; + return `${globalName}-dev.js`; case FB_PROD: case RN_PROD: - return `${hasteName}-prod.js`; + return `${globalName}-prod.js`; } } -function uglifyConfig(configs) { +function getUglifyConfig(configs) { var mangle = configs.mangle; - var manglePropertiesOnProd = configs.manglePropertiesOnProd; var preserveVersionHeader = configs.preserveVersionHeader; var removeComments = configs.removeComments; var headerSanityCheck = configs.headerSanityCheck; @@ -326,12 +336,6 @@ function uglifyConfig(configs) { return !removeComments; }, }, - mangleProperties: mangle && manglePropertiesOnProd - ? { - ignore_quoted: true, - regex: mangleRegex, - } - : false, mangle: mangle ? { toplevel: true, @@ -341,79 +345,77 @@ function uglifyConfig(configs) { }; } -function getCommonJsConfig(bundleType) { - switch (bundleType) { - case UMD_DEV: - case UMD_PROD: - case NODE_DEV: - case NODE_PROD: - return {}; - case RN_DEV: - case RN_PROD: - return { - ignore: Modules.ignoreReactNativeModules(), - }; - case FB_DEV: - case FB_PROD: - // Modules we don't want to inline in the bundle. - // Force them to stay as require()s in the output. - return { - ignore: Modules.ignoreFBModules(), - }; - } +// We use this for various shims, such as www forks of the code, +// renderer-specific feature flag overrides, and UMD optimizations. +function shimModules(shims) { + // For some reason, even if we use the alias plugin, + // Rollup still attempts to bundle unused original code + // if it exists. We have to explicitly stub it out. + const nullStub = { + transform(source, id) { + if (shims[id]) { + return 'module.exports = null;'; + } + return source; + }, + }; + return [nullStub, alias(shims)]; +} + +// FB uses require('React') instead of require('react'). +// We can't set up a forwarding module due to case sensitivity issues. +function rewriteFBReactImport() { + return { + transformBundle(source) { + return source.replace(/require\(['"]react['"]\)/g, "require('React')"); + }, + }; +} + +// Plugin that writes to the error code file so that by the time it is picked +// up by Babel, the errors are already extracted. +function writeErrorCodes() { + const flush = extractErrorCodes(errorCodeOpts); + return { + transform(source) { + flush(source); + return source; + }, + }; } function getPlugins( entry, - babelOpts, - paths, + externals, + updateBabelOptions, filename, bundleType, - hasteName, + globalName, moduleType, - manglePropertiesOnProd, modulesToStub, featureFlags ) { - // Extract error codes 1st so we can replace invariant messages in prod builds - // Without re-running the slow build script. + const shims = Modules.getShims(bundleType, entry, featureFlags); const plugins = [ - alias( - Modules.getAliases(paths, bundleType, moduleType, argv['extract-errors']) - ), - babel(updateBabelConfig(babelOpts, bundleType)), - ]; - - const replaceModules = Modules.getDefaultReplaceModules( - bundleType, - modulesToStub, - featureFlags - ); - - // We have to do this check because Rollup breaks on empty object. - // TODO: file an issue with rollup-plugin-replace. - if (Object.keys(replaceModules).length > 0) { - plugins.unshift(replace(replaceModules)); - } - - const headerSanityCheck = getHeaderSanityCheck(bundleType, hasteName); - + shouldExtractErrors && writeErrorCodes(), + ...shimModules(shims), + resolvePlugin({ + skip: externals, + }), + babel(getBabelConfig(updateBabelOptions, bundleType)), + ].filter(Boolean); + + const headerSanityCheck = getHeaderSanityCheck(bundleType, globalName); switch (bundleType) { case UMD_DEV: case NODE_DEV: - case FB_DEV: - plugins.push( - replace(stripEnvVariables(false)), - // needs to happen after strip env - commonjs(getCommonJsConfig(bundleType)) - ); + plugins.push(replace(stripEnvVariables(false)), commonjs()); break; case UMD_PROD: case NODE_PROD: plugins.push( replace(stripEnvVariables(true)), - // needs to happen after strip env - commonjs(getCommonJsConfig(bundleType)), + commonjs(), closure({ compilationLevel: 'SIMPLE', languageIn: 'ECMASCRIPT5_STRICT', @@ -429,34 +431,38 @@ function getPlugins( }) ); break; + case FB_DEV: + plugins.push( + replace(stripEnvVariables(false)), + commonjs(), + rewriteFBReactImport() + ); + break; case FB_PROD: plugins.push( replace(stripEnvVariables(true)), - // needs to happen after strip env - commonjs(getCommonJsConfig(bundleType)), + commonjs(), uglify( - uglifyConfig({ + getUglifyConfig({ mangle: bundleType !== FB_PROD, - manglePropertiesOnProd, preserveVersionHeader: bundleType === UMD_PROD, // leave comments in for source map debugging purposes // they will be stripped as part of FB's build process removeComments: bundleType !== FB_PROD, headerSanityCheck, }) - ) + ), + rewriteFBReactImport() ); break; case RN_DEV: case RN_PROD: plugins.push( replace(stripEnvVariables(bundleType === RN_PROD)), - // needs to happen after strip env - commonjs(getCommonJsConfig(bundleType)), + commonjs(), uglify( - uglifyConfig({ + getUglifyConfig({ mangle: false, - manglePropertiesOnProd, preserveVersionHeader: true, removeComments: true, headerSanityCheck, @@ -465,7 +471,6 @@ function getPlugins( ); break; } - // this needs to come last or it doesn't report sizes correctly plugins.push( sizes({ getSize: (size, gzip) => { @@ -477,7 +482,6 @@ function getPlugins( }, }) ); - return plugins; } @@ -503,44 +507,64 @@ function createBundle(bundle, bundleType) { } } - const filename = getFilename(bundle.name, bundle.hasteName, bundleType); + const filename = getFilename(bundle.entry, bundle.global, bundleType); const logKey = chalk.white.bold(filename) + chalk.dim(` (${bundleType.toLowerCase()})`); const format = getFormat(bundleType); - const packageName = Packaging.getPackageName(bundle.name); + const packageName = Packaging.getPackageName(bundle.entry); + + let resolvedEntry = require.resolve(bundle.entry); + if (bundleType === FB_DEV || bundleType === FB_PROD) { + const resolvedFBEntry = resolvedEntry.replace('.js', '.fb.js'); + if (fs.existsSync(resolvedFBEntry)) { + resolvedEntry = resolvedFBEntry; + } + } + + const shouldBundleDependencies = + bundleType === UMD_DEV || bundleType === UMD_PROD; + const peerGlobals = Modules.getPeerGlobals( + bundle.externals, + bundle.moduleType + ); + let externals = Object.keys(peerGlobals); + if (!shouldBundleDependencies) { + const deps = Modules.getDependencies(bundleType, bundle.entry); + externals = externals.concat(deps); + } console.log(`${chalk.bgYellow.black(' BUILDING ')} ${logKey}`); return rollup({ - entry: bundleType === FB_DEV || bundleType === FB_PROD - ? bundle.fbEntry - : bundle.entry, - external: Modules.getExternalModules( - bundle.externals, - bundleType, - bundle.moduleType - ), + entry: resolvedEntry, + external(id) { + const containsThisModule = pkg => id === pkg || id.startsWith(pkg + '/'); + const isProvidedByDependency = externals.some(containsThisModule); + if (!shouldBundleDependencies && isProvidedByDependency) { + return true; + } + return !!peerGlobals[id]; + }, onwarn: handleRollupWarnings, plugins: getPlugins( bundle.entry, - bundle.babelOpts, - bundle.paths, + externals, + bundle.babel, filename, bundleType, - bundle.hasteName, + bundle.global, bundle.moduleType, - bundle.manglePropertiesOnProd, bundle.modulesToStub, bundle.featureFlags ), }) .then(result => result.write( - updateBundleConfig( - bundle.config, + getRollupOutputOptions( filename, format, bundleType, - bundle.hasteName, + peerGlobals, + bundle.global, bundle.moduleType ) ) @@ -611,7 +635,7 @@ rimraf('build', () => { console.log(Stats.printResults()); // save the results for next run Stats.saveResults(); - if (argv['extract-errors']) { + if (shouldExtractErrors) { console.warn( '\nWarning: this build was created with --extract-errors enabled.\n' + 'this will result in extremely slow builds and should only be\n' + diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index cc66ab185601d..d6445c15f07f8 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -36,242 +36,87 @@ const RENDERER_UTILS = moduleTypes.RENDERER_UTILS; // Standalone reconciler for third-party renderers. const RECONCILER = moduleTypes.RECONCILER; -const babelOptsReact = { - exclude: 'node_modules/**', - presets: [], - plugins: [], -}; - -const babelOptsReactART = Object.assign({}, babelOptsReact, { - // Include JSX - presets: babelOptsReact.presets.concat([ - require.resolve('babel-preset-react'), - ]), -}); - const bundles = [ /******* Isomorphic *******/ { - babelOpts: babelOptsReact, + label: 'core', bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD], - config: { - destDir: 'build/', - moduleName: 'React', - sourceMap: false, - }, - entry: 'packages/react/index.js', - externals: [ - 'create-react-class/factory', - 'prop-types', - 'prop-types/checkPropTypes', - ], - fbEntry: 'packages/react/index.js', - hasteName: 'React', moduleType: ISOMORPHIC, - label: 'core', - manglePropertiesOnProd: false, - name: 'react', - paths: ['packages/react/**/*.js', 'packages/shared/**/*.js'], + entry: 'react', + global: 'React', + externals: [], }, /******* React DOM *******/ { - babelOpts: babelOptsReact, + label: 'dom-client', bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactDOM', - sourceMap: false, - }, - entry: 'packages/react-dom/index.js', - externals: ['prop-types', 'prop-types/checkPropTypes'], - fbEntry: 'packages/react-dom/index.fb.js', - hasteName: 'ReactDOM', moduleType: RENDERER, - label: 'dom-fiber', - manglePropertiesOnProd: false, - name: 'react-dom', - paths: [ - 'packages/events/**/*.js', - 'packages/react-dom/*.js', - 'packages/react-dom/src/client/**/*.js', - 'packages/react-dom/src/events/**/*.js', - 'packages/react-dom/src/shared/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-dom', + global: 'ReactDOM', + externals: ['react'], }, + + //******* Test Utils *******/ { - babelOpts: babelOptsReact, - bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactTestUtils', - sourceMap: false, - }, - entry: 'packages/react-dom/test-utils.js', - externals: [ - 'prop-types', - 'prop-types/checkPropTypes', - 'react', - 'react-dom', - ], - fbEntry: 'packages/react-dom/test-utils.js', - hasteName: 'ReactTestUtils', + label: 'dom-test-utils', moduleType: RENDERER_UTILS, - label: 'test-utils', - manglePropertiesOnProd: false, - name: 'react-dom/test-utils', - paths: [ - 'packages/events/**/*.js', - 'packages/react-dom/*.js', - 'packages/react-dom/src/events/**/*.js', - 'packages/react-dom/src/test-utils/**/*.js', - 'packages/react-dom/src/shared/**/*.js', - 'packages/shared/**/*.js', - ], + bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD], + entry: 'react-dom/test-utils', + global: 'ReactTestUtils', + externals: ['react', 'react-dom'], }, + /* React DOM internals required for react-native-web (e.g., to shim native events from react-dom) */ { - babelOpts: babelOptsReact, + label: 'dom-unstable-native-dependencies', bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - }, - moduleName: 'ReactDOMUnstableNativeDependencies', - sourceMap: false, - }, - entry: 'packages/react-dom/unstable-native-dependencies.js', - externals: [ - 'react-dom', - 'ReactDOM', - 'prop-types', - 'prop-types/checkPropTypes', - ], - fbEntry: 'packages/react-dom/unstable-native-dependencies.js', - hasteName: 'ReactDOMUnstableNativeDependencies', moduleType: RENDERER_UTILS, - label: 'dom-unstable-native-dependencies', - manglePropertiesOnProd: false, - name: 'react-dom/unstable-native-dependencies', - paths: [ - 'packages/events/**/*.js', - 'packages/react-dom/*.js', - 'packages/react-dom/src/unstable-native-dependencies/**/*.js', - 'packages/react-dom/src/shared/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-dom/unstable-native-dependencies', + global: 'ReactDOMUnstableNativeDependencies', + externals: ['react', 'react-dom'], }, /******* React DOM Server *******/ { - babelOpts: babelOptsReact, + label: 'dom-server-browser', bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactDOMServer', - sourceMap: false, - }, - entry: 'packages/react-dom/server.browser.js', - externals: ['prop-types', 'prop-types/checkPropTypes'], - fbEntry: 'packages/react-dom/server.browser.js', - hasteName: 'ReactDOMServer', moduleType: RENDERER, - label: 'dom-server-browser', - manglePropertiesOnProd: false, - name: 'react-dom/server.browser', - paths: [ - 'packages/events/**/*.js', - 'packages/react-dom/*.js', - 'packages/react-dom/src/server/**/*.js', - 'packages/react-dom/src/shared/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-dom/server.browser', + global: 'ReactDOMServer', + externals: ['react'], }, { - babelOpts: babelOptsReact, + label: 'dom-server-node', bundleTypes: [NODE_DEV, NODE_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactDOMNodeStream', - sourceMap: false, - }, - entry: 'packages/react-dom/server.js', - externals: ['prop-types', 'prop-types/checkPropTypes', 'stream'], moduleType: RENDERER, - label: 'dom-server-server-node', - manglePropertiesOnProd: false, - name: 'react-dom/server.node', - paths: [ - 'packages/events/**/*.js', - 'packages/react-dom/*.js', - 'packages/react-dom/src/server/**/*.js', - 'packages/react-dom/src/shared/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-dom/server.node', + externals: ['react', 'stream'], }, /******* React ART *******/ { - babelOpts: babelOptsReactART, - // TODO: we merge react-art repo into this repo so the NODE_DEV and NODE_PROD - // builds sync up to the building of the package directories + label: 'art', bundleTypes: [UMD_DEV, UMD_PROD, NODE_DEV, NODE_PROD, FB_DEV, FB_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactART', - sourceMap: false, - }, - entry: 'packages/react-art/index.js', - externals: [ - 'art/modes/current', - 'art/modes/fast-noSideEffects', - 'art/core/transform', - 'prop-types/checkPropTypes', - 'react-dom', - ], - fbEntry: 'packages/react-art/index.js', - hasteName: 'ReactART', moduleType: RENDERER, - label: 'art-fiber', - manglePropertiesOnProd: false, - name: 'react-art', - paths: [ - 'packages/react-art/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-art', + global: 'ReactART', + externals: ['react'], + babel: opts => + Object.assign({}, opts, { + // Include JSX + presets: opts.presets.concat([require.resolve('babel-preset-react')]), + }), }, /******* React Native *******/ { - babelOpts: babelOptsReact, + label: 'native', bundleTypes: [RN_DEV, RN_PROD], - config: { - destDir: 'build/', - moduleName: 'ReactNativeFiber', - sourceMap: false, - }, - entry: 'packages/react-native-renderer/index.js', + moduleType: RENDERER, + entry: 'react-native-renderer', + global: 'ReactNativeRenderer', externals: [ 'ExceptionsManager', 'InitializeCore', @@ -283,172 +128,73 @@ const bundles = [ 'deepDiffer', 'deepFreezeAndThrowOnMutationInDev', 'flattenStyle', - 'prop-types/checkPropTypes', - ], - hasteName: 'ReactNativeRenderer', - moduleType: RENDERER, - label: 'native-fiber', - manglePropertiesOnProd: false, - name: 'react-native-renderer', - paths: [ - 'packages/events/**/*.js', - 'packages/react-native-renderer/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', ], }, /******* React Native RT *******/ { - babelOpts: babelOptsReact, + label: 'native-rt', bundleTypes: [RN_DEV, RN_PROD], - config: { - destDir: 'build/', - moduleName: 'ReactNativeRTFiber', - sourceMap: false, - }, - entry: 'packages/react-rt-renderer/index.js', + moduleType: RENDERER, + entry: 'react-rt-renderer', + global: 'ReactRTRenderer', externals: [ 'ExceptionsManager', 'InitializeCore', 'Platform', 'BatchedBridge', 'RTManager', - 'prop-types/checkPropTypes', - ], - hasteName: 'ReactRTRenderer', - moduleType: RENDERER, - isRenderer: true, - label: 'native-rt-fiber', - manglePropertiesOnProd: false, - name: 'react-native-rt-renderer', - paths: [ - 'packages/events/**/*.js', - 'packages/react-native-renderer/**/*.js', // This is used since we reuse the error dialog code - 'packages/react-rt-renderer/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', ], }, /******* React Native CS *******/ { - babelOpts: babelOptsReact, + label: 'native-cs', bundleTypes: [RN_DEV, RN_PROD], - config: { - destDir: 'build/', - moduleName: 'ReactNativeCSFiber', - sourceMap: false, - }, - entry: 'packages/react-cs-renderer/index.js', - externals: ['prop-types/checkPropTypes'], - hasteName: 'ReactCSRenderer', moduleType: RENDERER, - isRenderer: true, - label: 'native-cs-fiber', - manglePropertiesOnProd: false, - name: 'react-native-cs-renderer', - featureFlags: 'packages/react-cs-renderer/src/ReactNativeCSFeatureFlags', - paths: [ - 'packages/events/**/*.js', - 'packages/react-native-renderer/**/*.js', // This is used since we reuse the error dialog code - 'packages/react-cs-renderer/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-cs-renderer', + global: 'ReactCSRenderer', + externals: [], + featureFlags: 'react-cs-renderer/src/ReactNativeCSFeatureFlags', }, /******* React Test Renderer *******/ { - babelOpts: babelOptsReact, + label: 'test', bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD], - config: { - destDir: 'build/', - moduleName: 'ReactTestRenderer', - sourceMap: false, - }, - entry: 'packages/react-test-renderer/index.js', - externals: ['prop-types/checkPropTypes'], - fbEntry: 'packages/react-test-renderer/index.js', - hasteName: 'ReactTestRenderer', moduleType: RENDERER, - label: 'test-fiber', - manglePropertiesOnProd: false, - name: 'react-test-renderer', - paths: [ - 'packages/events/**/*.js', - 'packages/react-test-renderer/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-test-renderer', + global: 'ReactTestRenderer', + externals: ['react'], }, + { - babelOpts: babelOptsReact, + label: 'test-shallow', bundleTypes: [FB_DEV, NODE_DEV, NODE_PROD], - config: { - destDir: 'build/', - moduleName: 'ReactShallowRenderer', - sourceMap: false, - }, - entry: 'packages/react-test-renderer/shallow.js', - externals: [ - 'react-dom', - 'prop-types/checkPropTypes', - 'react-test-renderer', - ], - fbEntry: 'packages/react-test-renderer/shallow.js', - hasteName: 'ReactShallowRenderer', moduleType: RENDERER, - label: 'shallow-renderer', - manglePropertiesOnProd: false, - name: 'react-test-renderer/shallow', - paths: ['packages/react-test-renderer/**/*.js', 'packages/shared/**/*.js'], + entry: 'react-test-renderer/shallow', + global: 'ReactShallowRenderer', + externals: ['react'], }, /******* React Noop Renderer (used only for fixtures/fiber-debugger) *******/ { - babelOpts: babelOptsReact, + label: 'noop', bundleTypes: [NODE_DEV], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactNoop', - sourceMap: false, - }, - entry: 'packages/react-noop-renderer/index.js', - externals: ['prop-types/checkPropTypes', 'jest-matchers'], moduleType: RENDERER, - label: 'noop-fiber', - manglePropertiesOnProd: false, - name: 'react-noop-renderer', - paths: [ - 'packages/react-noop/**/*.js', - 'packages/react-reconciler/**/*.js', - 'packages/shared/**/*.js', - ], + entry: 'react-noop-renderer', + global: 'ReactNoopRenderer', + externals: ['react', 'jest-matchers'], }, /******* React Reconciler *******/ { - babelOpts: babelOptsReact, + label: 'react-reconciler', bundleTypes: [NODE_DEV, NODE_PROD], - config: { - destDir: 'build/', - globals: { - react: 'React', - }, - moduleName: 'ReactReconciler', - sourceMap: false, - }, - entry: 'packages/react-reconciler/index.js', - externals: ['react', 'prop-types/checkPropTypes'], moduleType: RECONCILER, - label: 'react-reconciler', - manglePropertiesOnProd: false, - name: 'react-reconciler', - paths: ['packages/react-reconciler/**/*.js', 'packages/shared/**/*.js'], + entry: 'react-reconciler', + global: 'ReactReconciler', + externals: ['react'], }, ]; diff --git a/scripts/rollup/mangle.js b/scripts/rollup/mangle.js deleted file mode 100644 index 1acc08c5b362a..0000000000000 --- a/scripts/rollup/mangle.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -// these are added as they are handled by rollup in some cases -const propertyMangleWhitelist = [ - // React - 'React', - 'ReactDOM', -]; - -module.exports = { - propertyMangleWhitelist, -}; diff --git a/scripts/rollup/modules.js b/scripts/rollup/modules.js index e3924e964b1c9..1fd9bb2bc2b17 100644 --- a/scripts/rollup/modules.js +++ b/scripts/rollup/modules.js @@ -1,346 +1,108 @@ 'use strict'; -const resolve = require('path').resolve; -const basename = require('path').basename; -const sync = require('glob').sync; +const path = require('path'); const bundleTypes = require('./bundles').bundleTypes; -const moduleTypes = require('./bundles').moduleTypes; -const extractErrorCodes = require('../error-codes/extract-errors'); - -const exclude = [ - '**/__benchmarks__/**/*.js', - '**/__tests__/**/*.js', - '**/__mocks__/**/*.js', -]; const UMD_DEV = bundleTypes.UMD_DEV; const UMD_PROD = bundleTypes.UMD_PROD; -const NODE_DEV = bundleTypes.NODE_DEV; -const NODE_PROD = bundleTypes.NODE_PROD; const FB_DEV = bundleTypes.FB_DEV; const FB_PROD = bundleTypes.FB_PROD; -const RN_DEV = bundleTypes.RN_DEV; -const RN_PROD = bundleTypes.RN_PROD; - -const ISOMORPHIC = moduleTypes.ISOMORPHIC; -const RENDERER = moduleTypes.RENDERER; - -const errorCodeOpts = { - errorMapFilePath: 'scripts/error-codes/codes.json', -}; - -// these are the FBJS modules that are used throughout our bundles -const fbjsModules = [ - 'fbjs/lib/warning', - 'fbjs/lib/invariant', - 'fbjs/lib/emptyFunction', - 'fbjs/lib/emptyObject', - 'fbjs/lib/hyphenateStyleName', - 'fbjs/lib/getUnboundedScrollPosition', - 'fbjs/lib/camelizeStyleName', - 'fbjs/lib/containsNode', - 'fbjs/lib/shallowEqual', - 'fbjs/lib/getActiveElement', - 'fbjs/lib/focusNode', - 'fbjs/lib/EventListener', - 'fbjs/lib/memoizeStringOnly', - 'fbjs/lib/ExecutionEnvironment', - 'fbjs/lib/createNodesFromMarkup', - 'fbjs/lib/performanceNow', -]; - -const devOnlyFilesToStubOut = [ - "'ReactDebugCurrentFrame'", - "'ReactComponentTreeHook'", - "'ReactPerf'", - "'ReactTestUtils'", -]; - -const legacyModules = [ - 'create-react-class', - 'create-react-class/factory', - 'prop-types', - 'prop-types/checkPropTypes', -]; - -// this function builds up a very niave Haste-like moduleMap -// that works to create up an alias map for modules to link -// up to their actual disk location so Rollup can properly -// bundle them -function createModuleMap(paths, extractErrors, bundleType) { - const moduleMap = {}; - - paths.forEach(path => { - const files = sync(path, {ignore: exclude}); - - files.forEach(file => { - if (extractErrors) { - extractErrors(file); - } - const moduleName = basename(file, '.js'); - moduleMap[moduleName] = resolve(file); - }); +// Bundles exporting globals that other modules rely on. +const knownGlobals = Object.freeze({ + react: 'React', + 'react-dom': 'ReactDOM', +}); + +// Redirect some modules to Haste forks in www. +// Assuming their names in www are the same, and also match +// imported names in corresponding ./shims/rollup/*-www.js shims. +const forkedFBModules = Object.freeze([ + // At FB, we don't know them statically: + 'shared/ReactFeatureFlags', + // This logic is also forked internally. + 'shared/lowPriorityWarning', + // In FB bundles, we preserve an inline require to ReactCurrentOwner. + // See the explanation in FB version of ReactCurrentOwner in www: + 'react/src/ReactCurrentOwner', +]); + +// Given ['react'] in bundle externals, returns { 'react': 'React' }. +function getPeerGlobals(externals, moduleType) { + const peerGlobals = {}; + externals.forEach(name => { + if ( + !knownGlobals[name] && + (moduleType === UMD_DEV || moduleType === UMD_PROD) + ) { + throw new Error('Cannot build UMD without a global name for: ' + name); + } + peerGlobals[name] = knownGlobals[name]; }); - // if this is FB, we want to remove ReactCurrentOwner and lowPriorityWarning, - // so we can handle it with a different case - if (bundleType === FB_DEV || bundleType === FB_PROD) { - delete moduleMap.ReactCurrentOwner; - delete moduleMap.lowPriorityWarning; - } - return moduleMap; + return peerGlobals; } -function getNodeModules(bundleType, moduleType) { - // rather than adding the rollup node resolve plugin, - // we can instead deal with the only node module that is used - // for UMD bundles - object-assign - switch (bundleType) { - case UMD_DEV: - case UMD_PROD: - return { - // Bundle object-assign once in the isomorphic React, and then use - // that from the renderer UMD. Avoids bundling it in both UMDs. - 'object-assign': moduleType === ISOMORPHIC - ? resolve('./node_modules/object-assign/index.js') - : resolve('./scripts/rollup/shims/rollup/assign.js'), - // include the ART package modules directly by aliasing them from node_modules - 'art/modes/current': resolve('./node_modules/art/modes/current.js'), - 'art/modes/fast-noSideEffects': resolve( - './node_modules/art/modes/fast-noSideEffects.js' - ), - 'art/core/transform': resolve('./node_modules/art/core/transform.js'), - }; - case NODE_DEV: - case NODE_PROD: - case FB_DEV: - case FB_PROD: - case RN_DEV: - case RN_PROD: - return {}; +// Determines node_modules packages that are safe to assume will exist. +function getDependencies(bundleType, entry) { + const packageJson = require(path.basename( + path.dirname(require.resolve(entry)) + ) + '/package.json'); + // Both deps and peerDeps are assumed as accessible. + let deps = Array.from( + new Set([ + ...Object.keys(packageJson.dependencies || {}), + ...Object.keys(packageJson.peerDependencies || {}), + ]) + ); + // In www, forked modules are also require-able. + if (bundleType === FB_DEV || bundleType === FB_PROD) { + deps = [...deps, ...forkedFBModules.map(name => path.basename(name))]; } + return deps; } -function ignoreFBModules() { - return [ - // These are FB-specific aliases to react and react-dom. - // Don't attempt to bundle them into other bundles. - 'React', - 'ReactDOM', - // At FB, we don't know them statically: - 'ReactFeatureFlags', - // In FB bundles, we preserve an inline require to ReactCurrentOwner. - // See the explanation in FB version of ReactCurrentOwner in www: - 'ReactCurrentOwner', - 'lowPriorityWarning', - ]; -} - -function ignoreReactNativeModules() { - return [ - // This imports NativeMethodsMixin, causing a circular dependency. - 'View', - ]; -} - -function getExternalModules(externals, bundleType, moduleType) { - // external modules tell Rollup that we should not attempt - // to bundle these modules and instead treat them as - // external dependencies to the bundle. so for CJS bundles - // this means having a require("name-of-external-module") at - // the top of the bundle. for UMD bundles this means having - // both a require and a global check for them - let externalModules = externals.slice(); +// Hijacks some modules for optimization and integration reasons. +function getShims(bundleType, entry, featureFlags) { + const shims = {}; switch (bundleType) { case UMD_DEV: case UMD_PROD: - if (moduleType !== ISOMORPHIC) { - externalModules.push('react'); - } - break; - case NODE_DEV: - case NODE_PROD: - case RN_DEV: - case RN_PROD: - fbjsModules.forEach(module => externalModules.push(module)); - externalModules.push('object-assign'); - if (moduleType !== ISOMORPHIC) { - externalModules.push('react'); + if (getDependencies(bundleType, entry).indexOf('react') !== -1) { + // Optimization: rely on object-assign polyfill that is already a part + // of the React package instead of bundling it again. + shims['object-assign'] = path.resolve( + __dirname + '/shims/rollup/assign-umd.js' + ); } break; case FB_DEV: case FB_PROD: - fbjsModules.forEach(module => externalModules.push(module)); - externalModules.push('object-assign'); - externalModules.push('ReactCurrentOwner'); - externalModules.push('lowPriorityWarning'); - if (moduleType !== ISOMORPHIC) { - externalModules.push('React'); - if (externalModules.indexOf('react-dom') > -1) { - externalModules.push('ReactDOM'); - } - } + // FB forks a few modules in www that are usually bundled. + // Instead of bundling them, they need to be kept as require()s in the + // final bundles so that they import www modules with the same names. + // Rollup doesn't make it very easy to rewrite and ignore such a require, + // so we resort to using a shim that re-exports the www module, and then + // treating shim's target destinations as external (see getDependencies). + forkedFBModules.forEach(srcPath => { + const resolvedSrcPath = require.resolve(srcPath); + const wwwName = path.parse(resolvedSrcPath).name; + const shimPath = path.resolve( + __dirname + `/shims/rollup/${wwwName}-www.js` + ); + shims[resolvedSrcPath] = shimPath; + }); break; } - return externalModules; -} - -function getInternalModules(moduleType) { - // we tell Rollup where these files are located internally, otherwise - // it doesn't pick them up and assumes they're external - let aliases = { - reactProdInvariant: resolve('./packages/shared/reactProdInvariant.js'), - }; - if (moduleType === RENDERER) { - // Renderers bundle the whole reconciler. - aliases['react-reconciler'] = resolve( - './packages/react-reconciler/index.js' + if (featureFlags) { + shims[require.resolve('shared/ReactFeatureFlags')] = require.resolve( + featureFlags ); } - return aliases; -} - -function getFbjsModuleAliases(bundleType) { - switch (bundleType) { - case UMD_DEV: - case UMD_PROD: - // we want to bundle these modules, so we re-alias them to the actual - // file so Rollup can bundle them up - const fbjsModulesAlias = {}; - fbjsModules.forEach(fbjsModule => { - fbjsModulesAlias[fbjsModule] = resolve(`./node_modules/${fbjsModule}`); - }); - return fbjsModulesAlias; - case NODE_DEV: - case NODE_PROD: - case FB_DEV: - case FB_PROD: - case RN_DEV: - case RN_PROD: - // for FB we don't want to bundle the above modules, instead keep them - // as external require() calls in the bundle - return {}; - } -} - -function replaceFbjsModuleAliases(bundleType) { - switch (bundleType) { - case FB_DEV: - case FB_PROD: - // Haste at FB doesn't currently allow case sensitive names, - // and product code already uses "React". In the future, - // we will either allow both variants or migrate to lowercase. - return { - "'react'": "'React'", - "'react-dom'": "'ReactDOM'", - }; - default: - return {}; - } -} - -const devOnlyModuleStub = `'${resolve('./scripts/rollup/shims/rollup/DevOnlyStubShim.js')}'`; - -function replaceDevOnlyStubbedModules(bundleType) { - switch (bundleType) { - case UMD_DEV: - case NODE_DEV: - case FB_DEV: - case RN_DEV: - case RN_PROD: - return {}; - case FB_PROD: - case UMD_PROD: - case NODE_PROD: - const devOnlyModuleAliases = {}; - devOnlyFilesToStubOut.forEach(devOnlyModule => { - devOnlyModuleAliases[devOnlyModule] = devOnlyModuleStub; - }); - return devOnlyModuleAliases; - } -} - -function replaceLegacyModuleAliases(bundleType) { - switch (bundleType) { - case UMD_DEV: - case UMD_PROD: - const modulesAlias = {}; - legacyModules.forEach(legacyModule => { - const modulePath = legacyModule.includes('/') - ? legacyModule - : `${legacyModule}/index`; - const resolvedPath = resolve(`./node_modules/${modulePath}`); - modulesAlias[`'${legacyModule}'`] = `'${resolvedPath}'`; - }); - return modulesAlias; - case NODE_DEV: - case NODE_PROD: - case FB_DEV: - case FB_PROD: - case RN_DEV: - case RN_PROD: - return {}; - } -} - -function replaceBundleStubModules(bundleModulesToStub) { - const stubbedModules = {}; - - if (Array.isArray(bundleModulesToStub)) { - bundleModulesToStub.forEach(module => { - stubbedModules[`'${module}'`] = devOnlyModuleStub; - }); - } - - return stubbedModules; -} - -function getAliases(paths, bundleType, moduleType, extractErrors) { - return Object.assign( - createModuleMap( - paths, - extractErrors && extractErrorCodes(errorCodeOpts), - bundleType - ), - getInternalModules(moduleType), - getNodeModules(bundleType, moduleType), - getFbjsModuleAliases(bundleType) - ); -} - -function replaceFeatureFlags(featureFlags) { - if (!featureFlags) { - return {}; - } - return { - "'ReactFeatureFlags'": `'${resolve(featureFlags)}'`, - }; -} - -function getDefaultReplaceModules( - bundleType, - bundleModulesToStub, - featureFlags -) { - return Object.assign( - {}, - replaceFbjsModuleAliases(bundleType), - replaceDevOnlyStubbedModules(bundleType), - replaceLegacyModuleAliases(bundleType), - replaceBundleStubModules(bundleModulesToStub), - replaceFeatureFlags(featureFlags) - ); -} - -function getExcludedHasteGlobs() { - return exclude; + return shims; } module.exports = { - getExcludedHasteGlobs, - getDefaultReplaceModules, - getAliases, - ignoreFBModules, - ignoreReactNativeModules, - getExternalModules, + getPeerGlobals, + getDependencies, + getShims, }; diff --git a/scripts/rollup/packaging.js b/scripts/rollup/packaging.js index 64fec9f769627..3f3a3295310c1 100644 --- a/scripts/rollup/packaging.js +++ b/scripts/rollup/packaging.js @@ -24,7 +24,7 @@ const facebookWWWSrcDependencies = [ // these files need to be copied to the react-native build const reactNativeSrcDependencies = [ - 'packages/react-reconciler/src/ReactTypes.js', + 'packages/shared/ReactTypes.js', 'packages/react-native-renderer/src/ReactNativeTypes.js', ]; @@ -200,27 +200,25 @@ function createNodePackage(bundleType, packageName, filename) { return Promise.resolve(); } -function getPackageDestination(config, bundleType, filename, hasteName) { - let dest = config.destDir + filename; - +function getOutputPathRelativeToBuildFolder(bundleType, filename, hasteName) { if (bundleType === FB_DEV || bundleType === FB_PROD) { - dest = `${config.destDir}${facebookWWW}/${filename}`; + return `${facebookWWW}/${filename}`; } else if (bundleType === UMD_DEV || bundleType === UMD_PROD) { - dest = `${config.destDir}dist/${filename}`; + return `dist/${filename}`; } else if (bundleType === RN_DEV || bundleType === RN_PROD) { if (hasteName === 'ReactRTRenderer') { - dest = `${config.destDir}react-rt/${filename}`; + return `react-rt/${filename}`; } else if (hasteName === 'ReactCSRenderer') { - dest = `${config.destDir}react-cs/${filename}`; + return `react-cs/${filename}`; } else { - dest = `${config.destDir}react-native/${filename}`; + return `react-native/${filename}`; } } - return dest; + return filename; } module.exports = { - getPackageDestination, + getOutputPathRelativeToBuildFolder, createNodePackage, getPackageName, createFacebookWWWBuild, diff --git a/scripts/rollup/results.json b/scripts/rollup/results.json index 9dff0b6522235..af0d587ac79bf 100644 --- a/scripts/rollup/results.json +++ b/scripts/rollup/results.json @@ -1,204 +1,204 @@ { "bundleSizes": { "react.development.js (UMD_DEV)": { - "size": 54803, - "gzip": 14350 + "size": 54574, + "gzip": 14304 }, "react.production.min.js (UMD_PROD)": { "size": 6634, "gzip": 2764 }, "react.development.js (NODE_DEV)": { - "size": 45707, - "gzip": 12095 + "size": 45478, + "gzip": 12054 }, "react.production.min.js (NODE_PROD)": { "size": 5611, "gzip": 2364 }, "React-dev.js (FB_DEV)": { - "size": 43033, - "gzip": 11331 + "size": 42953, + "gzip": 11326 }, "React-prod.js (FB_PROD)": { - "size": 24848, - "gzip": 6713 + "size": 24830, + "gzip": 6718 }, "react-dom.development.js (UMD_DEV)": { - "size": 628875, - "gzip": 144023 + "size": 628275, + "gzip": 144026 }, "react-dom.production.min.js (UMD_PROD)": { - "size": 100571, - "gzip": 31752 + "size": 100910, + "gzip": 31885 }, "react-dom.development.js (NODE_DEV)": { - "size": 591158, - "gzip": 135256 + "size": 590510, + "gzip": 135251 }, "react-dom.production.min.js (NODE_PROD)": { - "size": 107130, - "gzip": 33570 + "size": 107143, + "gzip": 33563 }, "ReactDOM-dev.js (FB_DEV)": { - "size": 588384, - "gzip": 134603 + "size": 587573, + "gzip": 134618 }, "ReactDOM-prod.js (FB_PROD)": { - "size": 418558, - "gzip": 92979 + "size": 418348, + "gzip": 92934 }, "react-dom-test-utils.development.js (NODE_DEV)": { - "size": 41743, - "gzip": 11118 + "size": 41554, + "gzip": 11082 }, "react-dom-test-utils.production.min.js (NODE_PROD)": { "size": 11608, "gzip": 4241 }, "ReactTestUtils-dev.js (FB_DEV)": { - "size": 41569, - "gzip": 11069 + "size": 41172, + "gzip": 11056 }, "react-dom-unstable-native-dependencies.development.js (UMD_DEV)": { - "size": 84961, - "gzip": 21296 + "size": 84862, + "gzip": 21266 }, "react-dom-unstable-native-dependencies.production.min.js (UMD_PROD)": { "size": 14441, "gzip": 4650 }, "react-dom-unstable-native-dependencies.development.js (NODE_DEV)": { - "size": 80754, - "gzip": 19972 + "size": 80643, + "gzip": 19931 }, "react-dom-unstable-native-dependencies.production.min.js (NODE_PROD)": { "size": 14003, "gzip": 4510 }, "ReactDOMUnstableNativeDependencies-dev.js (FB_DEV)": { - "size": 80207, - "gzip": 19890 + "size": 80136, + "gzip": 19877 }, "ReactDOMUnstableNativeDependencies-prod.js (FB_PROD)": { - "size": 65181, - "gzip": 15545 + "size": 65144, + "gzip": 15540 }, "react-dom-server.browser.development.js (UMD_DEV)": { - "size": 124902, - "gzip": 32255 + "size": 124580, + "gzip": 32216 }, "react-dom-server.browser.production.min.js (UMD_PROD)": { "size": 15337, "gzip": 5967 }, "react-dom-server.browser.development.js (NODE_DEV)": { - "size": 94822, - "gzip": 25134 + "size": 94467, + "gzip": 25081 }, "react-dom-server.browser.production.min.js (NODE_PROD)": { "size": 15063, "gzip": 5899 }, "ReactDOMServer-dev.js (FB_DEV)": { - "size": 94499, - "gzip": 25066 + "size": 93943, + "gzip": 25012 }, "ReactDOMServer-prod.js (FB_PROD)": { - "size": 42463, + "size": 42426, "gzip": 11846 }, "react-dom-server.node.development.js (NODE_DEV)": { - "size": 97084, - "gzip": 25683 + "size": 96739, + "gzip": 25630 }, "react-dom-server.node.production.min.js (NODE_PROD)": { "size": 15988, "gzip": 6235 }, "react-art.development.js (UMD_DEV)": { - "size": 376187, - "gzip": 82324 + "size": 374324, + "gzip": 82151 }, "react-art.production.min.js (UMD_PROD)": { - "size": 82965, - "gzip": 25790 + "size": 82762, + "gzip": 25775 }, "react-art.development.js (NODE_DEV)": { - "size": 300546, - "gzip": 63199 + "size": 300081, + "gzip": 63132 }, "react-art.production.min.js (NODE_PROD)": { - "size": 54380, - "gzip": 17024 + "size": 54393, + "gzip": 17033 }, "ReactART-dev.js (FB_DEV)": { - "size": 299425, - "gzip": 63131 + "size": 298687, + "gzip": 63040 }, "ReactART-prod.js (FB_PROD)": { - "size": 224127, - "gzip": 46026 + "size": 223978, + "gzip": 46012 }, "ReactNativeRenderer-dev.js (RN_DEV)": { - "size": 286133, - "gzip": 49281 + "size": 286147, + "gzip": 49197 }, "ReactNativeRenderer-prod.js (RN_PROD)": { - "size": 223833, - "gzip": 38518 + "size": 223837, + "gzip": 38577 }, "ReactRTRenderer-dev.js (RN_DEV)": { - "size": 217990, - "gzip": 36810 + "size": 218004, + "gzip": 36738 }, "ReactRTRenderer-prod.js (RN_PROD)": { - "size": 165476, - "gzip": 27536 + "size": 165480, + "gzip": 27593 }, "ReactCSRenderer-dev.js (RN_DEV)": { "size": 210411, - "gzip": 35053 + "gzip": 35016 }, "ReactCSRenderer-prod.js (RN_PROD)": { "size": 160471, - "gzip": 26346 + "gzip": 26308 }, "react-test-renderer.development.js (NODE_DEV)": { - "size": 304403, - "gzip": 63639 + "size": 303938, + "gzip": 63567 }, "react-test-renderer.production.min.js (NODE_PROD)": { - "size": 55973, - "gzip": 17246 + "size": 55986, + "gzip": 17251 }, "ReactTestRenderer-dev.js (FB_DEV)": { - "size": 303243, - "gzip": 63566 + "size": 302534, + "gzip": 63485 }, "react-test-renderer-shallow.development.js (NODE_DEV)": { - "size": 9364, - "gzip": 2335 + "size": 9290, + "gzip": 2321 }, "react-test-renderer-shallow.production.min.js (NODE_PROD)": { "size": 4630, "gzip": 1665 }, "ReactShallowRenderer-dev.js (FB_DEV)": { - "size": 9037, - "gzip": 2262 + "size": 9002, + "gzip": 2256 }, "react-noop-renderer.development.js (NODE_DEV)": { - "size": 293612, - "gzip": 60826 + "size": 293219, + "gzip": 60806 }, "react-reconciler.development.js (NODE_DEV)": { - "size": 279284, - "gzip": 57666 + "size": 278819, + "gzip": 57593 }, "react-reconciler.production.min.js (NODE_PROD)": { - "size": 38232, - "gzip": 11939 + "size": 38245, + "gzip": 11943 } } } \ No newline at end of file diff --git a/scripts/rollup/shims/rollup/DevOnlyStubShim.js b/scripts/rollup/shims/rollup/DevOnlyStubShim.js deleted file mode 100644 index b894a23a24d56..0000000000000 --- a/scripts/rollup/shims/rollup/DevOnlyStubShim.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = null; diff --git a/scripts/rollup/shims/rollup/ReactCurrentOwner-www.js b/scripts/rollup/shims/rollup/ReactCurrentOwner-www.js new file mode 100644 index 0000000000000..a1b93fe0a03ce --- /dev/null +++ b/scripts/rollup/shims/rollup/ReactCurrentOwner-www.js @@ -0,0 +1 @@ +module.exports = require('ReactCurrentOwner'); diff --git a/scripts/rollup/shims/rollup/ReactDebugCurrentFrameRollupShim.js b/scripts/rollup/shims/rollup/ReactDebugCurrentFrameRollupShim.js deleted file mode 100644 index 6d205e5b03d87..0000000000000 --- a/scripts/rollup/shims/rollup/ReactDebugCurrentFrameRollupShim.js +++ /dev/null @@ -1,4 +0,0 @@ -var ReactInternals = require('react') - .__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - -module.exports = ReactInternals.ReactDebugCurrentFrame; diff --git a/scripts/rollup/shims/rollup/ReactFeatureFlags-www.js b/scripts/rollup/shims/rollup/ReactFeatureFlags-www.js new file mode 100644 index 0000000000000..ea43139dcd2a2 --- /dev/null +++ b/scripts/rollup/shims/rollup/ReactFeatureFlags-www.js @@ -0,0 +1 @@ +module.exports = require('ReactFeatureFlags'); diff --git a/scripts/rollup/shims/rollup/assign.js b/scripts/rollup/shims/rollup/assign-umd.js similarity index 100% rename from scripts/rollup/shims/rollup/assign.js rename to scripts/rollup/shims/rollup/assign-umd.js diff --git a/scripts/rollup/shims/rollup/lowPriorityWarning-www.js b/scripts/rollup/shims/rollup/lowPriorityWarning-www.js new file mode 100644 index 0000000000000..513fc8b4f789b --- /dev/null +++ b/scripts/rollup/shims/rollup/lowPriorityWarning-www.js @@ -0,0 +1 @@ +module.exports = require('lowPriorityWarning');