socket-function 0.7.11 → 0.7.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "socket-function",
3
- "version": "0.7.11",
3
+ "version": "0.7.14",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -83,10 +83,10 @@ export interface SenderInterface {
83
83
 
84
84
  send(data: string | Buffer): void;
85
85
 
86
- on(event: "open", listener: () => void): this;
87
- on(event: "close", listener: (code: number, reason: Buffer) => void): this;
88
- on(event: "error", listener: (err: Error) => void): this;
89
- on(event: "message", listener: (data: ws.RawData, isBinary: boolean) => void): this;
86
+ addEventListener(event: "open", listener: () => void): void;
87
+ addEventListener(event: "close", listener: () => void): void;
88
+ addEventListener(event: "error", listener: (err: { message: string }) => void): void;
89
+ addEventListener(event: "message", listener: (data: ws.RawData | ws.MessageEvent | string) => void): void;
90
90
  }
91
91
 
92
92
  async function createCallFactory(
@@ -107,7 +107,7 @@ async function createCallFactory(
107
107
  niceConnectionName += `(${fromPort})`;
108
108
  }
109
109
 
110
- let retriesEnabled = location.listeningPorts.length === 0;
110
+ let retriesEnabled = location.listeningPorts.length > 0;
111
111
 
112
112
  let lastReceivedSeqNum = 0;
113
113
 
@@ -205,20 +205,20 @@ async function createCallFactory(
205
205
  let port = ports[reconnectAttempts % ports.length];
206
206
  let newWebSocket = createWebsocket(location.address, port);
207
207
 
208
- setupWebsocket(newWebSocket);
209
-
210
208
  let connectError = await new Promise<string | undefined>(resolve => {
211
- newWebSocket.on("open", () => {
209
+ newWebSocket.addEventListener("open", () => {
212
210
  resolve(undefined);
213
211
  });
214
- newWebSocket.on("close", () => {
212
+ newWebSocket.addEventListener("close", () => {
215
213
  resolve("Connection closed for non-error reason?");
216
214
  });
217
- newWebSocket.on("error", e => {
218
- resolve(String(e.stack));
215
+ newWebSocket.addEventListener("error", e => {
216
+ resolve(String(e.message));
219
217
  });
220
218
  });
221
219
 
220
+ setupWebsocket(newWebSocket);
221
+
222
222
  if (!connectError) {
223
223
  console.log(`Reconnected to ${location.address}:${port}`);
224
224
 
@@ -266,27 +266,27 @@ async function createCallFactory(
266
266
  }
267
267
 
268
268
  function setupWebsocket(webSocket: SenderInterface) {
269
- webSocket.on("error", e => {
269
+ webSocket.addEventListener("error", e => {
270
270
  console.log(`Websocket error for ${niceConnectionName}`, e);
271
271
  });
272
272
 
273
- webSocket.on("close", async () => {
273
+ webSocket.addEventListener("close", async () => {
274
274
  console.log(`Websocket closed ${niceConnectionName}`);
275
275
  if (retriesEnabled) {
276
276
  await tryToReconnect();
277
277
  }
278
278
  });
279
279
 
280
- webSocket.on("message", onMessage);
280
+ webSocket.addEventListener("message", onMessage);
281
281
  }
282
282
 
283
283
 
284
- async function onMessage(message: ws.RawData | MessageEvent | string) {
284
+ async function onMessage(message: ws.RawData | ws.MessageEvent | string) {
285
285
  try {
286
+ if (typeof message === "object" && "data" in message) {
287
+ message = message.data;
288
+ }
286
289
  if (!isNode()) {
287
- if (typeof message === "object" && "data" in message) {
288
- message = message.data;
289
- }
290
290
  if (message instanceof Blob) {
291
291
  message = Buffer.from(await message.arrayBuffer());
292
292
  }
@@ -90,14 +90,7 @@ export function createWebsocket(address: string, port: number): SenderInterface
90
90
  // NOTE: We assume an HTTP request has already been made, which will setup a nodeId cookie
91
91
  // (And as this point we can't even use peer certificates if we wanted to, as this must be done
92
92
  // directly in the browser)
93
- let webSocket = new WebSocket(`wss://${address}:${port}`);
94
- return Object.assign(webSocket, {
95
- on(event: string, callback: any) {
96
- // TODO: Use better type safety here
97
- (webSocket as any)["on" + event] = callback;
98
- return this as any;
99
- },
100
- });
93
+ return new WebSocket(`wss://${address}:${port}`);
101
94
  } else {
102
95
  let { key, cert } = getCertKeyPair();
103
96
  return new ws.WebSocket(`wss://${address}:${port}`, {