From 321c5e7f41af49bed8fc6e6149c7e58842570e8c Mon Sep 17 00:00:00 2001 From: "Valentin D. Pinkman" Date: Thu, 21 Mar 2024 18:05:36 +0000 Subject: [PATCH] feat: await for hackConnect --- .changeset/new-wolves-hope.md | 5 +++ packages/core/src/api/DeviceSdk.ts | 6 ++-- .../internal/hackathon/HackathonService.ts | 31 ++++++++++++------- 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 .changeset/new-wolves-hope.md diff --git a/.changeset/new-wolves-hope.md b/.changeset/new-wolves-hope.md new file mode 100644 index 000000000..19f9f52e8 --- /dev/null +++ b/.changeset/new-wolves-hope.md @@ -0,0 +1,5 @@ +--- +"@ledgerhq/device-sdk-core": patch +--- + +use promise diff --git a/packages/core/src/api/DeviceSdk.ts b/packages/core/src/api/DeviceSdk.ts index ff705800d..941f9f4f5 100644 --- a/packages/core/src/api/DeviceSdk.ts +++ b/packages/core/src/api/DeviceSdk.ts @@ -69,8 +69,10 @@ export class DeviceSdk { } // HACKATHON STUFF - hackConnectAndDiscover() { - this.container.get(hackTypes.HackathonService).discover(); + async hackConnectAndDiscover() { + await this.container + .get(hackTypes.HackathonService) + .discover(); } hackDisconnect() { diff --git a/packages/core/src/internal/hackathon/HackathonService.ts b/packages/core/src/internal/hackathon/HackathonService.ts index f653d2d12..8f76ed318 100644 --- a/packages/core/src/internal/hackathon/HackathonService.ts +++ b/packages/core/src/internal/hackathon/HackathonService.ts @@ -131,18 +131,25 @@ export class HackathonService { this.connectedDevice.removeEventListener("inputreport", this.listener); } - discover() { - return this.startDiscoveringUseCase.execute().subscribe({ - next: (device) => { - this.discoveredDevice = device; - this.connect().catch((err) => console.log(err)); - }, - complete: () => { - this.stopDiscoveringUseCase.execute(); - }, - error: (error) => { - console.error(error); - }, + async discover() { + return new Promise((res, rej) => { + this.startDiscoveringUseCase.execute().subscribe({ + next: (device) => { + this.discoveredDevice = device; + this.connect() + .then(() => { + res(undefined); + }) + .catch((err) => console.log(err)); + }, + complete: () => { + this.stopDiscoveringUseCase.execute(); + }, + error: (error) => { + rej(error); + console.error(error); + }, + }); }); }