diff --git a/packages/eslint-plugin-react-hooks/index.js b/packages/eslint-plugin-react-hooks/index.js index 7ab3284345f0b..c626dfc20ae1c 100644 --- a/packages/eslint-plugin-react-hooks/index.js +++ b/packages/eslint-plugin-react-hooks/index.js @@ -5,6 +5,4 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - -module.exports = require('./src/index'); +export * from './src/index'; diff --git a/packages/react-art/Circle.js b/packages/react-art/Circle.js index 3e416db478be1..da13862b6b069 100644 --- a/packages/react-art/Circle.js +++ b/packages/react-art/Circle.js @@ -7,8 +7,4 @@ * @flow */ -'use strict'; - -const Circle = require('./npm/Circle'); - -module.exports = Circle; +export {default} from './npm/Circle'; diff --git a/packages/react-art/Rectangle.js b/packages/react-art/Rectangle.js index 49ac69654db46..b0f45951b2f5b 100644 --- a/packages/react-art/Rectangle.js +++ b/packages/react-art/Rectangle.js @@ -7,8 +7,4 @@ * @flow */ -'use strict'; - -const Rectangle = require('./npm/Rectangle'); - -module.exports = Rectangle; +export {default} from './npm/Rectangle'; diff --git a/packages/react-art/Wedge.js b/packages/react-art/Wedge.js index 46746200a8595..24c5cd5a13276 100644 --- a/packages/react-art/Wedge.js +++ b/packages/react-art/Wedge.js @@ -7,8 +7,4 @@ * @flow */ -'use strict'; - -const Wedge = require('./npm/Wedge'); - -module.exports = Wedge; +export {default} from './npm/Wedge'; diff --git a/packages/react-art/index.js b/packages/react-art/index.js index a379b066ff068..c6f706087b388 100644 --- a/packages/react-art/index.js +++ b/packages/react-art/index.js @@ -7,8 +7,4 @@ * @flow */ -'use strict'; - -const ReactART = require('./src/ReactART'); - -module.exports = ReactART; +export * from './src/ReactART'; diff --git a/packages/react-art/src/__tests__/ReactART-test.js b/packages/react-art/src/__tests__/ReactART-test.js index 758415ef38044..1613360ce6369 100644 --- a/packages/react-art/src/__tests__/ReactART-test.js +++ b/packages/react-art/src/__tests__/ReactART-test.js @@ -11,7 +11,19 @@ 'use strict'; -const React = require('react'); +import * as React from 'react'; + +import * as ReactART from 'react-art'; +import ARTSVGMode from 'art/modes/svg'; +import ARTCurrentMode from 'art/modes/current'; +// Since these are default exports, we need to import them using ESM. +// Since they must be on top, we need to import this before ReactDOM. +import Circle from 'react-art/Circle'; +import Rectangle from 'react-art/Rectangle'; +import Wedge from 'react-art/Wedge'; + +// Isolate DOM renderer. +jest.resetModules(); const ReactDOM = require('react-dom'); const ReactTestUtils = require('react-dom/test-utils'); @@ -19,15 +31,6 @@ const ReactTestUtils = require('react-dom/test-utils'); jest.resetModules(); const ReactTestRenderer = require('react-test-renderer'); -// Isolate ART renderer. -jest.resetModules(); -const ReactART = require('react-art'); -const ARTSVGMode = require('art/modes/svg'); -const ARTCurrentMode = require('art/modes/current'); -const Circle = require('react-art/Circle'); -const Rectangle = require('react-art/Rectangle'); -const Wedge = require('react-art/Wedge'); - // Isolate the noop renderer jest.resetModules(); const ReactNoop = require('react-noop-renderer'); diff --git a/packages/react-debug-tools/index.js b/packages/react-debug-tools/index.js index c381393770b5f..f10fd94270361 100644 --- a/packages/react-debug-tools/index.js +++ b/packages/react-debug-tools/index.js @@ -5,9 +5,4 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - -const ReactDebugTools = require('./src/ReactDebugTools'); - -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactDebugTools.default || ReactDebugTools; +export * from './src/ReactDebugTools'; diff --git a/packages/react-flight-dom-webpack/index.js b/packages/react-flight-dom-webpack/index.js index 5b82a9d829acf..67e9a28e029db 100644 --- a/packages/react-flight-dom-webpack/index.js +++ b/packages/react-flight-dom-webpack/index.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactFlightDOMClient = require('./src/ReactFlightDOMClient'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest -module.exports = ReactFlightDOMClient.default || ReactFlightDOMClient; +export * from './src/ReactFlightDOMClient'; diff --git a/packages/react-flight-dom-webpack/server.browser.js b/packages/react-flight-dom-webpack/server.browser.js index b6d542749d0c4..2329292ffc6af 100644 --- a/packages/react-flight-dom-webpack/server.browser.js +++ b/packages/react-flight-dom-webpack/server.browser.js @@ -7,11 +7,4 @@ * @flow */ -'use strict'; - -const ReactFlightDOMServerBrowser = require('./src/ReactFlightDOMServerBrowser'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest -module.exports = - ReactFlightDOMServerBrowser.default || ReactFlightDOMServerBrowser; +export * from './src/ReactFlightDOMServerBrowser'; diff --git a/packages/react-flight-dom-webpack/server.js b/packages/react-flight-dom-webpack/server.js index 03006336ba4fe..6010f4e3d5b22 100644 --- a/packages/react-flight-dom-webpack/server.js +++ b/packages/react-flight-dom-webpack/server.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./server.node'); +export * from './server.node'; diff --git a/packages/react-flight-dom-webpack/server.node.js b/packages/react-flight-dom-webpack/server.node.js index 1cbf1781b0f86..352e53b0cc6f1 100644 --- a/packages/react-flight-dom-webpack/server.node.js +++ b/packages/react-flight-dom-webpack/server.node.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactFlightDOMServerNode = require('./src/ReactFlightDOMServerNode'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest -module.exports = ReactFlightDOMServerNode.default || ReactFlightDOMServerNode; +export * from './src/ReactFlightDOMServerNode'; diff --git a/packages/react-flight-dom-webpack/src/ReactFlightDOMClient.js b/packages/react-flight-dom-webpack/src/ReactFlightDOMClient.js index e9c44f25021e5..908ffee1a4ba7 100644 --- a/packages/react-flight-dom-webpack/src/ReactFlightDOMClient.js +++ b/packages/react-flight-dom-webpack/src/ReactFlightDOMClient.js @@ -79,8 +79,4 @@ function readFromXHR(request: XMLHttpRequest): ReactModelRoot { return getModelRoot(response); } -export default { - readFromXHR, - readFromFetch, - readFromReadableStream, -}; +export {readFromXHR, readFromFetch, readFromReadableStream}; diff --git a/packages/react-flight-dom-webpack/src/ReactFlightDOMServerBrowser.js b/packages/react-flight-dom-webpack/src/ReactFlightDOMServerBrowser.js index 2aaf9ed3c0c4d..b7538e48a2bdf 100644 --- a/packages/react-flight-dom-webpack/src/ReactFlightDOMServerBrowser.js +++ b/packages/react-flight-dom-webpack/src/ReactFlightDOMServerBrowser.js @@ -29,6 +29,4 @@ function renderToReadableStream(model: ReactModel): ReadableStream { }); } -export default { - renderToReadableStream, -}; +export {renderToReadableStream}; diff --git a/packages/react-flight-dom-webpack/src/ReactFlightDOMServerNode.js b/packages/react-flight-dom-webpack/src/ReactFlightDOMServerNode.js index 9e6fa042647ea..6fde6197f4a31 100644 --- a/packages/react-flight-dom-webpack/src/ReactFlightDOMServerNode.js +++ b/packages/react-flight-dom-webpack/src/ReactFlightDOMServerNode.js @@ -26,6 +26,4 @@ function pipeToNodeWritable(model: ReactModel, destination: Writable): void { startWork(request); } -export default { - pipeToNodeWritable, -}; +export {pipeToNodeWritable}; diff --git a/packages/react-flight/index.js b/packages/react-flight/index.js index 7abd9455bd0aa..67fd8e660489a 100644 --- a/packages/react-flight/index.js +++ b/packages/react-flight/index.js @@ -17,10 +17,4 @@ // `react-server/inline-typed` (which *is*) for the current renderer. // On CI, we run Flow checks for each renderer separately. -'use strict'; - -const ReactFlightClient = require('./src/ReactFlightClient'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFlightClient.default || ReactFlightClient; +export * from './src/ReactFlightClient'; diff --git a/packages/react-interactions/events/context-menu.js b/packages/react-interactions/events/context-menu.js index 3844d285ffc2e..d5a0953841351 100644 --- a/packages/react-interactions/events/context-menu.js +++ b/packages/react-interactions/events/context-menu.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/ContextMenu'); +export * from './src/dom/ContextMenu'; diff --git a/packages/react-interactions/events/focus.js b/packages/react-interactions/events/focus.js index bf20a55d0efed..25ed14068a582 100644 --- a/packages/react-interactions/events/focus.js +++ b/packages/react-interactions/events/focus.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Focus'); +export * from './src/dom/Focus'; diff --git a/packages/react-interactions/events/hover.js b/packages/react-interactions/events/hover.js index 377f71510bb34..f630f2b605d76 100644 --- a/packages/react-interactions/events/hover.js +++ b/packages/react-interactions/events/hover.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Hover'); +export * from './src/dom/Hover'; diff --git a/packages/react-interactions/events/input.js b/packages/react-interactions/events/input.js index 39e7ad3b15eb6..80ce61ef45a85 100644 --- a/packages/react-interactions/events/input.js +++ b/packages/react-interactions/events/input.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Input'); +export * from './src/dom/Input'; diff --git a/packages/react-interactions/events/keyboard.js b/packages/react-interactions/events/keyboard.js index ffb65d759ec37..c86699dfe57ca 100644 --- a/packages/react-interactions/events/keyboard.js +++ b/packages/react-interactions/events/keyboard.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Keyboard'); +export * from './src/dom/Keyboard'; diff --git a/packages/react-interactions/events/press-legacy.js b/packages/react-interactions/events/press-legacy.js index 4b2d60e7f81d0..81398ac3753ba 100644 --- a/packages/react-interactions/events/press-legacy.js +++ b/packages/react-interactions/events/press-legacy.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/PressLegacy'); +export * from './src/dom/PressLegacy'; diff --git a/packages/react-interactions/events/press.js b/packages/react-interactions/events/press.js index c7eee75eeab13..2802eba048116 100644 --- a/packages/react-interactions/events/press.js +++ b/packages/react-interactions/events/press.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Press'); +export * from './src/dom/Press'; diff --git a/packages/react-interactions/events/tap.js b/packages/react-interactions/events/tap.js index 5d3ceede43548..ac39f7c9d3ea6 100644 --- a/packages/react-interactions/events/tap.js +++ b/packages/react-interactions/events/tap.js @@ -7,6 +7,4 @@ * @flow */ -'use strict'; - -module.exports = require('./src/dom/Tap'); +export * from './src/dom/Tap'; diff --git a/packages/react-noop-renderer/flight-client.js b/packages/react-noop-renderer/flight-client.js index dd5e879335d83..d187a2a182335 100644 --- a/packages/react-noop-renderer/flight-client.js +++ b/packages/react-noop-renderer/flight-client.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactNoopFlightClient = require('./src/ReactNoopFlightClient'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactNoopFlightClient.default || ReactNoopFlightClient; +export * from './src/ReactNoopFlightClient'; diff --git a/packages/react-noop-renderer/flight-server.js b/packages/react-noop-renderer/flight-server.js index 2ba00ffe78285..26fc26c941812 100644 --- a/packages/react-noop-renderer/flight-server.js +++ b/packages/react-noop-renderer/flight-server.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactNoopFlightServer = require('./src/ReactNoopFlightServer'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactNoopFlightServer.default || ReactNoopFlightServer; +export * from './src/ReactNoopFlightServer'; diff --git a/packages/react-noop-renderer/index.js b/packages/react-noop-renderer/index.js index 4dfeaf815007b..5653df7645e5c 100644 --- a/packages/react-noop-renderer/index.js +++ b/packages/react-noop-renderer/index.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactNoop = require('./src/ReactNoop'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactNoop.default || ReactNoop; +export * from './src/ReactNoop'; diff --git a/packages/react-noop-renderer/persistent.js b/packages/react-noop-renderer/persistent.js index 1dbbbecdb522e..95ba2f8ed80a9 100644 --- a/packages/react-noop-renderer/persistent.js +++ b/packages/react-noop-renderer/persistent.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactNoopPersistent = require('./src/ReactNoopPersistent'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactNoopPersistent.default || ReactNoopPersistent; +export * from './src/ReactNoopPersistent'; diff --git a/packages/react-noop-renderer/server.js b/packages/react-noop-renderer/server.js index 1665a0767a020..d6c0c892db49b 100644 --- a/packages/react-noop-renderer/server.js +++ b/packages/react-noop-renderer/server.js @@ -7,10 +7,4 @@ * @flow */ -'use strict'; - -const ReactNoopServer = require('./src/ReactNoopServer'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactNoopServer.default || ReactNoopServer; +export * from './src/ReactNoopServer'; diff --git a/packages/react-noop-renderer/src/ReactNoop.js b/packages/react-noop-renderer/src/ReactNoop.js index 7d2695ee58da0..eb9c8468bcb34 100644 --- a/packages/react-noop-renderer/src/ReactNoop.js +++ b/packages/react-noop-renderer/src/ReactNoop.js @@ -17,9 +17,36 @@ import ReactFiberReconciler from 'react-reconciler'; import createReactNoop from './createReactNoop'; -const ReactNoop = createReactNoop( +export const { + _Scheduler, + getChildren, + getPendingChildren, + getOrCreateRootContainer, + createRoot, + createBlockingRoot, + getChildrenAsJSX, + getPendingChildrenAsJSX, + createPortal, + render, + renderLegacySyncRoot, + renderToRootWithID, + unmountRootWithID, + findInstance, + flushNextYield, + flushWithHostCounters, + expire, + flushExpired, + batchedUpdates, + deferredUpdates, + unbatchedUpdates, + discreteUpdates, + flushDiscreteUpdates, + flushSync, + flushPassiveEffects, + act, + dumpTree, + getRoot, +} = createReactNoop( ReactFiberReconciler, // reconciler true, // useMutation ); - -export default ReactNoop; diff --git a/packages/react-noop-renderer/src/ReactNoopFlightClient.js b/packages/react-noop-renderer/src/ReactNoopFlightClient.js index 3e21dcad320aa..eca91cfc46711 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightClient.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightClient.js @@ -38,6 +38,4 @@ function read(source: Source): ReactModelRoot { return getModelRoot(response); } -export default { - read, -}; +export {read}; diff --git a/packages/react-noop-renderer/src/ReactNoopFlightServer.js b/packages/react-noop-renderer/src/ReactNoopFlightServer.js index e5d77117dec8e..6377812dd5413 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightServer.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightServer.js @@ -52,6 +52,4 @@ function render(model: ReactModel): Destination { return destination; } -export default { - render, -}; +export {render}; diff --git a/packages/react-noop-renderer/src/ReactNoopPersistent.js b/packages/react-noop-renderer/src/ReactNoopPersistent.js index c6b63d5e80f19..b093b627dad1e 100644 --- a/packages/react-noop-renderer/src/ReactNoopPersistent.js +++ b/packages/react-noop-renderer/src/ReactNoopPersistent.js @@ -17,9 +17,36 @@ import ReactFiberPersistentReconciler from 'react-reconciler/persistent'; import createReactNoop from './createReactNoop'; -const ReactNoopPersistent = createReactNoop( +export const { + _Scheduler, + getChildren, + getPendingChildren, + getOrCreateRootContainer, + createRoot, + createBlockingRoot, + getChildrenAsJSX, + getPendingChildrenAsJSX, + createPortal, + render, + renderLegacySyncRoot, + renderToRootWithID, + unmountRootWithID, + findInstance, + flushNextYield, + flushWithHostCounters, + expire, + flushExpired, + batchedUpdates, + deferredUpdates, + unbatchedUpdates, + discreteUpdates, + flushDiscreteUpdates, + flushSync, + flushPassiveEffects, + act, + dumpTree, + getRoot, +} = createReactNoop( ReactFiberPersistentReconciler, // reconciler false, // useMutation ); - -export default ReactNoopPersistent; diff --git a/packages/react-noop-renderer/src/ReactNoopServer.js b/packages/react-noop-renderer/src/ReactNoopServer.js index 0fe23437ce8de..b9a668be4a03f 100644 --- a/packages/react-noop-renderer/src/ReactNoopServer.js +++ b/packages/react-noop-renderer/src/ReactNoopServer.js @@ -47,6 +47,4 @@ function render(children: React$Element): Destination { return destination; } -export default { - render, -}; +export {render}; diff --git a/packages/react-reconciler/index.js b/packages/react-reconciler/index.js index 95ebd83871ad1..2fa37357c88eb 100644 --- a/packages/react-reconciler/index.js +++ b/packages/react-reconciler/index.js @@ -17,10 +17,4 @@ // `react-reconciler/inline-typed` (which *is*) for the current renderer. // On CI, we run Flow checks for each renderer separately. -'use strict'; - -const ReactFiberReconciler = require('./src/ReactFiberReconciler'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFiberReconciler.default || ReactFiberReconciler; +export * from './src/ReactFiberReconciler'; diff --git a/packages/react-reconciler/persistent.js b/packages/react-reconciler/persistent.js index 0ee0ed05f6a91..59906bfe44c1f 100644 --- a/packages/react-reconciler/persistent.js +++ b/packages/react-reconciler/persistent.js @@ -9,8 +9,4 @@ // This is the same export as in index.js, // with persistent reconciler flags turned on. -const ReactFiberReconciler = require('./src/ReactFiberReconciler'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFiberReconciler.default || ReactFiberReconciler; +export * from './src/ReactFiberReconciler'; diff --git a/packages/react-refresh/babel.js b/packages/react-refresh/babel.js index 22ba11b55c232..630a6f230d20f 100644 --- a/packages/react-refresh/babel.js +++ b/packages/react-refresh/babel.js @@ -5,9 +5,4 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - -const ReactFreshBabelPlugin = require('./src/ReactFreshBabelPlugin'); - -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFreshBabelPlugin.default || ReactFreshBabelPlugin; +export {default} from './src/ReactFreshBabelPlugin'; diff --git a/packages/react-refresh/runtime.js b/packages/react-refresh/runtime.js index c7a67cd7e6680..4c61fa949351d 100644 --- a/packages/react-refresh/runtime.js +++ b/packages/react-refresh/runtime.js @@ -5,9 +5,4 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - -const ReactFreshRuntime = require('./src/ReactFreshRuntime'); - -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFreshRuntime.default || ReactFreshRuntime; +export * from './src/ReactFreshRuntime'; diff --git a/packages/react-server/flight.js b/packages/react-server/flight.js index 26fd4bd3ed558..74fce7fbe8dd5 100644 --- a/packages/react-server/flight.js +++ b/packages/react-server/flight.js @@ -17,10 +17,4 @@ // `react-server/flight.inline-typed` (which *is*) for the current renderer. // On CI, we run Flow checks for each renderer separately. -'use strict'; - -const ReactFlightServer = require('./src/ReactFlightServer'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFlightServer.default || ReactFlightServer; +export * from './src/ReactFlightServer'; diff --git a/packages/react-server/index.js b/packages/react-server/index.js index 21657bf4e366a..8f547166be4b8 100644 --- a/packages/react-server/index.js +++ b/packages/react-server/index.js @@ -17,10 +17,4 @@ // `react-server/inline-typed` (which *is*) for the current renderer. // On CI, we run Flow checks for each renderer separately. -'use strict'; - -const ReactFizzStreamer = require('./src/ReactFizzStreamer'); - -// TODO: decide on the top-level export form. -// This is hacky but makes it work with both Rollup and Jest. -module.exports = ReactFizzStreamer.default || ReactFizzStreamer; +export * from './src/ReactFizzStreamer'; diff --git a/scripts/rollup/wrappers.js b/scripts/rollup/wrappers.js index 14163935017e7..2d9ee0d20ba30 100644 --- a/scripts/rollup/wrappers.js +++ b/scripts/rollup/wrappers.js @@ -288,10 +288,9 @@ ${license} if (process.env.NODE_ENV !== "production") { module.exports = function $$$reconciler($$$hostConfig) { + var exports = {}; ${source} - var $$$renderer = module.exports; - module.exports = $$$reconciler; - return $$$renderer; + return exports; }; }`; }, @@ -304,10 +303,9 @@ ${source} ${license} */ module.exports = function $$$reconciler($$$hostConfig) { + var exports = {}; ${source} - var $$$renderer = module.exports; - module.exports = $$$reconciler; - return $$$renderer; + return exports; };`; }, };