mirror of
https://github.com/zebrajr/react.git
synced 2025-12-07 12:20:38 +01:00
We currently have an awkward set up because the server can be used in two ways. Either you can have the server code prebundled using Webpack (what Next.js does in practice) or you can use an unbundled Node.js server (what the reference implementation does). The `/client` part of RSC is actually also available on the server when it's used as a consumer for SSR. This should also be specialized depending on if that server is Node or Edge and if it's bundled or unbundled. Currently we still assume Edge will always be bundled since we don't have an interceptor for modules there. I don't think we'll want to support this many combinations of setups for every bundler but this might be ok for the reference implementation. This PR doesn't actually change anything yet. It just updates the plumbing and the entry points that are built and exposed. In follow ups I'll fork the implementation and add more features. --------- Co-authored-by: dan <dan.abramov@me.com>
258 lines
8.4 KiB
JavaScript
258 lines
8.4 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
'use strict';
|
|
|
|
module.exports = [
|
|
{
|
|
shortName: 'dom-node',
|
|
entryPoints: [
|
|
'react-dom',
|
|
'react-dom/unstable_testing',
|
|
'react-dom/src/server/ReactDOMFizzServerNode.js',
|
|
'react-dom/static.node',
|
|
'react-dom/server-rendering-stub',
|
|
'react-dom/unstable_server-external-runtime',
|
|
'react-server-dom-webpack/server.node.unbundled',
|
|
'react-server-dom-webpack/client.node.unbundled',
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-dom/client',
|
|
'react-dom/server',
|
|
'react-dom/server.node',
|
|
'react-dom/static',
|
|
'react-dom/static.node',
|
|
'react-dom/src/server/ReactDOMFizzServerNode.js', // react-dom/server.node
|
|
'react-dom/src/server/ReactDOMFizzStaticNode.js',
|
|
'react-server-dom-webpack',
|
|
'react-server-dom-webpack/client.node.unbundled',
|
|
'react-server-dom-webpack/server',
|
|
'react-server-dom-webpack/server.node.unbundled',
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerNode.js', // react-server-dom-webpack/server.node
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'react-interactions',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-bun',
|
|
entryPoints: ['react-dom', 'react-dom/src/server/ReactDOMFizzServerBun.js'],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom/server.bun',
|
|
'react-dom/src/server/ReactDOMFizzServerBun.js',
|
|
'react-dom-bindings',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-browser',
|
|
entryPoints: [
|
|
'react-dom',
|
|
'react-dom/unstable_testing',
|
|
'react-dom/src/server/ReactDOMFizzServerBrowser.js',
|
|
'react-dom/static.browser',
|
|
'react-dom/server-rendering-stub',
|
|
'react-dom/unstable_server-external-runtime',
|
|
'react-server-dom-webpack/server.browser',
|
|
'react-server-dom-webpack/client.browser',
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-dom/client',
|
|
'react-dom/server.browser',
|
|
'react-dom/static.browser',
|
|
'react-dom/unstable_testing',
|
|
'react-dom/src/server/ReactDOMFizzServerBrowser.js', // react-dom/server.browser
|
|
'react-dom/src/server/ReactDOMFizzStaticBrowser.js',
|
|
'react-server-dom-webpack',
|
|
'react-server-dom-webpack/client',
|
|
'react-server-dom-webpack/client.browser',
|
|
'react-server-dom-webpack/server.browser',
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js', // react-server-dom-webpack/server.browser
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-edge-webpack',
|
|
entryPoints: [
|
|
'react-dom/src/server/ReactDOMFizzServerEdge.js',
|
|
'react-dom/static.edge',
|
|
'react-server-dom-webpack/server.edge',
|
|
'react-server-dom-webpack/client.edge',
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-dom/client',
|
|
'react-dom/server.edge',
|
|
'react-dom/static.edge',
|
|
'react-dom/unstable_testing',
|
|
'react-dom/src/server/ReactDOMFizzServerEdge.js', // react-dom/server.edge
|
|
'react-dom/src/server/ReactDOMFizzStaticEdge.js',
|
|
'react-server-dom-webpack',
|
|
'react-server-dom-webpack/client.edge',
|
|
'react-server-dom-webpack/server.edge',
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/server.edge
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-node-webpack',
|
|
entryPoints: [
|
|
'react-server-dom-webpack/server.node',
|
|
'react-server-dom-webpack/client.node',
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-dom/client',
|
|
'react-dom/server',
|
|
'react-dom/server.node',
|
|
'react-dom/static',
|
|
'react-dom/static.node',
|
|
'react-dom/src/server/ReactDOMFizzServerNode.js', // react-dom/server.node
|
|
'react-dom/src/server/ReactDOMFizzStaticNode.js',
|
|
'react-server-dom-webpack',
|
|
'react-server-dom-webpack/client.node',
|
|
'react-server-dom-webpack/server',
|
|
'react-server-dom-webpack/server.node',
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerNode.js', // react-server-dom-webpack/server.node
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'react-interactions',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-legacy',
|
|
entryPoints: [
|
|
'react-dom/src/server/ReactDOMLegacyServerBrowser.js', // react-dom/server.browser
|
|
'react-dom/src/server/ReactDOMLegacyServerNode.js', // react-dom/server.node
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-server-dom-webpack',
|
|
'react-dom/src/server/ReactDOMLegacyServerImpl.js', // not an entrypoint, but only usable in *Brower and *Node files
|
|
'react-dom/src/server/ReactDOMLegacyServerBrowser.js', // react-dom/server.browser
|
|
'react-dom/src/server/ReactDOMLegacyServerNode.js', // react-dom/server.node
|
|
'react-dom/src/server/ReactDOMLegacyServerNode.classic.fb.js',
|
|
'react-dom/src/server/ReactDOMLegacyServerNodeStream.js', // file indirection to support partial forking of some methods in *Node
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'art',
|
|
entryPoints: ['react-art'],
|
|
paths: ['react-art'],
|
|
isFlowTyped: false, // TODO: type it.
|
|
isServerSupported: false,
|
|
},
|
|
{
|
|
shortName: 'native',
|
|
entryPoints: ['react-native-renderer'],
|
|
paths: ['react-native-renderer'],
|
|
isFlowTyped: true,
|
|
isServerSupported: false,
|
|
},
|
|
{
|
|
shortName: 'fabric',
|
|
entryPoints: ['react-native-renderer/fabric'],
|
|
paths: ['react-native-renderer'],
|
|
isFlowTyped: true,
|
|
isServerSupported: false,
|
|
},
|
|
{
|
|
shortName: 'test',
|
|
entryPoints: ['react-test-renderer'],
|
|
paths: ['react-test-renderer'],
|
|
isFlowTyped: true,
|
|
isServerSupported: false,
|
|
},
|
|
{
|
|
shortName: 'dom-relay',
|
|
entryPoints: [
|
|
'react-server-dom-relay',
|
|
'react-server-dom-relay/server',
|
|
'react-server-dom-relay/src/ReactDOMServerFB.js',
|
|
],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-server-dom-relay',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'native-relay',
|
|
entryPoints: [
|
|
'react-server-native-relay',
|
|
'react-server-native-relay/server',
|
|
],
|
|
paths: [
|
|
'react-native-renderer',
|
|
'react-server-native-relay',
|
|
// this is included here so that it's not included in the main native check
|
|
// remove this when it's added to the main native renderer.
|
|
'react-native-renderer/src/server',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'custom',
|
|
entryPoints: [
|
|
'react-reconciler',
|
|
'react-client/flight',
|
|
'react-server',
|
|
'react-server/flight',
|
|
],
|
|
paths: [
|
|
'react-client/flight',
|
|
'react-server/flight',
|
|
'react-client/src/ReactFlightClientStream.js', // We can only type check this in streaming configurations.
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
];
|