Skip to content

Commit 1272882

Browse files
committed
Expose prerender() for SSG
1 parent 1839e14 commit 1272882

8 files changed

+48
-16
lines changed

packages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ describe('ReactDOMFizzStatic', () => {
212212
return readText(text);
213213
}
214214

215-
// @gate experimental
215+
// @gate !__WWW__
216216
it('should render a fully static document, send it and then hydrate it', async () => {
217217
function App() {
218218
return (
@@ -230,7 +230,11 @@ describe('ReactDOMFizzStatic', () => {
230230

231231
const result = await promise;
232232

233-
expect(result.postponed).toBe(null);
233+
expect(result.postponed).toBe(
234+
gate(flags => flags.enableHalt || flags.enablePostpone)
235+
? null
236+
: undefined,
237+
);
234238

235239
await act(async () => {
236240
result.prelude.pipe(writable);

packages/react-dom/src/__tests__/ReactDOMFizzStaticBrowser-test.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ describe('ReactDOMFizzStaticBrowser', () => {
16101610
);
16111611
});
16121612

1613-
// @gate experimental
1613+
// @gate !__WWW__
16141614
it('logs an error if onHeaders throws but continues the prerender', async () => {
16151615
const errors = [];
16161616
function onError(error) {
@@ -1627,7 +1627,11 @@ describe('ReactDOMFizzStaticBrowser', () => {
16271627
onError,
16281628
}),
16291629
);
1630-
expect(prerendered.postponed).toBe(null);
1630+
expect(prerendered.postponed).toBe(
1631+
gate(flags => flags.enableHalt || flags.enablePostpone)
1632+
? null
1633+
: undefined,
1634+
);
16311635
expect(errors).toEqual(['bad onHeaders']);
16321636

16331637
await readIntoContainer(prerendered.prelude);

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ import {
3838
createRootFormatContext,
3939
} from 'react-dom-bindings/src/server/ReactFizzConfigDOM';
4040

41+
import {enablePostpone, enableHalt} from 'shared/ReactFeatureFlags';
42+
4143
import {ensureCorrectIsomorphicReactVersion} from '../shared/ensureCorrectIsomorphicReactVersion';
4244
ensureCorrectIsomorphicReactVersion();
4345

@@ -85,10 +87,15 @@ function prerender(
8587
{highWaterMark: 0},
8688
);
8789

88-
const result = {
89-
postponed: getPostponedState(request),
90-
prelude: stream,
91-
};
90+
const result: StaticResult =
91+
enablePostpone || enableHalt
92+
? {
93+
postponed: getPostponedState(request),
94+
prelude: stream,
95+
}
96+
: ({
97+
prelude: stream,
98+
}: any);
9299
resolve(result);
93100
}
94101

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ import {
3838
createRootFormatContext,
3939
} from 'react-dom-bindings/src/server/ReactFizzConfigDOM';
4040

41+
import {enablePostpone, enableHalt} from 'shared/ReactFeatureFlags';
42+
4143
import {ensureCorrectIsomorphicReactVersion} from '../shared/ensureCorrectIsomorphicReactVersion';
4244
ensureCorrectIsomorphicReactVersion();
4345

@@ -85,10 +87,15 @@ function prerender(
8587
{highWaterMark: 0},
8688
);
8789

88-
const result = {
89-
postponed: getPostponedState(request),
90-
prelude: stream,
91-
};
90+
const result: StaticResult =
91+
enablePostpone || enableHalt
92+
? {
93+
postponed: getPostponedState(request),
94+
prelude: stream,
95+
}
96+
: ({
97+
prelude: stream,
98+
}: any);
9299
resolve(result);
93100
}
94101

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ import {
3939
createRootFormatContext,
4040
} from 'react-dom-bindings/src/server/ReactFizzConfigDOM';
4141

42+
import {enablePostpone, enableHalt} from 'shared/ReactFeatureFlags';
43+
4244
import {ensureCorrectIsomorphicReactVersion} from '../shared/ensureCorrectIsomorphicReactVersion';
4345
ensureCorrectIsomorphicReactVersion();
4446

@@ -94,10 +96,15 @@ function prerenderToNodeStream(
9496
});
9597
const writable = createFakeWritable(readable);
9698

97-
const result = {
98-
postponed: getPostponedState(request),
99-
prelude: readable,
100-
};
99+
const result: StaticResult =
100+
enablePostpone || enableHalt
101+
? {
102+
postponed: getPostponedState(request),
103+
prelude: readable,
104+
}
105+
: ({
106+
prelude: readable,
107+
}: any);
101108
resolve(result);
102109
}
103110
const resumableState = createResumableState(

packages/react-dom/src/server/react-dom-server.browser.stable.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
*/
99

1010
export {renderToReadableStream, version} from './ReactDOMFizzServerBrowser.js';
11+
export {prerender} from './ReactDOMFizzStaticBrowser.js';

packages/react-dom/src/server/react-dom-server.edge.stable.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
*/
99

1010
export {renderToReadableStream, version} from './ReactDOMFizzServerEdge.js';
11+
export {prerender} from './ReactDOMFizzStaticEdge.js';

packages/react-dom/src/server/react-dom-server.node.stable.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
*/
99

1010
export {renderToPipeableStream, version} from './ReactDOMFizzServerNode.js';
11+
export {prerenderToNodeStream} from './ReactDOMFizzStaticNode.js';

0 commit comments

Comments
 (0)