@@ -160,15 +160,16 @@ const streamRenderReactComponent = (
160
160
const { readableStream, pipeToTransform, writeChunk, emitError, endStream } =
161
161
transformRenderStreamChunksToResultObject ( renderState ) ;
162
162
163
- const onShellError = ( e : unknown ) => {
164
- const error = convertToError ( e ) ;
163
+ const reportError = ( error : Error ) => {
165
164
renderState . hasErrors = true ;
166
165
renderState . error = error ;
167
166
168
167
if ( throwJsErrors ) {
169
168
emitError ( error ) ;
170
169
}
170
+ } ;
171
171
172
+ const sendErrorHtml = ( error : Error ) => {
172
173
const errorHtml = handleError ( { e : error , name : componentName , serverSide : true } ) ;
173
174
writeChunk ( errorHtml ) ;
174
175
endStream ( ) ;
@@ -189,26 +190,24 @@ const streamRenderReactComponent = (
189
190
}
190
191
191
192
const renderingStream = ReactDOMServer . renderToPipeableStream ( reactRenderedElement , {
192
- onShellError,
193
+ onShellError ( e ) {
194
+ sendErrorHtml ( convertToError ( e ) ) ;
195
+ } ,
193
196
onShellReady ( ) {
194
197
renderState . isShellReady = true ;
195
198
pipeToTransform ( renderingStream ) ;
196
199
} ,
197
200
onError ( e ) {
198
- if ( ! renderState . isShellReady ) {
199
- return ;
200
- }
201
- const error = convertToError ( e ) ;
202
- if ( throwJsErrors ) {
203
- emitError ( error ) ;
204
- }
205
- renderState . hasErrors = true ;
206
- renderState . error = error ;
201
+ reportError ( convertToError ( e ) ) ;
207
202
} ,
208
203
identifierPrefix : domNodeId ,
209
204
} ) ;
210
205
} )
211
- . catch ( onShellError ) ;
206
+ . catch ( ( e : unknown ) => {
207
+ const error = convertToError ( e ) ;
208
+ reportError ( error ) ;
209
+ sendErrorHtml ( error ) ;
210
+ } ) ;
212
211
213
212
return readableStream ;
214
213
} ;
0 commit comments