@@ -147,6 +147,15 @@ export const pushUpdatesForDevSession: DevProcessFunction<DevSessionOptions> = a
147147 )
148148 } )
149149 . onStart ( async ( event ) => {
150+ const buildErrors = event . extensionEvents . filter ( ( eve ) => eve . buildResult ?. status === 'error' )
151+ if ( buildErrors . length ) {
152+ const errors = buildErrors . map ( ( error ) => ( {
153+ error : 'Build error. Please review your code and try again.' ,
154+ prefix : error . extension . handle ,
155+ } ) )
156+ await printMultipleErrors ( errors , processOptions . stdout )
157+ throw new AbortError ( 'Dev session aborted, build errors detected in extensions.' )
158+ }
150159 const result = await bundleExtensionsAndUpload ( { ...processOptions , app : event . app } )
151160 await handleDevSessionResult ( result , { ...processOptions , app : event . app } )
152161 } )
@@ -335,6 +344,16 @@ async function printError(message: string, stdout: Writable, prefix?: string) {
335344 await printLogMessage ( outputContent `${ content } ` . value , stdout , prefix )
336345}
337346
347+ async function printMultipleErrors ( errors : { error : string ; prefix : string } [ ] , stdout : Writable ) {
348+ const header = outputToken . errorText ( `❌ Error` )
349+ await printLogMessage ( outputContent `${ header } ` . value , stdout , 'dev-session' )
350+ const messages = errors . map ( ( error ) => {
351+ const content = outputToken . errorText ( `└ ${ error . error } ` )
352+ return printLogMessage ( outputContent `${ content } ` . value , stdout , error . prefix )
353+ } )
354+ await Promise . all ( messages )
355+ }
356+
338357async function printSuccess ( message : string , stdout : Writable ) {
339358 await printLogMessage ( outputContent `${ outputToken . green ( message ) } ` . value , stdout )
340359}
0 commit comments