quidproquo-web 0.0.129 → 0.0.131

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
  }
@@ -99,8 +93,13 @@ class WebsocketService {
99
93
  }, 1000);
100
94
  }
101
95
  onConnect() {
102
- console.log(`WebSocket connected: ${this.url}`);
103
96
  this.notifySubscribers(this.subscriptions.open);
97
+ // Send any pending messages once we are connected
98
+ const messages = this.pendingMessages;
99
+ this.pendingMessages = [];
100
+ messages.forEach((message) => {
101
+ this.send(message);
102
+ });
104
103
  }
105
104
  onClose() {
106
105
  this.removeAllEventListeners();
@@ -119,14 +118,12 @@ class WebsocketService {
119
118
  });
120
119
  }
121
120
  send(data) {
122
- var _a;
123
121
  if (this.socket && this.socket.readyState === WebSocket.OPEN) {
124
122
  this.socket.send(data);
125
123
  }
126
124
  else {
127
- console.error(`WebSocket is not open [${(_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState}]. Unable to send data.`);
125
+ this.pendingMessages.push(data);
128
126
  }
129
127
  }
130
128
  }
131
129
  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.131",
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"}