@@ -160,15 +160,16 @@ const streamRenderReactComponent = (
160160 const { readableStream, pipeToTransform, writeChunk, emitError, endStream } =
161161 transformRenderStreamChunksToResultObject ( renderState ) ;
162162
163- const onShellError = ( e : unknown ) => {
164- const error = convertToError ( e ) ;
163+ const reportError = ( error : Error ) => {
165164 renderState . hasErrors = true ;
166165 renderState . error = error ;
167166
168167 if ( throwJsErrors ) {
169168 emitError ( error ) ;
170169 }
170+ } ;
171171
172+ const sendErrorHtml = ( error : Error ) => {
172173 const errorHtml = handleError ( { e : error , name : componentName , serverSide : true } ) ;
173174 writeChunk ( errorHtml ) ;
174175 endStream ( ) ;
@@ -189,26 +190,24 @@ const streamRenderReactComponent = (
189190 }
190191
191192 const renderingStream = ReactDOMServer . renderToPipeableStream ( reactRenderedElement , {
192- onShellError,
193+ onShellError ( e ) {
194+ sendErrorHtml ( convertToError ( e ) ) ;
195+ } ,
193196 onShellReady ( ) {
194197 renderState . isShellReady = true ;
195198 pipeToTransform ( renderingStream ) ;
196199 } ,
197200 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 ) ) ;
207202 } ,
208203 identifierPrefix : domNodeId ,
209204 } ) ;
210205 } )
211- . catch ( onShellError ) ;
206+ . catch ( ( e : unknown ) => {
207+ const error = convertToError ( e ) ;
208+ reportError ( error ) ;
209+ sendErrorHtml ( error ) ;
210+ } ) ;
212211
213212 return readableStream ;
214213} ;
0 commit comments