jsgar 1.5.1 → 1.5.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.
Files changed (2) hide show
  1. package/dist/gar.umd.js +21 -12
  2. package/package.json +1 -1
package/dist/gar.umd.js CHANGED
@@ -60,8 +60,10 @@
60
60
  this.application = 'unknown-js';
61
61
  }
62
62
 
63
- this.serverTopicMap = new Map();
64
- this.serverKeyMap = new Map();
63
+ this.serverTopicIdToName = new Map();
64
+ this.serverTopicNameToId = new Map();
65
+ this.serverKeyIdToName = new Map();
66
+ this.serverKeyNameToId = new Map();
65
67
  this.localTopicCounter = 1;
66
68
  this.localKeyCounter = 1;
67
69
  this.localTopicMap = new Map();
@@ -199,12 +201,14 @@
199
201
  */
200
202
  _receiveMessages() {
201
203
  this.websocket.onmessage = (event) => {
204
+ let message = null;
202
205
  try {
203
- const message = JSON.parse(event.data);
204
- this._processMessage(message);
206
+ message = JSON.parse(event.data);
205
207
  } catch (e) {
206
208
  this.log('ERROR', `Invalid JSON received: ${e.message}`);
207
209
  }
210
+
211
+ this._processMessage(message);
208
212
  };
209
213
  }
210
214
 
@@ -403,12 +407,12 @@
403
407
  this.registerKeyIntroductionHandler((keyId, name, _class) =>
404
408
  this.log('DEBUG', `New server key: ${name} (Server ID: ${keyId})`));
405
409
  this.registerDeleteKeyHandler((keyId) =>
406
- this.log('DEBUG', `Delete key: ${this.serverKeyMap.get(keyId) || 'unknown'} (Server ID: ${keyId})`));
410
+ this.log('DEBUG', `Delete key: ${this.serverKeyIdToName.get(keyId) || 'unknown'} (Server ID: ${keyId})`));
407
411
  this.registerSubscriptionStatusHandler(this._defaultSubscriptionStatusHandler.bind(this));
408
412
  this.registerDeleteRecordHandler((keyId, topicId) =>
409
- this.log('DEBUG', `Delete record: ${this.serverKeyMap.get(keyId) || 'unknown'} - ${this.serverTopicMap.get(topicId) || 'unknown'}`));
413
+ this.log('DEBUG', `Delete record: ${this.serverKeyIdToName.get(keyId) || 'unknown'} - ${this.serverTopicIdToName.get(topicId) || 'unknown'}`));
410
414
  this.registerRecordUpdateHandler((keyId, topicId, value) =>
411
- this.log('DEBUG', `Record update: ${this.serverKeyMap.get(keyId) || 'unknown'} - ${this.serverTopicMap.get(topicId) || 'unknown'} = ${JSON.stringify(value)}`));
415
+ this.log('DEBUG', `Record update: ${this.serverKeyIdToName.get(keyId) || 'unknown'} - ${this.serverTopicIdToName.get(topicId) || 'unknown'} = ${JSON.stringify(value)}`));
412
416
  this.registerShutdownHandler(() => this.log('INFO', 'Shutdown received'));
413
417
  }
414
418
 
@@ -555,11 +559,14 @@
555
559
  _processMessage(message) {
556
560
  const msgType = message.message_type;
557
561
  if (msgType === 'TopicIntroduction') {
558
- this.serverTopicMap.set(message.value.topic_id, message.value.name);
562
+ this.serverTopicIdToName.set(message.value.topic_id, message.value.name);
563
+ this.serverTopicNameToId.set(message.value.name, message.value.topic_id);
559
564
  } else if (msgType === 'KeyIntroduction') {
560
- this.serverKeyMap.set(message.value.key_id, message.value.name);
565
+ this.serverKeyIdToName.set(message.value.key_id, message.value.name);
566
+ this.serverKeyNameToId.set(message.value.name, message.value.key_id);
561
567
  } else if (msgType === 'DeleteKey') {
562
- this.serverKeyMap.delete(message.value.key_id);
568
+ this.serverKeyNameToId.delete(this.serverKeyIdToName.get(message.value.key_id) || "");
569
+ this.serverKeyIdToName.delete(message.value.key_id);
563
570
  } else if (msgType === 'Heartbeat') {
564
571
  this.lastHeartbeatTime = Date.now() / 1000;
565
572
  if (this._initialGracePeriod) {
@@ -567,8 +574,10 @@
567
574
  }
568
575
  } else if (msgType === 'Introduction') {
569
576
  const value = message.value;
570
- this.serverTopicMap.clear();
571
- this.serverKeyMap.clear();
577
+ this.serverTopicIdToName.clear();
578
+ this.serverTopicNameToId.clear();
579
+ this.serverKeyIdToName.clear();
580
+ this.serverKeyNameToId.clear();
572
581
  this.recordMap.clear();
573
582
  this.heartbeatTimeout = Math.max(this.heartbeatTimeout, value.heartbeat_timeout_interval / 1000);
574
583
  this.lastHeartbeatTime = Date.now() / 1000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsgar",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "A Javascript client for the GAR protocol",
5
5
  "type": "module",
6
6
  "main": "dist/gar.umd.js",