Skip to content

Commit a364e60

Browse files
sebmarkbageAndyPengc12
authored andcommitted
[Fizz] Split createRequest into createRequest, createPrerenderRequest and resumeRequest (facebook#27342)
Just moving some internal code around again. I originally encoded what type of work using startRender vs startPrerender. I had intended to do more forking of the work loop but we've decided not to go with that strategy. It also turns out that forking when we start working is actually too late because of a subtle thing where you can call abort before work begins. Therefore it's important that starting the work comes later.
1 parent dfb3c4d commit a364e60

18 files changed

+150
-59
lines changed

packages/react-dom/src/server/ReactDOMFizzServerBrowser.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import ReactVersion from 'shared/ReactVersion';
1616

1717
import {
1818
createRequest,
19-
startRender,
19+
resumeRequest,
20+
startWork,
2021
startFlowing,
2122
abort,
2223
} from 'react-server/src/ReactFizzServer';
@@ -129,7 +130,7 @@ function renderToReadableStream(
129130
signal.addEventListener('abort', listener);
130131
}
131132
}
132-
startRender(request);
133+
startWork(request);
133134
});
134135
}
135136

@@ -171,16 +172,14 @@ function resume(
171172
allReady.catch(() => {});
172173
reject(error);
173174
}
174-
const request = createRequest(
175+
const request = resumeRequest(
175176
children,
176-
postponedState.resumableState,
177+
postponedState,
177178
createRenderState(
178179
postponedState.resumableState,
179180
options ? options.nonce : undefined,
180181
undefined, // importMap
181182
),
182-
postponedState.rootFormatContext,
183-
postponedState.progressiveChunkSize,
184183
options ? options.onError : undefined,
185184
onAllReady,
186185
onShellReady,
@@ -200,7 +199,7 @@ function resume(
200199
signal.addEventListener('abort', listener);
201200
}
202201
}
203-
startRender(request);
202+
startWork(request);
204203
});
205204
}
206205

packages/react-dom/src/server/ReactDOMFizzServerBun.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import ReactVersion from 'shared/ReactVersion';
1515

1616
import {
1717
createRequest,
18-
startRender,
18+
startWork,
1919
startFlowing,
2020
abort,
2121
} from 'react-server/src/ReactFizzServer';
@@ -121,7 +121,7 @@ function renderToReadableStream(
121121
signal.addEventListener('abort', listener);
122122
}
123123
}
124-
startRender(request);
124+
startWork(request);
125125
});
126126
}
127127

packages/react-dom/src/server/ReactDOMFizzServerEdge.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import ReactVersion from 'shared/ReactVersion';
1616

1717
import {
1818
createRequest,
19-
startRender,
19+
resumeRequest,
20+
startWork,
2021
startFlowing,
2122
abort,
2223
} from 'react-server/src/ReactFizzServer';
@@ -129,7 +130,7 @@ function renderToReadableStream(
129130
signal.addEventListener('abort', listener);
130131
}
131132
}
132-
startRender(request);
133+
startWork(request);
133134
});
134135
}
135136

@@ -171,16 +172,14 @@ function resume(
171172
allReady.catch(() => {});
172173
reject(error);
173174
}
174-
const request = createRequest(
175+
const request = resumeRequest(
175176
children,
176-
postponedState.resumableState,
177+
postponedState,
177178
createRenderState(
178179
postponedState.resumableState,
179180
options ? options.nonce : undefined,
180181
undefined, // importMap
181182
),
182-
postponedState.rootFormatContext,
183-
postponedState.progressiveChunkSize,
184183
options ? options.onError : undefined,
185184
onAllReady,
186185
onShellReady,
@@ -200,7 +199,7 @@ function resume(
200199
signal.addEventListener('abort', listener);
201200
}
202201
}
203-
startRender(request);
202+
startWork(request);
204203
});
205204
}
206205

packages/react-dom/src/server/ReactDOMFizzServerNode.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import ReactVersion from 'shared/ReactVersion';
1818

1919
import {
2020
createRequest,
21-
startRender,
21+
resumeRequest,
22+
startWork,
2223
startFlowing,
2324
abort,
2425
} from 'react-server/src/ReactFizzServer';
@@ -105,7 +106,7 @@ function renderToPipeableStream(
105106
): PipeableStream {
106107
const request = createRequestImpl(children, options);
107108
let hasStartedFlowing = false;
108-
startRender(request);
109+
startWork(request);
109110
return {
110111
pipe<T: Writable>(destination: T): T {
111112
if (hasStartedFlowing) {
@@ -140,16 +141,14 @@ function resumeRequestImpl(
140141
postponedState: PostponedState,
141142
options: void | ResumeOptions,
142143
) {
143-
return createRequest(
144+
return resumeRequest(
144145
children,
145-
postponedState.resumableState,
146+
postponedState,
146147
createRenderState(
147148
postponedState.resumableState,
148149
options ? options.nonce : undefined,
149150
undefined, // importMap
150151
),
151-
postponedState.rootFormatContext,
152-
postponedState.progressiveChunkSize,
153152
options ? options.onError : undefined,
154153
options ? options.onAllReady : undefined,
155154
options ? options.onShellReady : undefined,
@@ -166,7 +165,7 @@ function resumeToPipeableStream(
166165
): PipeableStream {
167166
const request = resumeRequestImpl(children, postponedState, options);
168167
let hasStartedFlowing = false;
169-
startRender(request);
168+
startWork(request);
170169
return {
171170
pipe<T: Writable>(destination: T): T {
172171
if (hasStartedFlowing) {

packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import type {ImportMap} from '../shared/ReactDOMTypes';
1515
import ReactVersion from 'shared/ReactVersion';
1616

1717
import {
18-
createRequest,
19-
startPrerender,
18+
createPrerenderRequest,
19+
startWork,
2020
startFlowing,
2121
abort,
2222
getPostponedState,
@@ -80,7 +80,7 @@ function prerender(
8080
options ? options.bootstrapModules : undefined,
8181
options ? options.unstable_externalRuntimeSrc : undefined,
8282
);
83-
const request = createRequest(
83+
const request = createPrerenderRequest(
8484
children,
8585
resources,
8686
createRenderState(
@@ -109,7 +109,7 @@ function prerender(
109109
signal.addEventListener('abort', listener);
110110
}
111111
}
112-
startPrerender(request);
112+
startWork(request);
113113
});
114114
}
115115

packages/react-dom/src/server/ReactDOMFizzStaticEdge.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import type {ImportMap} from '../shared/ReactDOMTypes';
1515
import ReactVersion from 'shared/ReactVersion';
1616

1717
import {
18-
createRequest,
19-
startPrerender,
18+
createPrerenderRequest,
19+
startWork,
2020
startFlowing,
2121
abort,
2222
getPostponedState,
@@ -80,7 +80,7 @@ function prerender(
8080
options ? options.bootstrapModules : undefined,
8181
options ? options.unstable_externalRuntimeSrc : undefined,
8282
);
83-
const request = createRequest(
83+
const request = createPrerenderRequest(
8484
children,
8585
resources,
8686
createRenderState(
@@ -109,7 +109,7 @@ function prerender(
109109
signal.addEventListener('abort', listener);
110110
}
111111
}
112-
startPrerender(request);
112+
startWork(request);
113113
});
114114
}
115115

packages/react-dom/src/server/ReactDOMFizzStaticNode.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import {Writable, Readable} from 'stream';
1717
import ReactVersion from 'shared/ReactVersion';
1818

1919
import {
20-
createRequest,
21-
startPrerender,
20+
createPrerenderRequest,
21+
startWork,
2222
startFlowing,
2323
abort,
2424
getPostponedState,
@@ -94,7 +94,7 @@ function prerenderToNodeStream(
9494
options ? options.bootstrapModules : undefined,
9595
options ? options.unstable_externalRuntimeSrc : undefined,
9696
);
97-
const request = createRequest(
97+
const request = createPrerenderRequest(
9898
children,
9999
resumableState,
100100
createRenderState(
@@ -123,7 +123,7 @@ function prerenderToNodeStream(
123123
signal.addEventListener('abort', listener);
124124
}
125125
}
126-
startPrerender(request);
126+
startWork(request);
127127
});
128128
}
129129

packages/react-dom/src/server/ReactDOMLegacyServerImpl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type {ReactNodeList} from 'shared/ReactTypes';
1313

1414
import {
1515
createRequest,
16-
startRender,
16+
startWork,
1717
startFlowing,
1818
abort,
1919
} from 'react-server/src/ReactFizzServer';
@@ -81,7 +81,7 @@ function renderToStringImpl(
8181
undefined,
8282
undefined,
8383
);
84-
startRender(request);
84+
startWork(request);
8585
// If anything suspended and is still pending, we'll abort it before writing.
8686
// That way we write only client-rendered boundaries from the start.
8787
abort(request, abortReason);

packages/react-dom/src/server/ReactDOMLegacyServerNodeStream.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type {Request} from 'react-server/src/ReactFizzServer';
1313

1414
import {
1515
createRequest,
16-
startRender,
16+
startWork,
1717
startFlowing,
1818
abort,
1919
} from 'react-server/src/ReactFizzServer';
@@ -92,7 +92,7 @@ function renderToNodeStreamImpl(
9292
undefined,
9393
);
9494
destination.request = request;
95-
startRender(request);
95+
startWork(request);
9696
return destination;
9797
}
9898

packages/react-noop-renderer/src/ReactNoopFlightServer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function render(model: ReactClientValue, options?: Options): Destination {
8484
options ? options.context : undefined,
8585
options ? options.identifierPrefix : undefined,
8686
);
87-
ReactNoopFlightServer.startRender(request);
87+
ReactNoopFlightServer.startWork(request);
8888
ReactNoopFlightServer.startFlowing(request, destination);
8989
return destination;
9090
}

0 commit comments

Comments
 (0)