Skip to content

Commit 94f9acc

Browse files
committed
Generate qr code
1 parent 6d2aaf9 commit 94f9acc

File tree

8 files changed

+1148
-1114
lines changed

8 files changed

+1148
-1114
lines changed

lib/bootstrap.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,4 @@ $injector.require("iOSLogParserService", "./services/ios-log-parser-service");
175175
$injector.require("iOSDebuggerPortService", "./services/ios-debugger-port-service");
176176

177177
$injector.require("pacoteService", "./services/pacote-service");
178+
$injector.require("qrCodeTerminalService", "./services/qr-code-terminal-service");

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ declare global {
1010
interface IPreviewAppLiveSyncData extends IProjectDataComposition, IAppFilesUpdaterOptionsComposition, IEnvOptions { }
1111

1212
interface IPreviewSdkService extends NodeJS.EventEmitter {
13+
qrCodeUrl: string;
1314
connectedDevices: DeviceConnectedMessage[];
1415
initialize(): void;
1516
applyChanges(files: FilePayload[]): Promise<void>;

lib/definitions/qr-code.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
interface IQrCodeTerminalService {
2+
generate(url: string): void;
3+
}

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
99
private $platformService: IPlatformService,
1010
private $platformsData: IPlatformsData,
1111
private $previewSdkService: IPreviewSdkService,
12-
private $projectFilesManager: IProjectFilesManager) { }
12+
private $projectFilesManager: IProjectFilesManager,
13+
private $qrCodeTerminalService: IQrCodeTerminalService) { }
1314

1415
public async initialSync(data: IPreviewAppLiveSyncData): Promise<void> {
1516
this.$previewSdkService.initialize();
@@ -31,12 +32,15 @@ export class PreviewAppLiveSyncService implements IPreviewAppLiveSyncService {
3132
}
3233

3334
private async generateQRCode(): Promise<void> {
34-
console.log("QR Code was generated!!!");
35+
this.$qrCodeTerminalService.generate(this.$previewSdkService.qrCodeUrl);
3536
}
3637

3738
private async trySyncFilesOnDevice(data: IPreviewAppLiveSyncData, device: DeviceConnectedMessage, files?: string[]): Promise<void> {
39+
this.$logger.info(`Start syncing changes on device ${device.deviceId}.`);
40+
3841
try {
3942
await this.syncFilesOnDevice(data, device, files);
43+
this.$logger.info(`Successfully synced changes on device ${device.deviceId}.`);
4044
} catch (err) {
4145
this.$logger.warn(`Unable to apply changes on device ${device.deviceId}. Error is ${err.message}.`);
4246
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export class PreviewSdkService extends EventEmitter implements IPreviewSdkServic
1212
super();
1313
}
1414

15+
public get qrCodeUrl(): string {
16+
return `nsplay://boot?instanceId=${this.instanceId}&pKey=${PubnubKeys.PUBLISH_KEY}&sKey=${PubnubKeys.SUBSCRIBE_KEY}&template=play-ng`;
17+
}
18+
1519
public initialize(): void {
1620
const initConfig = this.getInitConfig();
1721
this.messagingService = new MessagingService();
@@ -39,8 +43,7 @@ export class PreviewSdkService extends EventEmitter implements IPreviewSdkServic
3943
pubnubPublishKey: PubnubKeys.PUBLISH_KEY,
4044
pubnubSubscribeKey: PubnubKeys.SUBSCRIBE_KEY,
4145
callbacks: this.getCallbacks(),
42-
getInitialFiles: async () => [],
43-
instanceId: "qhOOo1lqK"
46+
getInitialFiles: async () => []
4447
};
4548
}
4649

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const qrcode = require("qrcode-terminal");
2+
3+
export class QrCodeTerminalService implements IQrCodeTerminalService {
4+
constructor(private $logger: ILogger) { }
5+
6+
public generate(url: string): void {
7+
this.$logger.info(`Generating qrcode for url ${url}.`);
8+
9+
try {
10+
qrcode.generate(url);
11+
} catch(err) {
12+
this.$logger.trace(`Failed to generate QR code for ${url}`, err);
13+
}
14+
}
15+
}
16+
$injector.register("qrCodeTerminalService", QrCodeTerminalService);

0 commit comments

Comments
 (0)