dfx 0.42.8 → 0.42.9
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/DiscordGateway/WS.js +11 -8
- package/DiscordGateway/WS.js.map +1 -1
- package/package.json +3 -3
- package/src/DiscordGateway/WS.ts +18 -12
package/DiscordGateway/WS.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
2
2
|
import * as tsplus_module_2 from "@effect/io/Ref";
|
|
3
|
-
import * as tsplus_module_3 from "@effect/
|
|
4
|
-
import * as tsplus_module_4 from "@effect/
|
|
5
|
-
import * as tsplus_module_5 from "
|
|
3
|
+
import * as tsplus_module_3 from "@effect/io/Runtime";
|
|
4
|
+
import * as tsplus_module_4 from "@effect/data/Duration";
|
|
5
|
+
import * as tsplus_module_5 from "@effect/io/Queue";
|
|
6
|
+
import * as tsplus_module_6 from "dfx/_common";
|
|
6
7
|
import { Log } from "dfx/Log";
|
|
7
8
|
import WebSocket from "isomorphic-ws";
|
|
8
9
|
export const Reconnect = Symbol();
|
|
@@ -30,9 +31,11 @@ const socket = (urlRef) => tsplus_module_1.acquireRelease(tsplus_module_1.map(ts
|
|
|
30
31
|
ws.removeAllListeners?.();
|
|
31
32
|
ws.close();
|
|
32
33
|
}));
|
|
33
|
-
const offer = (ws, queue, log) => tsplus_module_1.async(resume => {
|
|
34
|
+
const offer = (ws, queue, log) => tsplus_module_1.flatMap(tsplus_module_1.runtime(), runtime => tsplus_module_1.async(resume => {
|
|
35
|
+
const run = tsplus_module_3.runFork(runtime);
|
|
34
36
|
ws.addEventListener("message", message => {
|
|
35
|
-
|
|
37
|
+
run(tsplus_module_1.zipLeft(queue
|
|
38
|
+
.offer(message.data), log.debug("WS", "offer", message.data)));
|
|
36
39
|
});
|
|
37
40
|
ws.addEventListener("error", cause => {
|
|
38
41
|
resume(tsplus_module_1.fail(new WebSocketError("error", cause)));
|
|
@@ -40,7 +43,7 @@ const offer = (ws, queue, log) => tsplus_module_1.async(resume => {
|
|
|
40
43
|
ws.addEventListener("close", e => {
|
|
41
44
|
resume(tsplus_module_1.fail(new WebSocketCloseError(e.code, e.reason)));
|
|
42
45
|
});
|
|
43
|
-
});
|
|
46
|
+
}));
|
|
44
47
|
const waitForOpen = (ws, timeout) => tsplus_module_1.timeoutFail(tsplus_module_1.suspend(() => {
|
|
45
48
|
if (ws.readyState === WebSocket.OPEN) {
|
|
46
49
|
return tsplus_module_1.unit();
|
|
@@ -63,12 +66,12 @@ const send = (ws, take, log) => tsplus_module_1.forever(tsplus_module_1.tap(tspl
|
|
|
63
66
|
});
|
|
64
67
|
}));
|
|
65
68
|
const make = tsplus_module_1.map(Log, log => {
|
|
66
|
-
const connect = (url, takeOutbound, onReconnect = tsplus_module_1.unit(), openTimeout =
|
|
69
|
+
const connect = (url, takeOutbound, onReconnect = tsplus_module_1.unit(), openTimeout = tsplus_module_4.seconds(3)) => tsplus_module_1.map(tsplus_module_5.unbounded(), queue => {
|
|
67
70
|
const run = tsplus_module_1.retryWhile(tsplus_module_1.tapError(tsplus_module_1.scoped(tsplus_module_1.flatMap(socket(url), ws => tsplus_module_1.zipParLeft(offer(ws, queue, log), tsplus_module_1.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound, log))))), _ => (isReconnect(_) ? onReconnect : tsplus_module_1.unit())), isReconnect);
|
|
68
71
|
return { run, take: queue.take() };
|
|
69
72
|
});
|
|
70
73
|
return { connect };
|
|
71
74
|
});
|
|
72
|
-
export const WS =
|
|
75
|
+
export const WS = tsplus_module_6.Tag();
|
|
73
76
|
export const LiveWS = tsplus_module_1.toLayer(make, WS);
|
|
74
77
|
//# sourceMappingURL=WS.js.map
|
package/DiscordGateway/WS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WS.js","sourceRoot":"","sources":["../src/DiscordGateway/WS.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WS.js","sourceRoot":"","sources":["../src/DiscordGateway/WS.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.42.
|
|
3
|
+
"version": "0.42.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@tim-smart/discord-api-docs-parser": "^0.5.2",
|
|
28
28
|
"@tsplus-types/effect__data": "0.12.2-3b576ba",
|
|
29
|
-
"@tsplus-types/effect__io": "0.25.8-
|
|
29
|
+
"@tsplus-types/effect__io": "0.25.8-11739c0",
|
|
30
30
|
"@tsplus-types/effect__stream": "0.21.1-3b576ba",
|
|
31
31
|
"@types/ws": "^8.5.4",
|
|
32
32
|
"dotenv": "^16.0.3",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"ws": "^8.13.0"
|
|
49
49
|
},
|
|
50
50
|
"sideEffects": false,
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "b08e88268d84b1ffce21cf1f4518354518902edb"
|
|
52
52
|
}
|
package/src/DiscordGateway/WS.ts
CHANGED
|
@@ -38,20 +38,26 @@ const offer = (
|
|
|
38
38
|
queue: Enqueue<WebSocket.Data>,
|
|
39
39
|
log: Log,
|
|
40
40
|
) =>
|
|
41
|
-
Effect.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
Effect.runtime<never>().flatMap(runtime =>
|
|
42
|
+
Effect.async<never, WebSocketError | WebSocketCloseError, never>(resume => {
|
|
43
|
+
const run = runtime.runFork
|
|
44
|
+
ws.addEventListener("message", message => {
|
|
45
|
+
run(
|
|
46
|
+
queue
|
|
47
|
+
.offer(message.data)
|
|
48
|
+
.zipLeft(log.debug("WS", "offer", message.data)),
|
|
49
|
+
)
|
|
50
|
+
})
|
|
46
51
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
ws.addEventListener("error", cause => {
|
|
53
|
+
resume(Effect.fail(new WebSocketError("error", cause)))
|
|
54
|
+
})
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
ws.addEventListener("close", e => {
|
|
57
|
+
resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)))
|
|
58
|
+
})
|
|
59
|
+
}),
|
|
60
|
+
)
|
|
55
61
|
|
|
56
62
|
const waitForOpen = (ws: globalThis.WebSocket, timeout: Duration) =>
|
|
57
63
|
Effect.suspend(() => {
|