diff --git a/lib/definitions/preview-app-livesync.d.ts b/lib/definitions/preview-app-livesync.d.ts index 01faa8bda3..1a3d0ea278 100644 --- a/lib/definitions/preview-app-livesync.d.ts +++ b/lib/definitions/preview-app-livesync.d.ts @@ -8,7 +8,7 @@ declare global { stopLiveSync(): Promise; } - interface IPreviewAppLiveSyncData extends IProjectDir, IAppFilesUpdaterOptionsComposition, IEnvOptions { } + interface IPreviewAppLiveSyncData extends IProjectDir, IHasUseHotModuleReloadOption, IBundle, IEnvOptions { } interface IPreviewSdkService extends EventEmitter { getQrCodeUrl(options: IHasUseHotModuleReloadOption): string; diff --git a/lib/services/livesync/livesync-service.ts b/lib/services/livesync/livesync-service.ts index 6741cca82a..ecac15210b 100644 --- a/lib/services/livesync/livesync-service.ts +++ b/lib/services/livesync/livesync-service.ts @@ -57,13 +57,13 @@ export class LiveSyncService extends EventEmitter implements IDebugLiveSyncServi await this.liveSync([], { syncToPreviewApp: true, projectDir: data.projectDir, - bundle: data.appFilesUpdaterOptions.bundle, - useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload, + bundle: data.bundle, + useHotModuleReload: data.useHotModuleReload, release: false, env: data.env, }); - const url = this.$previewSdkService.getQrCodeUrl({ useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload }); + const url = this.$previewSdkService.getQrCodeUrl({ useHotModuleReload: data.useHotModuleReload }); const result = await this.$previewQrCodeService.getLiveSyncQrCode(url); return result; } @@ -362,13 +362,10 @@ export class LiveSyncService extends EventEmitter implements IDebugLiveSyncServi if (liveSyncData.syncToPreviewApp) { await this.$previewAppLiveSyncService.initialize({ - appFilesUpdaterOptions: { - bundle: liveSyncData.bundle, - release: liveSyncData.release, - useHotModuleReload: liveSyncData.useHotModuleReload - }, - env: liveSyncData.env, - projectDir: projectData.projectDir + projectDir: projectData.projectDir, + bundle: liveSyncData.bundle, + useHotModuleReload: liveSyncData.useHotModuleReload, + env: liveSyncData.env }); } else { // In case liveSync is called for a second time for the same projectDir. @@ -641,13 +638,10 @@ export class LiveSyncService extends EventEmitter implements IDebugLiveSyncServi if (liveSyncData.syncToPreviewApp) { await this.addActionToChain(projectData.projectDir, async () => { await this.$previewAppLiveSyncService.syncFiles({ - appFilesUpdaterOptions: { - bundle: liveSyncData.bundle, - release: liveSyncData.release, - useHotModuleReload: liveSyncData.useHotModuleReload - }, - env: liveSyncData.env, - projectDir: projectData.projectDir + projectDir: projectData.projectDir, + bundle: liveSyncData.bundle, + useHotModuleReload: liveSyncData.useHotModuleReload, + env: liveSyncData.env }, currentFilesToSync, currentFilesToRemove); }); } else { diff --git a/lib/services/livesync/playground/preview-app-livesync-service.ts b/lib/services/livesync/playground/preview-app-livesync-service.ts index a1727430a0..1b8de93f86 100644 --- a/lib/services/livesync/playground/preview-app-livesync-service.ts +++ b/lib/services/livesync/playground/preview-app-livesync-service.ts @@ -66,7 +66,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { .uniq() .value(); for (const platform of platforms) { - await this.syncFilesForPlatformSafe(data, platform, { filesToSync, filesToRemove, useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload }); + await this.syncFilesForPlatformSafe(data, platform, { filesToSync, filesToRemove, useHotModuleReload: data.useHotModuleReload }); } } @@ -78,7 +78,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { const hookArgs = this.getHookArgs(data, device); await this.$hooksService.executeBeforeHooks("preview-sync", { hookArgs }); await this.$previewAppPluginsService.comparePluginsOnDevice(data, device); - const payloads = await this.syncFilesForPlatformSafe(data, device.platform, { isInitialSync: true, useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload }); + const payloads = await this.syncFilesForPlatformSafe(data, device.platform, { isInitialSync: true, useHotModuleReload: data.useHotModuleReload }); return payloads; } @@ -92,7 +92,11 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { config: { env: data.env, platform: device.platform, - appFilesUpdaterOptions: data.appFilesUpdaterOptions, + appFilesUpdaterOptions: { + bundle: data.bundle, + useHotModuleReload: data.useHotModuleReload, + release: false + }, }, externals: this.$previewAppPluginsService.getExternalPlugins(device), filesToSyncMap, @@ -109,10 +113,10 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { const platformHmrData = currentHmrData[platform] || {}; const filesToSync = _.cloneDeep(filesToSyncMap[platform]); // We don't need to prepare when webpack emits changed files. We just need to send a message to pubnub. - promise = this.syncFilesForPlatformSafe(data, platform, { filesToSync, skipPrepare: true, useHotModuleReload: data.appFilesUpdaterOptions.useHotModuleReload }); + promise = this.syncFilesForPlatformSafe(data, platform, { filesToSync, skipPrepare: true, useHotModuleReload: data.useHotModuleReload }); await promise; - if (data.appFilesUpdaterOptions.useHotModuleReload && platformHmrData.hash) { + if (data.useHotModuleReload && platformHmrData.hash) { const devices = this.$previewDevicesService.getDevicesForPlatform(platform); await Promise.all(_.map(devices, async (previewDevice: Device) => { @@ -133,12 +137,12 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { let payloads = null; try { - const { appFilesUpdaterOptions, env, projectDir } = data; + const { env, projectDir } = data; const projectData = this.$projectDataService.getProjectData(projectDir); const platformData = this.$platformsData.getPlatformData(platform, projectData); if (!opts.skipPrepare) { - await this.preparePlatform(platform, appFilesUpdaterOptions, env, projectData); + await this.preparePlatform(platform, data, env, projectData); } if (opts.isInitialSync) { @@ -178,7 +182,12 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService { return { files: payloads, platform: platformData.normalizedPlatformName.toLowerCase(), hmrMode, deviceId }; } - private async preparePlatform(platform: string, appFilesUpdaterOptions: IAppFilesUpdaterOptions, env: Object, projectData: IProjectData): Promise { + private async preparePlatform(platform: string, data: IPreviewAppLiveSyncData, env: Object, projectData: IProjectData): Promise { + const appFilesUpdaterOptions = { + bundle: data.bundle, + useHotModuleReload: data.useHotModuleReload, + release: false + }; const nativePrepare = { skipNativePrepare: true }; const config = {}; const platformTemplate = null; diff --git a/lib/services/livesync/playground/preview-app-plugins-service.ts b/lib/services/livesync/playground/preview-app-plugins-service.ts index ecf7fc0b57..f70637d13e 100644 --- a/lib/services/livesync/playground/preview-app-plugins-service.ts +++ b/lib/services/livesync/playground/preview-app-plugins-service.ts @@ -60,7 +60,7 @@ export class PreviewAppPluginsService implements IPreviewAppPluginsService { } private getWarningForPlugin(data: IPreviewAppLiveSyncData, localPlugin: string, localPluginVersion: string, devicePluginVersion: string, device: Device): string { - if (data && data.appFilesUpdaterOptions && data.appFilesUpdaterOptions.bundle) { + if (data && data.bundle) { const pluginPackageJsonPath = path.join(data.projectDir, NODE_MODULES_DIR_NAME, localPlugin, PACKAGE_JSON_FILE_NAME); const isNativeScriptPlugin = this.$pluginsService.isNativeScriptPlugin(pluginPackageJsonPath); if (!isNativeScriptPlugin || (isNativeScriptPlugin && !this.hasNativeCode(localPlugin, device.platform, data.projectDir))) { diff --git a/test/services/playground/preview-app-livesync-service.ts b/test/services/playground/preview-app-livesync-service.ts index d4ab2e2551..95d7008458 100644 --- a/test/services/playground/preview-app-livesync-service.ts +++ b/test/services/playground/preview-app-livesync-service.ts @@ -60,11 +60,8 @@ const defaultProjectFiles = [ ]; const syncFilesMockData = { projectDir: projectDirPath, - appFilesUpdaterOptions: { - release: false, - bundle: false, - useHotModuleReload: false - }, + bundle: false, + useHotModuleReload: false, env: {} }; @@ -182,7 +179,7 @@ async function initialSync(input?: IActInput) { const { previewAppLiveSyncService, previewSdkService, actOptions } = input; const syncFilesData = _.cloneDeep(syncFilesMockData); - syncFilesData.appFilesUpdaterOptions.useHotModuleReload = actOptions.hmr; + syncFilesData.useHotModuleReload = actOptions.hmr; await previewAppLiveSyncService.initialize(syncFilesData); if (actOptions.callGetInitialFiles) { await previewSdkService.getInitialFiles(deviceMockData); @@ -195,7 +192,7 @@ async function syncFiles(input?: IActInput) { const { previewAppLiveSyncService, previewSdkService, projectFiles, actOptions } = input; const syncFilesData = _.cloneDeep(syncFilesMockData); - syncFilesData.appFilesUpdaterOptions.useHotModuleReload = actOptions.hmr; + syncFilesData.useHotModuleReload = actOptions.hmr; await previewAppLiveSyncService.initialize(syncFilesData); if (actOptions.callGetInitialFiles) { await previewSdkService.getInitialFiles(deviceMockData); diff --git a/test/services/playground/preview-app-plugins-service.ts b/test/services/playground/preview-app-plugins-service.ts index 13087a0a7f..d23c358e55 100644 --- a/test/services/playground/preview-app-plugins-service.ts +++ b/test/services/playground/preview-app-plugins-service.ts @@ -64,10 +64,8 @@ function createDevice(plugins: string): Device { function createPreviewLiveSyncData(options?: { bundle: boolean }) { return { projectDir, - appFilesUpdaterOptions: { - release: false, - bundle: options.bundle - }, + release: false, + bundle: options.bundle, env: {} }; }