@@ -9,20 +9,30 @@ const program = {
99 randId : ( ) => Math . random ( ) . toString ( 16 ) . substr ( 2 ) ,
1010
1111 getError : ( res ) => {
12- let obj ;
12+ let error ;
1313 try {
14- obj = JSON . parse ( res . split ( '\n' ) . pop ( ) ) ;
14+ error = JSON . parse ( res . split ( '\n' ) . pop ( ) ) ;
1515 } catch ( err ) {
16- return null ;
16+ return { } ;
1717 }
18- if ( obj && obj . Cause ) return obj ;
19- return null ;
18+ if ( error && error . Cause ) return { error } ;
19+ return { } ;
2020 } ,
2121
22- compile : async ( { fqbn, files } , socket , done ) => {
22+ compile : async ( { fqbn, files, noHex = false } , socket , done ) => {
2323 await tmpFiles . loadTempFiles ( files , socket ) ;
24- const res = await cli ( 'compile' , [ '-v' , '--warnings' , 'all' , '--fqbn' , fqbn , socket . sketchPath ] , socket ) ;
24+ const res = await cli ( 'compile' , [
25+ '-v' ,
26+ '--warnings' , 'all' ,
27+ '--fqbn' , fqbn ,
28+ ...( ! noHex ? [ '--output' , `${ socket . sketchPath } /output` ] : [ ] ) ,
29+ socket . sketchPath ,
30+ ] , socket ) ;
2531 const response = program . getError ( res ) ;
32+ if ( ! response . error && ! noHex ) {
33+ const hex = await fs . readFile ( `${ socket . sketchPath } /output.hex` , 'base64' ) ;
34+ response . hex = hex ;
35+ }
2636 // tmpFiles.cleanup(socket);
2737 if ( done ) done ( response ) ;
2838 return response ;
@@ -72,12 +82,12 @@ const program = {
7282 `${ session . sketchPath } /legacy` ,
7383 session . sketchPath ,
7484 ] ) ;
75- const err = program . getError ( res ) ;
76- if ( err ) {
85+ const response = program . getError ( res ) ;
86+ if ( response . error ) {
7787 return {
7888 success : false ,
79- msg : err . Cause ,
80- code : err . Code ,
89+ msg : response . error . Cause ,
90+ code : response . error . Code ,
8191 stdout : '' ,
8292 stderr : res ,
8393 } ;
0 commit comments