From 549e41883046def7033a6939ecc9817a22847a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Thu, 27 Feb 2020 17:18:55 -0800 Subject: [PATCH] Move remaining things to named exports (#18165) * Move remaining things to named exports The interesting case here is the noop renderers. The wrappers around the reconciler now changed to use a local export that gets mutated. ReactNoop and ReactNoopPersistent now have to destructure the object to list out the names it's going to export. We should probably refactor ReactNoop away from createReactNoop. Especially since it's also not Flow typed. * Switch interactions to star exports This will have esModule compatibility flag on them. They should ideally export default instead. --- packages/eslint-plugin-react-hooks/index.js | 4 +-- packages/react-art/Circle.js | 6 +--- packages/react-art/Rectangle.js | 6 +--- packages/react-art/Wedge.js | 6 +--- packages/react-art/index.js | 6 +--- .../react-art/src/__tests__/ReactART-test.js | 23 +++++++------ packages/react-debug-tools/index.js | 7 +--- packages/react-flight-dom-webpack/index.js | 8 +---- .../server.browser.js | 9 +---- packages/react-flight-dom-webpack/server.js | 4 +-- .../react-flight-dom-webpack/server.node.js | 8 +---- .../src/ReactFlightDOMClient.js | 6 +--- .../src/ReactFlightDOMServerBrowser.js | 4 +-- .../src/ReactFlightDOMServerNode.js | 4 +-- packages/react-flight/index.js | 8 +---- .../react-interactions/events/context-menu.js | 4 +-- packages/react-interactions/events/focus.js | 4 +-- packages/react-interactions/events/hover.js | 4 +-- packages/react-interactions/events/input.js | 4 +-- .../react-interactions/events/keyboard.js | 4 +-- .../react-interactions/events/press-legacy.js | 4 +-- packages/react-interactions/events/press.js | 4 +-- packages/react-interactions/events/tap.js | 4 +-- packages/react-noop-renderer/flight-client.js | 8 +---- packages/react-noop-renderer/flight-server.js | 8 +---- packages/react-noop-renderer/index.js | 8 +---- packages/react-noop-renderer/persistent.js | 8 +---- packages/react-noop-renderer/server.js | 8 +---- packages/react-noop-renderer/src/ReactNoop.js | 33 +++++++++++++++++-- .../src/ReactNoopFlightClient.js | 4 +-- .../src/ReactNoopFlightServer.js | 4 +-- .../src/ReactNoopPersistent.js | 33 +++++++++++++++++-- .../src/ReactNoopServer.js | 4 +-- packages/react-reconciler/index.js | 8 +---- packages/react-reconciler/persistent.js | 6 +--- packages/react-refresh/babel.js | 7 +--- packages/react-refresh/runtime.js | 7 +--- packages/react-server/flight.js | 8 +---- packages/react-server/index.js | 8 +---- scripts/rollup/wrappers.js | 10 +++--- 40 files changed, 113 insertions(+), 200 deletions(-) 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; };`; }, };