Skip to content

Commit 4cf8fa9

Browse files
committed
fix(events): Filter events to Upgrade ID
1 parent f9a7dc6 commit 4cf8fa9

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/Upgrade.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,23 @@ const McuManagerEvents = new EventEmitter(
5959
declare const UpgradeIdSymbol: unique symbol;
6060
type UpgradeID = string & { [UpgradeIdSymbol]: never };
6161

62+
type UpgradeEvent = 'upgradeStateChanged' | 'uploadProgress';
63+
64+
type UpgradeStateChangedPayload = {
65+
id: UpgradeID;
66+
state: FirmwareUpgradeState;
67+
};
68+
type UploadProgressPayload = { id: UpgradeID; progress: number };
69+
type UpgradeEventPayload = UpgradeStateChangedPayload & UploadProgressPayload;
70+
6271
type AddUpgradeListener = {
6372
(
6473
eventType: 'upgradeStateChanged',
65-
listener: ({ state }: { state: FirmwareUpgradeState }) => void
74+
listener: (event: UpgradeStateChangedPayload) => void
6675
): Subscription;
6776
(
6877
eventType: 'uploadProgress',
69-
listener: ({ progress }: { progress: number }) => void
78+
listener: (event: UploadProgressPayload) => void
7079
): Subscription;
7180
};
7281

@@ -106,10 +115,17 @@ class Upgrade {
106115
};
107116

108117
addListener: AddUpgradeListener = (
109-
eventType: any,
110-
listener: (...args: any[]) => void
118+
eventType: UpgradeEvent,
119+
listener: (event: UpgradeEventPayload) => void
111120
): Subscription => {
112-
return McuManagerEvents.addListener(eventType, listener);
121+
return McuManagerEvents.addListener<UpgradeEventPayload>(
122+
eventType,
123+
(event) => {
124+
if (event.id !== this.id) return;
125+
126+
listener(event);
127+
}
128+
);
113129
};
114130

115131
/**

0 commit comments

Comments
 (0)