Skip to content

Commit 20a71db

Browse files
Update RSCClientRoot and related files to use RSCPayloadChunk type for improved type safety in RSC streaming and handling.
1 parent 207fe72 commit 20a71db

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

node_package/src/RSCClientRoot.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as ReactDOMClient from 'react-dom/client';
77
import { createFromReadableStream } from 'react-on-rails-rsc/client';
88
import { fetch } from './utils';
99
import transformRSCStreamAndReplayConsoleLogs from './transformRSCStreamAndReplayConsoleLogs';
10-
import { RailsContext, RenderFunction, RenderResult } from './types';
10+
import { RailsContext, RenderFunction, RSCPayloadChunk } from './types';
1111

1212
const { use } = React;
1313

@@ -44,14 +44,14 @@ const fetchRSC = ({ componentName, rscPayloadGenerationUrlPath, componentProps }
4444
};
4545

4646
const createRSCStreamFromPage = () => {
47-
let streamController: ReadableStreamController<RenderResult> | undefined;
48-
const stream = new ReadableStream<RenderResult>({
47+
let streamController: ReadableStreamController<RSCPayloadChunk> | undefined;
48+
const stream = new ReadableStream<RSCPayloadChunk>({
4949
start(controller) {
5050
if (typeof window === 'undefined') {
5151
return;
5252
}
5353
const handleChunk = (chunk: unknown) => {
54-
controller.enqueue(chunk as RenderResult);
54+
controller.enqueue(chunk as RSCPayloadChunk);
5555
};
5656
if (!window.__FLIGHT_DATA) {
5757
window.__FLIGHT_DATA = [];

node_package/src/streamServerRenderedReactComponent.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { PassThrough, Readable } from 'stream';
44

55
import ComponentRegistry from './ComponentRegistry';
66
import createReactOutput from './createReactOutput';
7-
import { isServerRenderHash } from './isServerRenderResult';
7+
import { isServerRenderHash, isPromise } from './isServerRenderResult';
88
import buildConsoleReplay from './buildConsoleReplay';
99
import handleError from './handleError';
1010
import { createResultObject, convertToError, validateComponent } from './serverRenderUtils';

node_package/src/transformRSCStreamAndReplayConsoleLogs.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { RSCPayloadChunk } from './types';
22

33
export default function transformRSCStreamAndReplayConsoleLogs(
4-
stream: ReadableStream<Uint8Array | RenderResult>,
4+
stream: ReadableStream<Uint8Array | RSCPayloadChunk>,
55
) {
66
return new ReadableStream({
77
async start(controller) {
@@ -12,7 +12,7 @@ export default function transformRSCStreamAndReplayConsoleLogs(
1212
let lastIncompleteChunk = '';
1313
let { value, done } = await reader.read();
1414

15-
const handleJsonChunk = (chunk: RenderResult) => {
15+
const handleJsonChunk = (chunk: RSCPayloadChunk) => {
1616
const { html, consoleReplayScript = '' } = chunk;
1717
controller.enqueue(encoder.encode(html ?? ''));
1818

0 commit comments

Comments
 (0)