11import { INITIAL_SYNC_EVENT_NAME , FILES_CHANGE_EVENT_NAME } from "../constants" ;
22import { WorkflowDataService } from "./workflow/workflow-data-service" ;
33
4- // import * as path from "path";
5- // import * as constants from "../constants";
6-
74const deviceDescriptorPrimaryKey = "identifier" ;
85
9- // TODO: Rename this class to RunWorkflowService
106export class BundleWorkflowService implements IBundleWorkflowService {
117 private liveSyncProcessesInfo : IDictionary < any > = { } ;
128
@@ -17,23 +13,33 @@ export class BundleWorkflowService implements IBundleWorkflowService {
1713 private $errors : IErrors ,
1814 private $injector : IInjector ,
1915 private $mobileHelper : Mobile . IMobileHelper ,
20- // private $fs: IFileSystem,
2116 private $logger : ILogger ,
22- // private $platformAddService: IPlatformAddService ,
17+ private $platformService : IPlatformService ,
2318 private $platformAddService : IPlatformAddService ,
2419 private $platformBuildService : IPlatformBuildService ,
2520 private $platformWatcherService : IPlatformWatcherService ,
2621 private $pluginsService : IPluginsService ,
2722 private $projectDataService : IProjectDataService ,
2823 private $workflowDataService : WorkflowDataService
29- // private $projectChangesService: IProjectChangesService
3024 ) { }
3125
32- // processInfo[projectDir] = {
33- // deviceDescriptors, nativeFilesWatcher, jsFilesWatcher
34- // }
26+ public async preparePlatform ( platform : string , projectDir : string , options : IOptions ) : Promise < void > {
27+ const { nativePlatformData, projectData, addPlatformData, preparePlatformData } = this . $workflowDataService . createWorkflowData ( platform , projectDir , options ) ;
28+
29+ await this . $platformAddService . addPlatformIfNeeded ( nativePlatformData , projectData , addPlatformData ) ;
30+ await this . $platformService . preparePlatform ( nativePlatformData , projectData , preparePlatformData ) ;
31+ }
32+
33+ public async buildPlatform ( platform : string , projectDir : string , options : IOptions ) : Promise < string > {
34+ const { nativePlatformData, projectData, buildPlatformData } = this . $workflowDataService . createWorkflowData ( platform , projectDir , options ) ;
35+
36+ await this . preparePlatform ( platform , projectDir , options ) ;
37+ const result = await this . $platformBuildService . buildPlatform ( nativePlatformData , projectData , buildPlatformData ) ;
38+
39+ return result ;
40+ }
3541
36- public async start ( projectDir : string , deviceDescriptors : ILiveSyncDeviceInfo [ ] , liveSyncInfo : ILiveSyncInfo ) : Promise < void > {
42+ public async runPlatform ( projectDir : string , deviceDescriptors : ILiveSyncDeviceInfo [ ] , liveSyncInfo : ILiveSyncInfo ) : Promise < void > {
3743 const projectData = this . $projectDataService . getProjectData ( projectDir ) ;
3844 await this . initializeSetup ( projectData ) ;
3945
@@ -81,21 +87,16 @@ export class BundleWorkflowService implements IBundleWorkflowService {
8187
8288 private async syncInitialDataOnDevice ( device : Mobile . IDevice , deviceDescriptor : ILiveSyncDeviceInfo , projectData : IProjectData , liveSyncInfo : ILiveSyncInfo ) : Promise < void > {
8389 const { nativePlatformData : platformData , buildPlatformData } = this . $workflowDataService . createWorkflowData ( device . deviceInfo . platform , projectData . projectDir , liveSyncInfo ) ;
90+
8491 const outputPath = deviceDescriptor . outputPath || platformData . getBuildOutputPath ( buildPlatformData ) ;
8592 const packageFilePath = await this . $platformBuildService . buildPlatformIfNeeded ( platformData , projectData , buildPlatformData , outputPath ) ;
8693
8794 await this . $deviceInstallationService . installOnDeviceIfNeeded ( device , platformData , projectData , buildPlatformData , packageFilePath , outputPath ) ;
8895
8996 // TODO: Consider to improve this
9097 const platformLiveSyncService = this . getLiveSyncService ( platformData . platformNameLowerCase ) ;
91- const liveSyncResultInfo = await platformLiveSyncService . fullSync ( {
92- projectData,
93- device,
94- useHotModuleReload : liveSyncInfo . useHotModuleReload ,
95- watch : ! liveSyncInfo . skipWatcher ,
96- force : liveSyncInfo . force ,
97- liveSyncDeviceInfo : deviceDescriptor
98- } ) ;
98+ const { force, useHotModuleReload, skipWatcher } = liveSyncInfo ;
99+ const liveSyncResultInfo = await platformLiveSyncService . fullSync ( { force, useHotModuleReload, projectData, device, watch : ! skipWatcher , liveSyncDeviceInfo : deviceDescriptor } ) ;
99100
100101 await this . $deviceRestartApplicationService . restartOnDevice ( deviceDescriptor , projectData , liveSyncResultInfo , platformLiveSyncService ) ;
101102 }
0 commit comments