quidproquo-web 0.0.129 → 0.0.130

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.
@@ -15,4 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./services"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -7,16 +7,19 @@ export declare enum WebsocketServiceEvent {
7
7
  export type SubscriptionHandle = {
8
8
  type: WebsocketServiceEvent;
9
9
  };
10
+ type WebsocketSendPayload = string | ArrayBufferLike | Blob | ArrayBufferView;
10
11
  export type WebSocketServiceSubscriptionFunction = (websocketService: WebsocketService, data?: string) => any;
11
12
  export declare class WebsocketService {
12
13
  private url;
13
14
  private socket;
14
15
  private eventListeners;
15
16
  private isDestroyed;
17
+ private pendingMessages;
16
18
  private subscriptions;
17
19
  constructor(url: string);
18
20
  destroy(): void;
19
21
  close(): void;
22
+ isConnected(): boolean;
20
23
  subscribe(subscriptionType: WebsocketServiceEvent, callback: WebSocketServiceSubscriptionFunction): SubscriptionHandle;
21
24
  unsubscribe(subscriptionHandle: SubscriptionHandle): boolean;
22
25
  unsubscribeAll(): void;
@@ -29,5 +32,6 @@ export declare class WebsocketService {
29
32
  private onMessage;
30
33
  private onError;
31
34
  private notifySubscribers;
32
- send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
35
+ send(data: WebsocketSendPayload): void;
33
36
  }
37
+ export {};
@@ -14,6 +14,7 @@ class WebsocketService {
14
14
  this.socket = null;
15
15
  this.eventListeners = {};
16
16
  this.isDestroyed = false;
17
+ this.pendingMessages = [];
17
18
  this.subscriptions = {
18
19
  [WebsocketServiceEvent.OPEN]: new Map(),
19
20
  [WebsocketServiceEvent.CLOSE]: new Map(),
@@ -33,21 +34,15 @@ class WebsocketService {
33
34
  var _a;
34
35
  (_a = this.socket) === null || _a === void 0 ? void 0 : _a.close();
35
36
  }
36
- subscribe(subscriptionType, callback) {
37
+ isConnected() {
37
38
  var _a;
39
+ return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;
40
+ }
41
+ subscribe(subscriptionType, callback) {
38
42
  const subscriptionHandle = {
39
43
  type: subscriptionType
40
44
  };
41
45
  this.subscriptions[subscriptionType].set(subscriptionHandle, callback);
42
- // If we are already open, then call the callback immediately
43
- if (subscriptionType === WebsocketServiceEvent.OPEN && ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN) {
44
- try {
45
- callback(this);
46
- }
47
- catch (e) {
48
- console.error('Error in Websocket onConnect callback: ', e);
49
- }
50
- }
51
46
  return subscriptionHandle;
52
47
  }
53
48
  unsubscribe(subscriptionHandle) {
@@ -82,7 +77,6 @@ class WebsocketService {
82
77
  for (const event in this.eventListeners) {
83
78
  if (this.eventListeners.hasOwnProperty(event)) {
84
79
  for (const listener of this.eventListeners[event]) {
85
- console.log('remove', event);
86
80
  this.socket.removeEventListener(event, listener);
87
81
  }
88
82
  }
@@ -101,8 +95,15 @@ class WebsocketService {
101
95
  onConnect() {
102
96
  console.log(`WebSocket connected: ${this.url}`);
103
97
  this.notifySubscribers(this.subscriptions.open);
98
+ // Send any pending messages once we are connected
99
+ const messages = this.pendingMessages;
100
+ this.pendingMessages = [];
101
+ messages.forEach((message) => {
102
+ this.send(message);
103
+ });
104
104
  }
105
105
  onClose() {
106
+ console.log(`Websocket disconnected`);
106
107
  this.removeAllEventListeners();
107
108
  this.reconnectIfNotDestroyed();
108
109
  this.notifySubscribers(this.subscriptions.close);
@@ -119,14 +120,12 @@ class WebsocketService {
119
120
  });
120
121
  }
121
122
  send(data) {
122
- var _a;
123
123
  if (this.socket && this.socket.readyState === WebSocket.OPEN) {
124
124
  this.socket.send(data);
125
125
  }
126
126
  else {
127
- console.error(`WebSocket is not open [${(_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState}]. Unable to send data.`);
127
+ this.pendingMessages.push(data);
128
128
  }
129
129
  }
130
130
  }
131
131
  exports.WebsocketService = WebsocketService;
132
- //# sourceMappingURL=WebsocketService.js.map
@@ -15,4 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./WebsocketService"), exports);
18
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quidproquo-web",
3
- "version": "0.0.129",
3
+ "version": "0.0.130",
4
4
  "description": "",
5
5
  "main": "./lib/commonjs/index.js",
6
6
  "types": "./lib/commonjs/index.d.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebsocketService.js","sourceRoot":"","sources":["../../../src/services/WebsocketService.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC"}