1- import { WorkflowDataService } from "../services/workflow/workflow-data-service" ;
21import { BuildPlatformService } from "../services/platform/build-platform-service" ;
2+ import { DeviceDebugAppService } from "../services/device/device-debug-app-service" ;
33import { DeviceInstallAppService } from "../services/device/device-install-app-service" ;
44import { DeviceRefreshAppService } from "../services/device/device-refresh-app-service" ;
5- import { LiveSyncServiceResolver } from "../resolvers/livesync-service-resolver" ;
65import { EventEmitter } from "events" ;
6+ import { LiveSyncServiceResolver } from "../resolvers/livesync-service-resolver" ;
77import { RunOnDevicesDataService } from "../services/run-on-devices-data-service" ;
8- import { RunOnDeviceEvents } from "../constants" ;
8+ import { RunOnDevicesEmitter } from "../run-on-devices-emitter" ;
9+ import { WorkflowDataService } from "../services/workflow/workflow-data-service" ;
910
1011export class RunOnDevicesController extends EventEmitter {
1112 constructor (
1213 private $buildPlatformService : BuildPlatformService ,
14+ private $deviceDebugAppService : DeviceDebugAppService ,
1315 private $deviceInstallAppService : DeviceInstallAppService ,
1416 private $deviceRefreshAppService : DeviceRefreshAppService ,
1517 private $devicesService : Mobile . IDevicesService ,
1618 public $hooksService : IHooksService ,
1719 private $liveSyncServiceResolver : LiveSyncServiceResolver ,
1820 private $logger : ILogger ,
1921 private $runOnDevicesDataService : RunOnDevicesDataService ,
22+ private $runOnDevicesEmitter : RunOnDevicesEmitter ,
2023 private $workflowDataService : WorkflowDataService
2124 ) { super ( ) ; }
2225
@@ -54,24 +57,26 @@ export class RunOnDevicesController extends EventEmitter {
5457 const { force, useHotModuleReload, skipWatcher } = liveSyncInfo ;
5558 const liveSyncResultInfo = await platformLiveSyncService . fullSync ( { force, useHotModuleReload, projectData, device, watch : ! skipWatcher , liveSyncDeviceInfo : deviceDescriptor } ) ;
5659
57- await this . $deviceRefreshAppService . refreshApplication ( deviceDescriptor , projectData , liveSyncResultInfo , platformLiveSyncService , this ) ;
60+ const refreshInfo = await this . $deviceRefreshAppService . refreshApplicationWithoutDebug ( projectData , liveSyncResultInfo , deviceDescriptor ) ;
61+
62+ this . $runOnDevicesEmitter . emitRunOnDeviceExecutedEvent ( projectData , liveSyncResultInfo . deviceAppData . device , {
63+ syncedFiles : liveSyncResultInfo . modifiedFilesData . map ( m => m . getLocalPath ( ) ) ,
64+ isFullSync : liveSyncResultInfo . isFullSync
65+ } ) ;
66+
67+ if ( liveSyncResultInfo && deviceDescriptor . debugggingEnabled ) {
68+ await this . $deviceDebugAppService . refreshApplicationWithDebug ( projectData , deviceDescriptor , refreshInfo ) ;
69+ }
5870
5971 this . $logger . info ( `Successfully synced application ${ liveSyncResultInfo . deviceAppData . appIdentifier } on device ${ liveSyncResultInfo . deviceAppData . device . deviceInfo . identifier } .` ) ;
6072
61- this . emitRunOnDeviceEvent ( RunOnDeviceEvents . runOnDeviceStarted , {
62- projectDir : projectData . projectDir ,
63- deviceIdentifier : device . deviceInfo . identifier ,
64- applicationIdentifier : projectData . projectIdentifiers [ device . deviceInfo . platform . toLowerCase ( ) ]
65- } ) ;
73+ this . $runOnDevicesEmitter . emitRunOnDeviceStartedEvent ( projectData , device ) ;
6674 } catch ( err ) {
6775 this . $logger . warn ( `Unable to apply changes on device: ${ device . deviceInfo . identifier } . Error is: ${ err . message } .` ) ;
6876
69- this . emitRunOnDeviceEvent ( RunOnDeviceEvents . runOnDeviceError , {
70- error : err ,
71- deviceIdentifier : device . deviceInfo . identifier ,
72- projectDir : projectData . projectDir ,
73- applicationIdentifier : projectData . projectIdentifiers [ platformData . platformNameLowerCase ]
74- } ) ;
77+ this . $runOnDevicesEmitter . emitRunOnDeviceErrorEvent ( projectData , device , err ) ;
78+
79+ // TODO: Consider to call here directly stopRunOnDevices
7580 }
7681 }
7782
@@ -97,19 +102,25 @@ export class RunOnDevicesController extends EventEmitter {
97102 connectTimeout : 1000
98103 } ) ;
99104
100- await this . $deviceRefreshAppService . refreshApplication ( deviceDescriptor , projectData , liveSyncResultInfo , platformLiveSyncService , this ) ;
105+ const refreshInfo = await this . $deviceRefreshAppService . refreshApplicationWithoutDebug ( projectData , liveSyncResultInfo , deviceDescriptor ) ;
106+
107+ this . $runOnDevicesEmitter . emitRunOnDeviceExecutedEvent ( projectData , liveSyncResultInfo . deviceAppData . device , {
108+ syncedFiles : liveSyncResultInfo . modifiedFilesData . map ( m => m . getLocalPath ( ) ) ,
109+ isFullSync : liveSyncResultInfo . isFullSync
110+ } ) ;
111+
112+ if ( liveSyncResultInfo && deviceDescriptor . debugggingEnabled ) {
113+ await this . $deviceDebugAppService . refreshApplicationWithDebug ( projectData , deviceDescriptor , refreshInfo ) ;
114+ }
115+
116+ this . $logger . info ( `Successfully synced application ${ liveSyncResultInfo . deviceAppData . appIdentifier } on device ${ liveSyncResultInfo . deviceAppData . device . deviceInfo . identifier } .` ) ;
101117 } catch ( err ) {
102118 const allErrors = ( < Mobile . IDevicesOperationError > err ) . allErrors ;
103119
104120 if ( allErrors && _ . isArray ( allErrors ) ) {
105121 for ( const deviceError of allErrors ) {
106122 this . $logger . warn ( `Unable to apply changes for device: ${ deviceError . deviceIdentifier } . Error is: ${ deviceError . message } .` ) ;
107- this . emitRunOnDeviceEvent ( RunOnDeviceEvents . runOnDeviceError , {
108- error : deviceError ,
109- deviceIdentifier : deviceError . deviceIdentifier ,
110- projectDir : projectData . projectDir ,
111- applicationIdentifier : projectData . projectIdentifiers [ device . deviceInfo . platform . toLowerCase ( ) ]
112- } ) ;
123+ this . $runOnDevicesEmitter . emitRunOnDeviceErrorEvent ( projectData , device , deviceError ) ;
113124 }
114125 }
115126 }
@@ -130,10 +141,5 @@ export class RunOnDevicesController extends EventEmitter {
130141 return result ;
131142 }
132143 }
133-
134- private emitRunOnDeviceEvent ( event : string , runOnDeviceData : ILiveSyncEventData ) : boolean {
135- this . $logger . trace ( `Will emit event ${ event } with data` , runOnDeviceData ) ;
136- return this . emit ( event , runOnDeviceData ) ;
137- }
138144}
139145$injector . register ( "runOnDevicesController" , RunOnDevicesController ) ;
0 commit comments