@photon-os/sdk 1.0.0-alpha.2 → 1.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -139,7 +139,7 @@ declare class DeviceManager {
|
|
|
139
139
|
/** Unregister a device */
|
|
140
140
|
unregisterDevice(deviceId: string): Promise<void>;
|
|
141
141
|
/** Subscribe to messages from all registered devices */
|
|
142
|
-
subscribeToMessages(callback: DeviceMessageCallback): Unsubscribe;
|
|
142
|
+
subscribeToMessages(deviceId: string, callback: DeviceMessageCallback): Unsubscribe;
|
|
143
143
|
/** Internal: Start the message subscription via RPC */
|
|
144
144
|
private startSubscription;
|
|
145
145
|
/** Internal: Stop the message subscription */
|
package/dist/index.d.ts
CHANGED
|
@@ -139,7 +139,7 @@ declare class DeviceManager {
|
|
|
139
139
|
/** Unregister a device */
|
|
140
140
|
unregisterDevice(deviceId: string): Promise<void>;
|
|
141
141
|
/** Subscribe to messages from all registered devices */
|
|
142
|
-
subscribeToMessages(callback: DeviceMessageCallback): Unsubscribe;
|
|
142
|
+
subscribeToMessages(deviceId: string, callback: DeviceMessageCallback): Unsubscribe;
|
|
143
143
|
/** Internal: Start the message subscription via RPC */
|
|
144
144
|
private startSubscription;
|
|
145
145
|
/** Internal: Stop the message subscription */
|
package/dist/index.js
CHANGED
|
@@ -1236,7 +1236,7 @@ var AppManager = class {
|
|
|
1236
1236
|
// src/framework/DeviceManager.ts
|
|
1237
1237
|
var DeviceManager = class {
|
|
1238
1238
|
constructor(os) {
|
|
1239
|
-
this.messageCallbacks =
|
|
1239
|
+
this.messageCallbacks = {};
|
|
1240
1240
|
this.subscribed = false;
|
|
1241
1241
|
this.os = os;
|
|
1242
1242
|
}
|
|
@@ -1256,14 +1256,21 @@ var DeviceManager = class {
|
|
|
1256
1256
|
await api2.devices_unregister(deviceId);
|
|
1257
1257
|
}
|
|
1258
1258
|
/** Subscribe to messages from all registered devices */
|
|
1259
|
-
subscribeToMessages(callback) {
|
|
1260
|
-
this.messageCallbacks.
|
|
1259
|
+
subscribeToMessages(deviceId, callback) {
|
|
1260
|
+
this.messageCallbacks[deviceId] = this.messageCallbacks[deviceId] ?? [];
|
|
1261
|
+
this.messageCallbacks[deviceId].add(callback);
|
|
1261
1262
|
if (!this.subscribed) {
|
|
1262
1263
|
this.startSubscription();
|
|
1263
1264
|
}
|
|
1264
1265
|
return () => {
|
|
1265
|
-
this.messageCallbacks
|
|
1266
|
-
|
|
1266
|
+
if (this.messageCallbacks[deviceId]) {
|
|
1267
|
+
this.messageCallbacks[deviceId].delete(callback);
|
|
1268
|
+
}
|
|
1269
|
+
const totalSubscriptions = Object.values(this.messageCallbacks).reduce(
|
|
1270
|
+
(acc, cv) => acc + cv.size,
|
|
1271
|
+
0
|
|
1272
|
+
);
|
|
1273
|
+
if (totalSubscriptions === 0 && this.subscribed) {
|
|
1267
1274
|
this.stopSubscription();
|
|
1268
1275
|
}
|
|
1269
1276
|
};
|
|
@@ -1272,7 +1279,8 @@ var DeviceManager = class {
|
|
|
1272
1279
|
async startSubscription() {
|
|
1273
1280
|
const api2 = await this.os.getRPCAPI();
|
|
1274
1281
|
await api2.devices_subscribe((message) => {
|
|
1275
|
-
|
|
1282
|
+
const callbacks = this.messageCallbacks[message.deviceId] ?? [];
|
|
1283
|
+
for (const callback of callbacks) {
|
|
1276
1284
|
try {
|
|
1277
1285
|
callback(message);
|
|
1278
1286
|
} catch (error) {
|