@@ -22,6 +22,7 @@ export class APIClient {
2222  private  closed  =  false ; 
2323  private  _running  =  false ; 
2424  private  _lastNanos  =  0 ; 
25+   private  readonly  apiEvents  =  new  EventTarget ( ) ; 
2526  private  readonly  pendingCommands  =  new  Map < 
2627    string , 
2728    [ ( result : any )  =>  void ,  ( error : Error )  =>  void ] 
@@ -30,7 +31,6 @@ export class APIClient {
3031  readonly  connected ; 
3132
3233  onConnected ?: ( helloMessage : APIHello )  =>  void ; 
33-   onEvent ?: ( event : APIEvent )  =>  void ; 
3434  onError ?: ( error : APIError )  =>  void ; 
3535
3636  constructor ( 
@@ -139,9 +139,9 @@ export class APIClient {
139139    return  await  this . sendCommand ( 'sim:pause' ) ; 
140140  } 
141141
142-   async  simResume ( pauseAfter ?: number )  { 
142+   async  simResume ( pauseAfter ?: number ,   {  waitForBytes  } :  {   waitForBytes ?:  number [ ]   }   =   { } )  { 
143143    this . _running  =  true ; 
144-     return  await  this . sendCommand ( 'sim:resume' ,  {  pauseAfter } ) ; 
144+     return  await  this . sendCommand ( 'sim:resume' ,  {  pauseAfter,  waitForBytes  } ) ; 
145145  } 
146146
147147  async  simRestart ( {  pause } : {  pause ?: boolean  }  =  { } )  { 
@@ -253,7 +253,21 @@ export class APIClient {
253253      this . _running  =  false ; 
254254    } 
255255    this . _lastNanos  =  message . nanos ; 
256-     this . onEvent ?.( message ) ; 
256+     this . apiEvents . dispatchEvent ( new  CustomEvent < APIEvent > ( message . event ,  {  detail : message  } ) ) ; 
257+   } 
258+ 
259+   listen ( event : string ,  listener : ( event : APIEvent )  =>  void ,  options ?: AddEventListenerOptions )  { 
260+     const  callback  =  ( e : CustomEventInit < APIEvent > )  =>  { 
261+       if  ( e . detail  ==  null )  { 
262+         return ; 
263+       } 
264+       listener ( e . detail ) ; 
265+     } ; 
266+ 
267+     this . apiEvents . addEventListener ( event ,  callback ,  options ) ; 
268+     return  ( )  =>  { 
269+       this . apiEvents . removeEventListener ( event ,  callback ,  options ) ; 
270+     } ; 
257271  } 
258272
259273  processResponse ( message : APIResponse )  { 
0 commit comments