Skip to content

Commit 4e94cb1

Browse files
committed
chore: fix comments
1 parent 0e1fb1a commit 4e94cb1

10 files changed

+37
-38
lines changed

lib/common/appbuilder/device-log-provider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class DeviceLogProvider extends DeviceLogProviderBase {
1616

1717
if (data) {
1818
this.emit('data', deviceIdentifier, data);
19-
this.emit(DEVICE_LOG_EVENT_NAME, data, deviceIdentifier);
19+
this.emit(DEVICE_LOG_EVENT_NAME, data, deviceIdentifier, platform);
2020
}
2121
}
2222

lib/common/mobile/device-log-provider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export class DeviceLogProvider extends DeviceLogProviderBase {
1212
const data = this.$logFilter.filterData(platform, lineText, loggingOptions);
1313
if (data) {
1414
this.$logger.write(data);
15-
this.emit(DEVICE_LOG_EVENT_NAME, lineText, deviceIdentifier);
15+
this.emit(DEVICE_LOG_EVENT_NAME, lineText, deviceIdentifier, platform);
1616
}
1717
}
1818

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
interface IHmrStatusService {
2-
awaitHmrStatus(deviceId: string, operationHash: string): Promise<number>;
2+
getHmrStatus(deviceId: string, operationHash: string): Promise<number>;
33
attachToHrmStatusEvent(): void;
44
}

lib/services/hmr-status-service.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,24 @@ export class HmrStatusService implements IHmrStatusService {
77
public static SUCCESS_MESSAGE = "Successfully applied update with";
88
public static FAILED_MESSAGE = "Cannot apply update with";
99
private hashOperationStatuses: IDictionary<any> = {};
10+
private intervals: IDictionary<any> = {};
1011

1112
constructor(private $logParserService: ILogParserService,
12-
private $logger: ILogger) { }
13+
private $processService: IProcessService,
14+
private $logger: ILogger) {
15+
this.$processService.attachToProcessExitSignals(this, this.dispose);
16+
}
1317

14-
public awaitHmrStatus(deviceId: string, operationHash: string): Promise<number> {
18+
public getHmrStatus(deviceId: string, operationHash: string): Promise<number> {
1519
return new Promise((resolve, reject) => {
1620
const key = `${deviceId}${operationHash}`;
1721
let retryCount = 40;
1822

19-
const interval = setInterval(() => {
23+
this.intervals[key] = setInterval(() => {
2024
const status = this.getStatusByKey(key);
2125
if (status || retryCount === 0) {
22-
clearInterval(interval);
26+
clearInterval(this.intervals[key]);
27+
this.intervals[key] = null;
2328
resolve(status);
2429
} else {
2530
retryCount--;
@@ -81,6 +86,13 @@ export class HmrStatusService implements IHmrStatusService {
8186

8287
this.hashOperationStatuses[key].status = status;
8388
}
89+
90+
private dispose() {
91+
_.forEach(this.intervals, (value, key) => {
92+
clearInterval(value);
93+
this.intervals[key] = null;
94+
});
95+
}
8496
}
8597

8698
$injector.register("hmrStatusService", HmrStatusService);

lib/services/livesync/livesync-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ export class LiveSyncService extends EventEmitter implements IDebugLiveSyncServi
669669
await this.refreshApplication(projectData, liveSyncResultInfo, deviceBuildInfoDescriptor.debugOptions, deviceBuildInfoDescriptor.outputPath);
670670

671671
if (liveSyncData.useHotModuleReload && currentHmrData.hash) {
672-
const status = await this.$hmrStatusService.awaitHmrStatus(device.deviceInfo.identifier, currentHmrData.hash);
672+
const status = await this.$hmrStatusService.getHmrStatus(device.deviceInfo.identifier, currentHmrData.hash);
673673
if (status === HmrConstants.HMR_ERROR_STATUS) {
674674
settings.filesToSync = currentHmrData.fallbackFiles[device.deviceInfo.platform];
675675
liveSyncResultInfo = await service.liveSyncWatchAction(device, settings);

lib/services/livesync/playground/preview-app-livesync-service.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,18 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
5757
const platformData = this.$platformsData.getPlatformData(platform, projectData);
5858
const currentHmrData = _.cloneDeep(hmrData);
5959
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});
6161
await promise;
6262

6363
if (data.appFilesUpdaterOptions.useHotModuleReload && currentHmrData.hash) {
6464
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);
6768
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);
6970
}
70-
});
71+
}));
7172
}
7273
});
7374
filesToSyncMap[platform] = [];
@@ -124,7 +125,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
124125

125126
let result: FilesPayload = null;
126127
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});
128129
this.$logger.info(`Successfully synced ${result.files.map(filePayload => filePayload.file.yellow)} for platform ${platform}.`);
129130
} else {
130131
const hmrMode = data.appFilesUpdaterOptions.useHotModuleReload ? 1 : 0;
@@ -138,7 +139,7 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
138139
}
139140
}
140141

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> {
142143
const hmrMode = useHotModuleReload ? 1 : 0;
143144
const payloads = this.getFilesPayload(platformData, projectData, hmrMode, _(files).uniq().value(), deviceId);
144145
await this.$previewSdkService.applyChanges(payloads);

lib/services/livesync/playground/preview-sdk-service.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ export class PreviewSdkService extends EventEmitter implements IPreviewSdkServic
6262
},
6363
onConnectedDevicesChange: (connectedDevices: ConnectedDevices) => ({ }),
6464
onLogMessage: (log: string, deviceName: string, deviceId: string) => {
65-
this.emit(DEVICE_LOG_EVENT_NAME, log, deviceId);
65+
const device = _.find(this.connectedDevices, { id: deviceId});
66+
this.emit(DEVICE_LOG_EVENT_NAME, log, deviceId, device.platform);
6667
this.$logger.info(`LOG from device ${deviceName}: ${log}`);
6768
},
6869
onRestartMessage: () => {
@@ -73,7 +74,7 @@ export class PreviewSdkService extends EventEmitter implements IPreviewSdkServic
7374
},
7475
onDeviceConnectedMessage: (deviceConnectedMessage: DeviceConnectedMessage) => ({ }),
7576
onDeviceConnected: (device: Device) => {
76-
if (!_.includes(this.connectedDevices, device)) {
77+
if (!_.find(this.connectedDevices, {id: device.id})) {
7778
this.connectedDevices.push(device);
7879
}
7980
},

lib/services/log-parser-service.ts

+4-19
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ export class LogParserService extends EventEmitter implements ILogParserService
66
private parseRules: IDictionary<ILogParseRule> = {};
77

88
constructor(private $deviceLogProvider: Mobile.IDeviceLogProvider,
9-
private $devicesService: Mobile.IDevicesService,
109
private $errors: IErrors,
1110
private $previewSdkService: IPreviewSdkService) {
1211
super();
@@ -23,17 +22,15 @@ export class LogParserService extends EventEmitter implements ILogParserService
2322

2423
@cache()
2524
private startParsingLogCore(): void {
26-
this.$deviceLogProvider.on(DEVICE_LOG_EVENT_NAME, (message: string, deviceIdentifier: string) => this.processDeviceLogResponse(message, deviceIdentifier));
27-
this.$previewSdkService.on(DEVICE_LOG_EVENT_NAME, (message: string, deviceIdentifier: string) => this.processDeviceLogResponse(message, deviceIdentifier));
25+
this.$deviceLogProvider.on(DEVICE_LOG_EVENT_NAME, this.processDeviceLogResponse.bind(this));
26+
this.$previewSdkService.on(DEVICE_LOG_EVENT_NAME, this.processDeviceLogResponse.bind(this));
2827
}
2928

30-
private processDeviceLogResponse(message: string, deviceIdentifier: string) {
31-
const devicePlatform = this.tryGetPlatform(deviceIdentifier);
32-
29+
private processDeviceLogResponse(message: string, deviceIdentifier: string, devicePlatform: string) {
3330
const lines = message.split("\n");
3431
_.forEach(lines, line => {
3532
_.forEach(this.parseRules, (parseRule) => {
36-
if (!devicePlatform || !parseRule.platform || parseRule.platform.toLowerCase() === devicePlatform) {
33+
if (!devicePlatform || !parseRule.platform || parseRule.platform.toLowerCase() === devicePlatform.toLowerCase()) {
3734
const matches = parseRule.regex.exec(line);
3835

3936
if (matches) {
@@ -43,18 +40,6 @@ export class LogParserService extends EventEmitter implements ILogParserService
4340
});
4441
});
4542
}
46-
47-
private tryGetPlatform (deviceIdentifier: string): string {
48-
let devicePlatform;
49-
try {
50-
const device = this.$devicesService.getDeviceByIdentifier(deviceIdentifier);
51-
devicePlatform = device.deviceInfo.platform.toLowerCase();
52-
} catch (err) {
53-
devicePlatform = null;
54-
}
55-
56-
return devicePlatform;
57-
}
5843
}
5944

6045
$injector.register("logParserService", LogParserService);

test/services/ios-debugger-port-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function createTestInjector() {
3939
getFrameworkVersion: () => "4.1.0"
4040
});
4141
injector.register("previewSdkService", {
42-
on: () => {}
42+
on: () => () => ({})
4343
});
4444
injector.register("iOSSimResolver", {
4545
iOSSim: () => ({})

test/services/log-parser-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function createTestInjector() {
2222
const injector = new Yok();
2323
injector.register("deviceLogProvider", DeveiceLogProviderMock);
2424
injector.register("previewSdkService", {
25-
on: () => {}
25+
on: () => ({})
2626
});
2727
injector.register("devicePlatformsConstants", DevicePlatformsConstants);
2828
injector.register("logParserService", LogParserService);

0 commit comments

Comments
 (0)