mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
This exposes a `resume()` API to go with the `prerender()` (only in experimental). It doesn't work yet since we don't yet emit the postponed state so not yet tested. The main thing this does is rename ResponseState->RenderState and Resources->ResumableState. We separated out resources into a separate concept preemptively since it seemed like separate enough but probably doesn't warrant being a separate concept. The result is that we have a per RenderState in the Config which is really just temporary state and things that must be flushed completely in the prerender. Most things should be ResumableState. Most options are specified in the `prerender()` and transferred into the `resume()` but certain options that are unique per request can't be. Notably `nonce` is special. This means that bootstrap scripts and external runtime can't use `nonce` in this mode. They need to have a CSP configured to deal with external scripts, but not inline. We need to be able to restore state of things that we've already emitted in the prerender. We could have separate snapshot/restore methods that does this work when it happens but that means we have to explicitly do that work. This design is trying to keep to the principle that we just work with resumable data structures instead so that we're designing for it with every feature. It also makes restoring faster since it's just straight into the data structure. This is not yet a serializable format. That can be done in a follow up. We also need to vet that each step makes sense. Notably stylesToHoist is a bit unclear how it'll work.
293 lines
9.3 KiB
JavaScript
293 lines
9.3 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/react-dom-server.node.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/react-dom-server.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-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/react-dom-server.bun.js'],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom/server.bun',
|
|
'react-dom/src/server/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/react-dom-server.browser.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/react-dom-server.browser',
|
|
'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/ReactFlightDOMClientBrowser.js', // react-server-dom-webpack/client.browser
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerBrowser.js', // react-server-dom-webpack/server.browser
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-browser-esm',
|
|
entryPoints: ['react-server-dom-esm/client.browser'],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom/client',
|
|
'react-dom/server',
|
|
'react-dom/server.node',
|
|
'react-dom-bindings',
|
|
'react-server-dom-esm',
|
|
'react-server-dom-esm/client',
|
|
'react-server-dom-esm/client.browser',
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'react-interactions',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-edge-webpack',
|
|
entryPoints: [
|
|
'react-dom/src/server/react-dom-server.edge.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/react-dom-server.edge',
|
|
'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/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.edge
|
|
'react-server-dom-webpack/src/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/server.edge
|
|
'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/react-dom-server.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-server-dom-webpack/node-register',
|
|
'react-server-dom-webpack/src/ReactFlightWebpackNodeRegister.js',
|
|
'react-devtools',
|
|
'react-devtools-core',
|
|
'react-devtools-shell',
|
|
'react-devtools-shared',
|
|
'react-interactions',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-node-esm',
|
|
entryPoints: [
|
|
'react-server-dom-esm/server.node',
|
|
'react-server-dom-esm/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/react-dom-server.node',
|
|
'react-dom/src/server/ReactDOMFizzServerNode.js', // react-dom/server.node
|
|
'react-dom/src/server/ReactDOMFizzStaticNode.js',
|
|
'react-server-dom-esm',
|
|
'react-server-dom-esm/client.node',
|
|
'react-server-dom-esm/server',
|
|
'react-server-dom-esm/server.node',
|
|
'react-server-dom-esm/src/ReactFlightDOMServerNode.js', // react-server-dom-webpack/server.node
|
|
'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
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
{
|
|
shortName: 'dom-fb',
|
|
entryPoints: ['react-server-dom-fb/src/ReactDOMServerFB.js'],
|
|
paths: [
|
|
'react-dom',
|
|
'react-dom-bindings',
|
|
'react-server-dom-fb',
|
|
'shared/ReactDOMSharedInternals',
|
|
],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
isFlightSupported: 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: 'art',
|
|
entryPoints: ['react-art'],
|
|
paths: ['react-art'],
|
|
isFlowTyped: false, // TODO: type it.
|
|
isServerSupported: false,
|
|
},
|
|
{
|
|
shortName: 'custom',
|
|
entryPoints: [
|
|
'react-reconciler',
|
|
'react-client/flight',
|
|
'react-server',
|
|
'react-server/flight',
|
|
],
|
|
paths: ['react-client/flight', 'react-server/flight'],
|
|
isFlowTyped: true,
|
|
isServerSupported: true,
|
|
},
|
|
];
|