Skip to content

Commit 37f2696

Browse files
committed
feat(preview-api): expose public api for getting device's warnings
1 parent 5df9866 commit 37f2696

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

lib/definitions/preview-app-livesync.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ declare global {
1818
}
1919

2020
interface IPreviewAppPluginsService {
21+
getDeviceWarnings(device: Device): string[];
2122
comparePluginsOnDevice(data: IPreviewAppLiveSyncData, device: Device): Promise<void>;
2223
getExternalPlugins(device: Device): string[];
2324
}

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import { DeviceDiscoveryEventNames, DEVICE_LOG_EVENT_NAME } from "../../../../co
55
export class PreviewDevicesService extends EventEmitter implements IPreviewDevicesService {
66
private connectedDevices: Device[] = [];
77

8-
constructor(private $previewAppLogProvider: IPreviewAppLogProvider) {
9-
super();
8+
constructor(private $previewAppLogProvider: IPreviewAppLogProvider,
9+
private $previewAppPluginsService: IPreviewAppPluginsService) {
10+
super();
1011

11-
this.initialize();
12+
this.initialize();
1213
}
1314

1415
public getConnectedDevices(): Device[] {
@@ -39,6 +40,10 @@ export class PreviewDevicesService extends EventEmitter implements IPreviewDevic
3940
});
4041
}
4142

43+
public getDeviceWarnings(device: Device): string[] {
44+
return this.$previewAppPluginsService.getDeviceWarnings(device);
45+
}
46+
4247
private raiseDeviceFound(device: Device) {
4348
this.emit(DeviceDiscoveryEventNames.DEVICE_FOUND, device);
4449
this.connectedDevices.push(device);

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,23 @@ import { PLATFORMS_DIR_NAME, PACKAGE_JSON_FILE_NAME } from "../../../constants";
99
export class PreviewAppPluginsService implements IPreviewAppPluginsService {
1010
private previewAppVersionWarnings: IDictionary<string[]> = {};
1111

12-
constructor(private $fs: IFileSystem,
12+
constructor(private $errors: IErrors,
13+
private $fs: IFileSystem,
1314
private $logger: ILogger,
1415
private $pluginsService: IPluginsService) { }
1516

17+
public getDeviceWarnings(device: Device): string[] {
18+
if (!device) {
19+
this.$errors.failWithoutHelp("No device provided.");
20+
}
21+
22+
if (!device.previewAppVersion) {
23+
this.$errors.failWithoutHelp("No version of preview app provided.");
24+
}
25+
26+
return this.previewAppVersionWarnings[device.previewAppVersion];
27+
}
28+
1629
public async comparePluginsOnDevice(data: IPreviewAppLiveSyncData, device: Device): Promise<void> {
1730
if (!this.previewAppVersionWarnings[device.previewAppVersion]) {
1831
const devicePlugins = this.getDevicePlugins(device);

0 commit comments

Comments
 (0)