@@ -57,17 +57,18 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
57
57
const platformData = this . $platformsData . getPlatformData ( platform , projectData ) ;
58
58
const currentHmrData = _ . cloneDeep ( hmrData ) ;
59
59
const filesToSync = _ . cloneDeep ( filesToSyncMap [ platform ] ) ;
60
- promise = this . applyChanges ( platformData , projectData , filesToSync , data . appFilesUpdaterOptions . useHotModuleReload ) ;
60
+ promise = this . applyChanges ( platformData , projectData , filesToSync , { useHotModuleReload : data . appFilesUpdaterOptions . useHotModuleReload } ) ;
61
61
await promise ;
62
62
63
63
if ( data . appFilesUpdaterOptions . useHotModuleReload && currentHmrData . hash ) {
64
64
const devices = _ . filter ( this . $previewSdkService . connectedDevices , { platform : platform . toLowerCase ( ) } ) ;
65
- _ . forEach ( devices , async ( previewDevice : Device ) => {
66
- const status = await this . $hmrStatusService . awaitHmrStatus ( previewDevice . id , currentHmrData . hash ) ;
65
+
66
+ await Promise . all ( _ . map ( devices , async ( previewDevice : Device ) => {
67
+ const status = await this . $hmrStatusService . getHmrStatus ( previewDevice . id , currentHmrData . hash ) ;
67
68
if ( status === HmrConstants . HMR_ERROR_STATUS ) {
68
- await this . applyChanges ( platformData , projectData , currentHmrData . fallbackFiles [ platform ] , false ) ;
69
+ await this . applyChanges ( platformData , projectData , currentHmrData . fallbackFiles [ platform ] , { useHotModuleReload : false } , previewDevice . id ) ;
69
70
}
70
- } ) ;
71
+ } ) ) ;
71
72
}
72
73
} ) ;
73
74
filesToSyncMap [ platform ] = [ ] ;
@@ -124,7 +125,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
124
125
125
126
let result : FilesPayload = null ;
126
127
if ( files && files . length ) {
127
- result = await this . applyChanges ( platformData , projectData , files , data . appFilesUpdaterOptions . useHotModuleReload ) ;
128
+ result = await this . applyChanges ( platformData , projectData , files , { useHotModuleReload : data . appFilesUpdaterOptions . useHotModuleReload } ) ;
128
129
this . $logger . info ( `Successfully synced ${ result . files . map ( filePayload => filePayload . file . yellow ) } for platform ${ platform } .` ) ;
129
130
} else {
130
131
const hmrMode = data . appFilesUpdaterOptions . useHotModuleReload ? 1 : 0 ;
@@ -138,7 +139,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
138
139
}
139
140
}
140
141
141
- private async applyChanges ( platformData : IPlatformData , projectData : IProjectData , files : string [ ] , useHotModuleReload : Boolean , deviceId ?: string ) : Promise < FilesPayload > {
142
+ private async applyChanges ( platformData : IPlatformData , projectData : IProjectData , files : string [ ] , { useHotModuleReload } : { useHotModuleReload : Boolean } , deviceId ?: string ) : Promise < FilesPayload > {
142
143
const hmrMode = useHotModuleReload ? 1 : 0 ;
143
144
const payloads = this . getFilesPayload ( platformData , projectData , hmrMode , _ ( files ) . uniq ( ) . value ( ) , deviceId ) ;
144
145
await this . $previewSdkService . applyChanges ( payloads ) ;
0 commit comments