Skip to content

Commit bdc72ed

Browse files
Fix RSC stream parsing to handle incomplete chunks
- Introduce `lastIncompleteChunk` to preserve partial JSON data between stream reads - Ensure complete JSON chunks are processed by splitting on newlines - Handle cases where the last chunk is not terminated with a newline
1 parent 44dee52 commit bdc72ed

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

node_package/src/transformRSCStreamAndReplayConsoleLogs.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,18 @@ export default function transformRSCStreamAndReplayConsoleLogs(stream: ReadableS
55
const decoder = new TextDecoder();
66
const encoder = new TextEncoder();
77

8+
let lastIncompleteChunk = '';
89
let { value, done } = await reader.read();
910
while (!done) {
10-
const decodedValue = decoder.decode(value);
11-
const jsonChunks = decodedValue.split('\n')
11+
const decodedValue = lastIncompleteChunk + decoder.decode(value);
12+
const chunks = decodedValue.split('\n');
13+
if (!decodedValue.endsWith('\n')) {
14+
lastIncompleteChunk = chunks.pop() ?? '';
15+
} else {
16+
lastIncompleteChunk = '';
17+
}
18+
19+
const jsonChunks = chunks
1220
.filter(line => line.trim() !== '')
1321
.map((line) => {
1422
try {

0 commit comments

Comments
 (0)