@rc-ex/ws 1.2.1 → 1.2.2

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 (52) hide show
  1. package/lib/exceptions/ClosedException.js.map +1 -1
  2. package/lib/exceptions/ClosedException.ts +7 -0
  3. package/lib/exceptions/ConnectionException.js.map +1 -1
  4. package/lib/exceptions/ConnectionException.ts +17 -0
  5. package/lib/exceptions/TimeoutException.js.map +1 -1
  6. package/lib/exceptions/TimeoutException.ts +7 -0
  7. package/lib/index.d.ts +2 -2
  8. package/lib/index.js +2 -2
  9. package/lib/index.js.map +1 -1
  10. package/lib/index.ts +418 -0
  11. package/lib/rest.d.ts +1 -1
  12. package/lib/rest.js +1 -1
  13. package/lib/rest.js.map +1 -1
  14. package/lib/rest.ts +71 -0
  15. package/lib/subscription.d.ts +2 -2
  16. package/lib/subscription.js.map +1 -1
  17. package/lib/subscription.ts +131 -0
  18. package/lib/types.d.ts +1 -1
  19. package/lib/types.js.map +1 -1
  20. package/lib/types.ts +85 -0
  21. package/lib/utils.js.map +1 -1
  22. package/lib/utils.ts +82 -0
  23. package/package.json +5 -5
  24. package/src/exceptions/ClosedException.d.ts +4 -0
  25. package/src/exceptions/ClosedException.js +9 -0
  26. package/src/exceptions/ClosedException.js.map +1 -0
  27. package/src/exceptions/ConnectionException.d.ts +7 -0
  28. package/src/exceptions/ConnectionException.js +16 -0
  29. package/src/exceptions/ConnectionException.js.map +1 -0
  30. package/src/exceptions/TimeoutException.d.ts +4 -0
  31. package/src/exceptions/TimeoutException.js +9 -0
  32. package/src/exceptions/TimeoutException.js.map +1 -0
  33. package/src/index.d.ts +44 -0
  34. package/src/index.js +329 -0
  35. package/src/index.js.map +1 -0
  36. package/src/index.ts +4 -4
  37. package/src/rest.d.ts +3 -0
  38. package/src/rest.js +55 -0
  39. package/src/rest.js.map +1 -0
  40. package/src/rest.ts +2 -2
  41. package/src/subscription.d.ts +20 -0
  42. package/src/subscription.js +91 -0
  43. package/src/subscription.js.map +1 -0
  44. package/src/subscription.ts +3 -3
  45. package/src/types.d.ts +61 -0
  46. package/src/types.js +3 -0
  47. package/src/types.js.map +1 -0
  48. package/src/types.ts +1 -1
  49. package/src/utils.d.ts +8 -0
  50. package/src/utils.js +72 -0
  51. package/src/utils.js.map +1 -0
  52. package/tsconfig.json +0 -3
package/src/utils.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type WS from "isomorphic-ws";
2
+ import type { WsgEvent, WsgMeta } from "./types";
3
+ declare class Utils {
4
+ static splitWsgData(wsgData: string): [WsgMeta, any];
5
+ static debugWebSocket(_ws: WS): void;
6
+ static waitForWebSocketMessage(ws: WS, matchCondition: (meta: WsgMeta) => boolean, timeout?: number): Promise<[WsgMeta, any, WsgEvent]>;
7
+ }
8
+ export default Utils;
package/src/utils.js ADDED
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ClosedException_1 = __importDefault(require("./exceptions/ClosedException"));
7
+ const TimeoutException_1 = __importDefault(require("./exceptions/TimeoutException"));
8
+ class Utils {
9
+ static splitWsgData(wsgData) {
10
+ if (wsgData.includes(",--Boundary")) {
11
+ const index = wsgData.indexOf(",--Boundary");
12
+ return [
13
+ JSON.parse(wsgData.substring(1, index)),
14
+ wsgData.substring(index + 1, wsgData.length - 1),
15
+ ];
16
+ }
17
+ return JSON.parse(wsgData);
18
+ }
19
+ static debugWebSocket(_ws) {
20
+ const ws = _ws;
21
+ const send = ws.send.bind(ws);
22
+ ws.send = async (str) => {
23
+ await send(str);
24
+ console.debug(`*** WebSocket outgoing message: ***
25
+ ${JSON.stringify(JSON.parse(str), null, 2)}
26
+ ******`);
27
+ };
28
+ ws.addEventListener("message", (mEvent) => {
29
+ const event = mEvent;
30
+ console.debug(`*** WebSocket incoming message: ***
31
+ ${JSON.stringify(JSON.parse(event.data), null, 2)}
32
+ ******`);
33
+ });
34
+ ws.addEventListener("open", (event) => {
35
+ console.debug("WebSocket open event:", event);
36
+ });
37
+ ws.addEventListener("error", (event) => {
38
+ console.debug("WebSocket error event:", event);
39
+ });
40
+ ws.addEventListener("close", (event) => {
41
+ console.debug("WebSocket close event:", event);
42
+ });
43
+ }
44
+ static waitForWebSocketMessage(ws, matchCondition, timeout = 60000) {
45
+ return new Promise((resolve, reject) => {
46
+ const checkHandle = setInterval(() => {
47
+ if (ws.readyState === ws.CLOSED) {
48
+ clearInterval(checkHandle);
49
+ reject(new ClosedException_1.default());
50
+ }
51
+ }, 1000);
52
+ const timeoutHandle = setTimeout(() => {
53
+ ws.removeEventListener("message", handler);
54
+ clearInterval(checkHandle);
55
+ reject(new TimeoutException_1.default());
56
+ }, timeout);
57
+ const handler = (mEvent) => {
58
+ const event = mEvent;
59
+ const [meta, body] = Utils.splitWsgData(event.data);
60
+ if (matchCondition(meta)) {
61
+ ws.removeEventListener("message", handler);
62
+ clearInterval(checkHandle);
63
+ clearTimeout(timeoutHandle);
64
+ resolve([meta, body, event]);
65
+ }
66
+ };
67
+ ws.addEventListener("message", handler);
68
+ });
69
+ }
70
+ }
71
+ exports.default = Utils;
72
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"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"}
package/tsconfig.json CHANGED
@@ -1,7 +1,4 @@
1
1
  {
2
2
  "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "lib"
5
- },
6
3
  "include": ["src"]
7
4
  }