@welshman/net 0.0.31 → 0.0.33

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 (68) hide show
  1. package/build/src/Connection.cjs +29 -85
  2. package/build/src/Connection.cjs.map +1 -1
  3. package/build/src/Connection.d.ts +19 -21
  4. package/build/src/Connection.mjs +30 -86
  5. package/build/src/Connection.mjs.map +1 -1
  6. package/build/src/ConnectionAuth.cjs +28 -38
  7. package/build/src/ConnectionAuth.cjs.map +1 -1
  8. package/build/src/ConnectionAuth.d.ts +7 -11
  9. package/build/src/ConnectionAuth.mjs +28 -38
  10. package/build/src/ConnectionAuth.mjs.map +1 -1
  11. package/build/src/ConnectionEvent.cjs +16 -0
  12. package/build/src/ConnectionEvent.cjs.map +1 -0
  13. package/build/src/ConnectionEvent.d.ts +11 -0
  14. package/build/src/ConnectionEvent.mjs +13 -0
  15. package/build/src/ConnectionEvent.mjs.map +1 -0
  16. package/build/src/ConnectionSender.cjs +50 -0
  17. package/build/src/ConnectionSender.cjs.map +1 -0
  18. package/build/src/ConnectionSender.d.ts +10 -0
  19. package/build/src/ConnectionSender.mjs +46 -0
  20. package/build/src/ConnectionSender.mjs.map +1 -0
  21. package/build/src/ConnectionState.cjs +68 -0
  22. package/build/src/ConnectionState.cjs.map +1 -0
  23. package/build/src/ConnectionState.d.ts +17 -0
  24. package/build/src/ConnectionState.mjs +64 -0
  25. package/build/src/ConnectionState.mjs.map +1 -0
  26. package/build/src/ConnectionStats.cjs +86 -0
  27. package/build/src/ConnectionStats.cjs.map +1 -0
  28. package/build/src/ConnectionStats.d.ts +26 -0
  29. package/build/src/ConnectionStats.mjs +82 -0
  30. package/build/src/ConnectionStats.mjs.map +1 -0
  31. package/build/src/Pool.cjs +9 -15
  32. package/build/src/Pool.cjs.map +1 -1
  33. package/build/src/Pool.d.ts +1 -4
  34. package/build/src/Pool.mjs +9 -15
  35. package/build/src/Pool.mjs.map +1 -1
  36. package/build/src/Socket.cjs +94 -53
  37. package/build/src/Socket.cjs.map +1 -1
  38. package/build/src/Socket.d.ts +21 -28
  39. package/build/src/Socket.mjs +94 -51
  40. package/build/src/Socket.mjs.map +1 -1
  41. package/build/src/Subscribe.cjs +10 -5
  42. package/build/src/Subscribe.cjs.map +1 -1
  43. package/build/src/Subscribe.d.ts +1 -8
  44. package/build/src/Subscribe.mjs +10 -5
  45. package/build/src/Subscribe.mjs.map +1 -1
  46. package/build/src/index.cjs +4 -2
  47. package/build/src/index.cjs.map +1 -1
  48. package/build/src/index.d.ts +4 -2
  49. package/build/src/index.mjs +4 -2
  50. package/build/src/target/Relay.cjs +3 -2
  51. package/build/src/target/Relay.cjs.map +1 -1
  52. package/build/src/target/Relay.mjs +3 -2
  53. package/build/src/target/Relay.mjs.map +1 -1
  54. package/build/src/target/Relays.cjs +2 -1
  55. package/build/src/target/Relays.cjs.map +1 -1
  56. package/build/src/target/Relays.mjs +2 -1
  57. package/build/src/target/Relays.mjs.map +1 -1
  58. package/package.json +1 -1
  59. package/build/src/ConnectionMeta.cjs +0 -139
  60. package/build/src/ConnectionMeta.cjs.map +0 -1
  61. package/build/src/ConnectionMeta.d.ts +0 -48
  62. package/build/src/ConnectionMeta.mjs +0 -135
  63. package/build/src/ConnectionMeta.mjs.map +0 -1
  64. package/build/src/target/Plex.cjs +0 -27
  65. package/build/src/target/Plex.cjs.map +0 -1
  66. package/build/src/target/Plex.d.ts +0 -12
  67. package/build/src/target/Plex.mjs +0 -23
  68. package/build/src/target/Plex.mjs.map +0 -1
@@ -8,26 +8,20 @@ export class Pool extends Emitter {
8
8
  has(url) {
9
9
  return this.data.has(url);
10
10
  }
11
- get(url, { autoConnect = true, reconnectAfter = 3000 } = {}) {
12
- let connection = this.data.get(url);
13
- if (autoConnect) {
14
- if (!connection) {
15
- connection = new Connection(url);
16
- this.data.set(url, connection);
17
- this.emit('init', connection);
18
- connection.on('open', () => this.emit('open', connection));
19
- connection.on('close', () => this.emit('close', connection));
20
- }
21
- connection.ensureConnected({
22
- shouldReconnect: connection.meta.lastClose < Date.now() - reconnectAfter,
23
- });
11
+ get(url) {
12
+ const oldConnection = this.data.get(url);
13
+ if (oldConnection) {
14
+ return oldConnection;
24
15
  }
25
- return connection;
16
+ const newConnection = new Connection(url);
17
+ this.data.set(url, newConnection);
18
+ this.emit('init', newConnection);
19
+ return newConnection;
26
20
  }
27
21
  remove(url) {
28
22
  const connection = this.data.get(url);
29
23
  if (connection) {
30
- connection.destroy();
24
+ connection.close();
31
25
  this.data.delete(url);
32
26
  }
33
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.mjs","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;OAC9B,EAAC,UAAU,EAAC;AAEnB,MAAM,OAAO,IAAK,SAAQ,OAAO;IAE/B;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;IACvB,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IACD,GAAG,CAAC,GAAW,EAAE,EAAC,WAAW,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,EAAC,GAAG,EAAE;QAC/D,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,UAAU,EAAE;gBACf,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;gBAEhC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBAE7B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;gBAC1D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;aAC7D;YAED,UAAU,CAAC,eAAe,CAAC;gBACzB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc;aACzE,CAAC,CAAA;SACH;QAED,OAAO,UAAW,CAAA;IACpB,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErC,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,OAAO,EAAE,CAAA;YAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACtB;IACH,CAAC;IACD,KAAK;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACjB;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Pool.mjs","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAC,MAAM,eAAe;OAC9B,EAAC,UAAU,EAAC;AAEnB,MAAM,OAAO,IAAK,SAAQ,OAAO;IAE/B;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;IACvB,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IACD,GAAG,CAAC,GAAW;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAExC,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAA;SACrB;QAED,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;QAEzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAEhC,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,MAAM,CAAC,GAAW;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAErC,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,KAAK,EAAE,CAAA;YAElB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACtB;IACH,CAAC;IACD,KAAK;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACjB;IACH,CAAC;CACF"}
@@ -1,72 +1,113 @@
1
1
  "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
2
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
9
  };
10
+ var _Socket_init;
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Socket = exports.asMessage = exports.isMessage = void 0;
12
+ exports.Socket = exports.SocketStatus = void 0;
7
13
  const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
8
14
  const lib_1 = require("@welshman/lib");
9
- const isMessage = (m) => typeof m[0] === 'string';
10
- exports.isMessage = isMessage;
11
- const asMessage = (m) => (0, exports.isMessage)(m) ? m : m[1];
12
- exports.asMessage = asMessage;
15
+ const ConnectionEvent_1 = require("./ConnectionEvent.cjs");
16
+ var SocketStatus;
17
+ (function (SocketStatus) {
18
+ SocketStatus["New"] = "new";
19
+ SocketStatus["Open"] = "open";
20
+ SocketStatus["Opening"] = "opening";
21
+ SocketStatus["Closing"] = "closing";
22
+ SocketStatus["Closed"] = "closed";
23
+ SocketStatus["Error"] = "error";
24
+ SocketStatus["Invalid"] = "invalid";
25
+ })(SocketStatus || (exports.SocketStatus = SocketStatus = {}));
26
+ const { New, Open, Opening, Closing, Closed, Error, Invalid, } = SocketStatus;
13
27
  class Socket {
14
- constructor(url, opts) {
15
- this.url = url;
16
- this.opts = opts;
17
- this.isNew = () => this.ws === undefined;
18
- this.isInvalid = () => this.ws === 'invalid';
19
- this.isConnecting = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.CONNECTING; };
20
- this.isOpen = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.OPEN; };
21
- this.isClosing = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.CLOSING; };
22
- this.isClosed = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === isomorphic_ws_1.default.CLOSED; };
23
- this.onMessage = (event) => {
24
- try {
25
- const message = JSON.parse(event.data);
26
- if (Array.isArray(message)) {
27
- this.opts.onMessage(message);
28
- }
29
- else {
30
- console.warn(`Invalid message received on ${this.url}:`, message);
31
- }
32
- }
33
- catch (e) {
34
- // pass
35
- }
36
- };
37
- this.send = (message) => this.ws.send(JSON.stringify(message));
38
- this.connect = async () => {
39
- if (this.ws) {
40
- throw new Error(`Already attempted connection for ${this.url}`);
41
- }
42
- try {
43
- this.ws = new isomorphic_ws_1.default(this.url);
44
- this.ws.onopen = this.opts.onOpen;
45
- this.ws.onerror = this.opts.onFault;
46
- this.ws.onclose = this.opts.onClose;
47
- this.ws.onmessage = this.onMessage;
48
- }
49
- catch (e) {
50
- this.ws = 'invalid';
51
- this.opts.onFault();
52
- }
53
- while (this.isConnecting()) {
28
+ constructor(cxn) {
29
+ this.cxn = cxn;
30
+ this.status = SocketStatus.New;
31
+ this.worker = new lib_1.Worker();
32
+ this.wait = async () => {
33
+ while ([Opening, Closing].includes(this.status)) {
54
34
  await (0, lib_1.sleep)(100);
55
35
  }
56
36
  };
57
- this.disconnect = async () => {
58
- while (this.isConnecting()) {
59
- await (0, lib_1.sleep)(100);
37
+ this.open = async () => {
38
+ // If we're in a provisional state, wait
39
+ await this.wait();
40
+ // If the socket is closed, reset
41
+ if (this.status === Closed) {
42
+ this.status = New;
43
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Reset);
60
44
  }
61
- if (this.isOpen()) {
62
- this.ws.close();
63
- }
64
- while (this.isClosing()) {
65
- await (0, lib_1.sleep)(100);
45
+ // If the socket is new, connect
46
+ if (this.status === New) {
47
+ __classPrivateFieldGet(this, _Socket_init, "f").call(this);
66
48
  }
49
+ // Wait until we're connected (or fail to connect)
50
+ await this.wait();
51
+ };
52
+ this.close = async () => {
53
+ var _a;
54
+ this.worker.pause();
55
+ (_a = this.ws) === null || _a === void 0 ? void 0 : _a.close();
56
+ // Allow the socket to start closing before waiting
57
+ await (0, lib_1.sleep)(100);
58
+ // Wait for the socket to fully clos
59
+ await this.wait();
67
60
  this.ws = undefined;
68
61
  };
62
+ this.send = async (message) => {
63
+ await this.open();
64
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Send, message);
65
+ this.ws.send(JSON.stringify(message));
66
+ };
67
+ _Socket_init.set(this, () => {
68
+ try {
69
+ this.ws = new isomorphic_ws_1.default(this.cxn.url);
70
+ this.status = Opening;
71
+ this.ws.onopen = () => {
72
+ this.status = Open;
73
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Open);
74
+ };
75
+ this.ws.onerror = () => {
76
+ this.status = Error;
77
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Error);
78
+ };
79
+ this.ws.onclose = () => {
80
+ if (this.status !== Error) {
81
+ this.status = Closed;
82
+ }
83
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Close);
84
+ };
85
+ this.ws.onmessage = (event) => {
86
+ try {
87
+ const message = JSON.parse(event.data);
88
+ if (Array.isArray(message)) {
89
+ this.worker.push(message);
90
+ }
91
+ else {
92
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.InvalidMessage, event.data);
93
+ }
94
+ }
95
+ catch (e) {
96
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.InvalidMessage, event.data);
97
+ }
98
+ };
99
+ }
100
+ catch (e) {
101
+ this.status = Invalid;
102
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.InvalidUrl);
103
+ }
104
+ });
105
+ // Use a worker to throttle incoming data
106
+ this.worker.addGlobalHandler((message) => {
107
+ this.cxn.emit(ConnectionEvent_1.ConnectionEvent.Receive, message);
108
+ });
69
109
  }
70
110
  }
71
111
  exports.Socket = Socket;
112
+ _Socket_init = new WeakMap();
72
113
  //# sourceMappingURL=Socket.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Socket.cjs","sourceRoot":"","sources":["../../src/Socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Socket.cjs","sourceRoot":"","sources":["../../src/Socket.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,25 @@
1
1
  import WebSocket from "isomorphic-ws";
2
+ import { Worker } from '@welshman/lib';
3
+ import type { Connection } from './Connection';
2
4
  export type Message = [string, ...any[]];
3
- export type PlexMessage = [{
4
- relays: string[];
5
- }, Message];
6
- export type SocketMessage = Message | PlexMessage;
7
- export declare const isMessage: (m: SocketMessage) => boolean;
8
- export declare const asMessage: (m: SocketMessage) => Message;
9
- export type SocketOpts = {
10
- onOpen: () => void;
11
- onClose: () => void;
12
- onFault: () => void;
13
- onMessage: (message: SocketMessage) => void;
14
- };
5
+ export declare enum SocketStatus {
6
+ New = "new",
7
+ Open = "open",
8
+ Opening = "opening",
9
+ Closing = "closing",
10
+ Closed = "closed",
11
+ Error = "error",
12
+ Invalid = "invalid"
13
+ }
15
14
  export declare class Socket {
16
- readonly url: string;
17
- readonly opts: SocketOpts;
18
- ws?: WebSocket | 'invalid';
19
- constructor(url: string, opts: SocketOpts);
20
- isNew: () => boolean;
21
- isInvalid: () => boolean;
22
- isConnecting: () => boolean;
23
- isOpen: () => boolean;
24
- isClosing: () => boolean;
25
- isClosed: () => boolean;
26
- onMessage: (event: {
27
- data: string;
28
- }) => void;
29
- send: (message: any) => any;
30
- connect: () => Promise<void>;
31
- disconnect: () => Promise<void>;
15
+ #private;
16
+ readonly cxn: Connection;
17
+ status: SocketStatus;
18
+ worker: Worker<Message>;
19
+ ws?: WebSocket;
20
+ constructor(cxn: Connection);
21
+ wait: () => Promise<void>;
22
+ open: () => Promise<void>;
23
+ close: () => Promise<void>;
24
+ send: (message: Message) => Promise<void>;
32
25
  }
@@ -1,63 +1,106 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _Socket_init;
1
7
  import WebSocket from "isomorphic-ws";
2
- import { sleep } from '@welshman/lib';
3
- export const isMessage = (m) => typeof m[0] === 'string';
4
- export const asMessage = (m) => isMessage(m) ? m : m[1];
8
+ import { Worker, sleep } from '@welshman/lib';
9
+ import { ConnectionEvent } from "./ConnectionEvent.mjs";
10
+ export var SocketStatus;
11
+ (function (SocketStatus) {
12
+ SocketStatus["New"] = "new";
13
+ SocketStatus["Open"] = "open";
14
+ SocketStatus["Opening"] = "opening";
15
+ SocketStatus["Closing"] = "closing";
16
+ SocketStatus["Closed"] = "closed";
17
+ SocketStatus["Error"] = "error";
18
+ SocketStatus["Invalid"] = "invalid";
19
+ })(SocketStatus || (SocketStatus = {}));
20
+ const { New, Open, Opening, Closing, Closed, Error, Invalid, } = SocketStatus;
5
21
  export class Socket {
6
- constructor(url, opts) {
7
- this.url = url;
8
- this.opts = opts;
9
- this.isNew = () => this.ws === undefined;
10
- this.isInvalid = () => this.ws === 'invalid';
11
- this.isConnecting = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CONNECTING; };
12
- this.isOpen = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN; };
13
- this.isClosing = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSING; };
14
- this.isClosed = () => { var _a; return ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.CLOSED; };
15
- this.onMessage = (event) => {
16
- try {
17
- const message = JSON.parse(event.data);
18
- if (Array.isArray(message)) {
19
- this.opts.onMessage(message);
20
- }
21
- else {
22
- console.warn(`Invalid message received on ${this.url}:`, message);
23
- }
24
- }
25
- catch (e) {
26
- // pass
27
- }
28
- };
29
- this.send = (message) => this.ws.send(JSON.stringify(message));
30
- this.connect = async () => {
31
- if (this.ws) {
32
- throw new Error(`Already attempted connection for ${this.url}`);
33
- }
34
- try {
35
- this.ws = new WebSocket(this.url);
36
- this.ws.onopen = this.opts.onOpen;
37
- this.ws.onerror = this.opts.onFault;
38
- this.ws.onclose = this.opts.onClose;
39
- this.ws.onmessage = this.onMessage;
40
- }
41
- catch (e) {
42
- this.ws = 'invalid';
43
- this.opts.onFault();
44
- }
45
- while (this.isConnecting()) {
22
+ constructor(cxn) {
23
+ this.cxn = cxn;
24
+ this.status = SocketStatus.New;
25
+ this.worker = new Worker();
26
+ this.wait = async () => {
27
+ while ([Opening, Closing].includes(this.status)) {
46
28
  await sleep(100);
47
29
  }
48
30
  };
49
- this.disconnect = async () => {
50
- while (this.isConnecting()) {
51
- await sleep(100);
52
- }
53
- if (this.isOpen()) {
54
- this.ws.close();
31
+ this.open = async () => {
32
+ // If we're in a provisional state, wait
33
+ await this.wait();
34
+ // If the socket is closed, reset
35
+ if (this.status === Closed) {
36
+ this.status = New;
37
+ this.cxn.emit(ConnectionEvent.Reset);
55
38
  }
56
- while (this.isClosing()) {
57
- await sleep(100);
39
+ // If the socket is new, connect
40
+ if (this.status === New) {
41
+ __classPrivateFieldGet(this, _Socket_init, "f").call(this);
58
42
  }
43
+ // Wait until we're connected (or fail to connect)
44
+ await this.wait();
45
+ };
46
+ this.close = async () => {
47
+ var _a;
48
+ this.worker.pause();
49
+ (_a = this.ws) === null || _a === void 0 ? void 0 : _a.close();
50
+ // Allow the socket to start closing before waiting
51
+ await sleep(100);
52
+ // Wait for the socket to fully clos
53
+ await this.wait();
59
54
  this.ws = undefined;
60
55
  };
56
+ this.send = async (message) => {
57
+ await this.open();
58
+ this.cxn.emit(ConnectionEvent.Send, message);
59
+ this.ws.send(JSON.stringify(message));
60
+ };
61
+ _Socket_init.set(this, () => {
62
+ try {
63
+ this.ws = new WebSocket(this.cxn.url);
64
+ this.status = Opening;
65
+ this.ws.onopen = () => {
66
+ this.status = Open;
67
+ this.cxn.emit(ConnectionEvent.Open);
68
+ };
69
+ this.ws.onerror = () => {
70
+ this.status = Error;
71
+ this.cxn.emit(ConnectionEvent.Error);
72
+ };
73
+ this.ws.onclose = () => {
74
+ if (this.status !== Error) {
75
+ this.status = Closed;
76
+ }
77
+ this.cxn.emit(ConnectionEvent.Close);
78
+ };
79
+ this.ws.onmessage = (event) => {
80
+ try {
81
+ const message = JSON.parse(event.data);
82
+ if (Array.isArray(message)) {
83
+ this.worker.push(message);
84
+ }
85
+ else {
86
+ this.cxn.emit(ConnectionEvent.InvalidMessage, event.data);
87
+ }
88
+ }
89
+ catch (e) {
90
+ this.cxn.emit(ConnectionEvent.InvalidMessage, event.data);
91
+ }
92
+ };
93
+ }
94
+ catch (e) {
95
+ this.status = Invalid;
96
+ this.cxn.emit(ConnectionEvent.InvalidUrl);
97
+ }
98
+ });
99
+ // Use a worker to throttle incoming data
100
+ this.worker.addGlobalHandler((message) => {
101
+ this.cxn.emit(ConnectionEvent.Receive, message);
102
+ });
61
103
  }
62
104
  }
105
+ _Socket_init = new WeakMap();
63
106
  //# sourceMappingURL=Socket.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Socket.mjs","sourceRoot":"","sources":["../../src/Socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Socket.mjs","sourceRoot":"","sources":["../../src/Socket.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.subscribe = exports.executeSubscriptionBatched = exports.executeSubscrip
4
4
  const lib_1 = require("@welshman/lib");
5
5
  const util_1 = require("@welshman/util");
6
6
  const Tracker_1 = require("./Tracker.cjs");
7
+ const ConnectionEvent_1 = require("./ConnectionEvent.cjs");
7
8
  // `subscribe` is a super function that handles batching subscriptions by merging
8
9
  // them based on parameters (filters and subscribe opts), then splits them by relay.
9
10
  // This results in fewer REQs being opened per connection, fewer duplicate events
@@ -180,20 +181,22 @@ const _executeSubscription = (sub) => {
180
181
  });
181
182
  emitter.on(SubscriptionEvent.Eose, (url) => {
182
183
  completedRelays.add(url);
183
- if (closeOnEose && completedRelays.size === executor.target.connections.length) {
184
+ if (closeOnEose && completedRelays.size === (0, lib_1.uniq)(relays).length) {
184
185
  onComplete();
185
186
  }
186
187
  });
187
188
  emitter.on(SubscriptionEvent.Close, (url) => {
188
189
  completedRelays.add(url);
189
- if (completedRelays.size === executor.target.connections.length) {
190
+ if (completedRelays.size === (0, lib_1.uniq)(relays).length) {
190
191
  onComplete();
191
192
  }
192
193
  });
193
194
  emitter.on(SubscriptionEvent.Complete, () => {
194
195
  emitter.removeAllListeners();
195
196
  subs.forEach(sub => sub.unsubscribe());
196
- executor.target.connections.forEach((c) => c.off("close", onClose));
197
+ executor.target.connections.forEach((c) => {
198
+ c.off(ConnectionEvent_1.ConnectionEvent.Close, onClose);
199
+ });
197
200
  executor.target.cleanup();
198
201
  });
199
202
  // Functions for emitting events
@@ -225,13 +228,15 @@ const _executeSubscription = (sub) => {
225
228
  if (timeout)
226
229
  setTimeout(onComplete, timeout + authTimeout);
227
230
  // If one of our connections gets closed make sure to kill our sub
228
- executor.target.connections.forEach((c) => c.on('close', onClose));
231
+ executor.target.connections.forEach((c) => {
232
+ c.on(ConnectionEvent_1.ConnectionEvent.Close, onClose);
233
+ });
229
234
  // Finally, start our subscription. If we didn't get any filters, don't even send the
230
235
  // request, just close it. This can be valid when a caller fulfills a request themselves.
231
236
  if (filters.length > 0) {
232
237
  Promise.all(executor.target.connections.map(async (connection) => {
233
238
  if (authTimeout) {
234
- await connection.auth.waitIfPending({ timeout: authTimeout });
239
+ await connection.auth.attempt(authTimeout);
235
240
  }
236
241
  })).then(() => {
237
242
  // If we send too many filters in a request relays will refuse to respond. REQs are rate
@@ -1 +1 @@
1
- {"version":3,"file":"Subscribe.cjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Subscribe.cjs","sourceRoot":"","sources":["../../src/Subscribe.ts"],"names":[],"mappings":"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"}
@@ -50,14 +50,7 @@ export declare const mergeSubscriptions: (subs: Subscription[]) => {
50
50
  controller: AbortController;
51
51
  close: () => void;
52
52
  };
53
- export declare const optimizeSubscriptions: (subs: Subscription[]) => {
54
- id: string;
55
- request: SubscribeRequest;
56
- emitter: Emitter;
57
- tracker: Tracker;
58
- controller: AbortController;
59
- close: () => void;
60
- }[];
53
+ export declare const optimizeSubscriptions: (subs: Subscription[]) => Subscription[];
61
54
  export declare const executeSubscription: (sub: Subscription) => void;
62
55
  export declare const executeSubscriptions: (subs: Subscription[]) => void;
63
56
  export declare const executeSubscriptionBatched: (sub: Subscription) => void;