dfx 0.61.6 → 0.61.7

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 (42) hide show
  1. package/DiscordGateway/DiscordWS.d.ts +1 -1
  2. package/DiscordGateway/Shard.d.ts +2 -2
  3. package/DiscordGateway/Shard.d.ts.map +1 -1
  4. package/DiscordGateway/Shard.js +13 -11
  5. package/DiscordGateway/Shard.js.map +1 -1
  6. package/DiscordGateway/Sharder.d.ts +2 -2
  7. package/DiscordGateway/Sharder.d.ts.map +1 -1
  8. package/DiscordGateway/Sharder.js +9 -9
  9. package/DiscordGateway/Sharder.js.map +1 -1
  10. package/DiscordGateway/WS.d.ts +0 -1
  11. package/DiscordGateway/WS.d.ts.map +1 -1
  12. package/DiscordGateway/WS.js +9 -14
  13. package/DiscordGateway/WS.js.map +1 -1
  14. package/DiscordGateway.d.ts +1 -1
  15. package/DiscordGateway.d.ts.map +1 -1
  16. package/DiscordGateway.js +1 -1
  17. package/DiscordGateway.js.map +1 -1
  18. package/Interactions/gateway.d.ts +1 -1
  19. package/gateway.d.ts +1 -1
  20. package/mjs/DiscordGateway/Shard.mjs +13 -11
  21. package/mjs/DiscordGateway/Shard.mjs.map +1 -1
  22. package/mjs/DiscordGateway/Sharder.mjs +9 -9
  23. package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
  24. package/mjs/DiscordGateway/WS.mjs +9 -14
  25. package/mjs/DiscordGateway/WS.mjs.map +1 -1
  26. package/mjs/DiscordGateway.mjs +1 -1
  27. package/mjs/DiscordGateway.mjs.map +1 -1
  28. package/mjs/utils/Effect.mjs +4 -4
  29. package/mjs/utils/Effect.mjs.map +1 -1
  30. package/mjs/version.mjs +1 -1
  31. package/package.json +2 -2
  32. package/src/DiscordGateway/Shard.ts +26 -27
  33. package/src/DiscordGateway/Sharder.ts +11 -9
  34. package/src/DiscordGateway/WS.ts +28 -34
  35. package/src/DiscordGateway.ts +4 -1
  36. package/src/utils/Effect.ts +22 -19
  37. package/src/version.ts +1 -1
  38. package/utils/Effect.d.ts.map +1 -1
  39. package/utils/Effect.js +4 -4
  40. package/utils/Effect.js.map +1 -1
  41. package/version.d.ts +1 -1
  42. package/version.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.mjs","names":["Chunk","Tag","Duration","Option","ConfigSecret","Effect","Hub","Layer","Queue","Ref","DiscordConfig","DiscordWS","LiveDiscordWS","Heartbeats","Identify","InvalidSession","Utils","Reconnect","Log","LiveRateLimiter","RateLimiter","Discord","make","gen","_","gateway","token","limiter","dws","log","connect","shard","hub","sendQueue","outboundQueue","unbounded","pendingQueue","phase","setPhase","p","zipLeft","set","debug","outbound","take","maybeWait","minutes","send","flatMap","get","offer","heartbeatSend","succeed","prioritySend","resume","pipe","zipRight","takeAll","tap","offerAll","asUnit","onConnecting","msgs","filter","msg","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","latestReady","updateLatestReady","latest","some","DISPATCH","t","map","d","latestSequence","updateLatestSequence","fromNullable","s","maybeUpdateUrl","match","onNone","unit","onSome","resume_gateway_url","setUrl","hellos","acks","heartbeats","identify","identifyOrResume","value","intents","presence","onPayload","HELLO","HEARTBEAT_ACK","INVALID_SESSION","fromPayload","publish","drainSendQueue","forever","run","all","discard","concurrency","id","Shard","LiveShard","provide","merge","effect"],"sources":["../../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Shard.mjs","names":["Chunk","Tag","Duration","Option","ConfigSecret","Effect","Hub","Layer","Queue","Ref","DiscordConfig","DiscordWS","LiveDiscordWS","Heartbeats","Identify","InvalidSession","Utils","Reconnect","Log","LiveRateLimiter","RateLimiter","Discord","make","gen","_","gateway","token","limiter","dws","log","connect","shard","hub","sendQueue","outboundQueue","unbounded","pendingQueue","phase","setPhase","p","zipLeft","set","debug","outbound","take","maybeWait","minutes","send","flatMap","get","offer","heartbeatSend","succeed","prioritySend","resume","asUnit","tap","offerAll","zipRight","takeAll","onConnecting","msgs","filter","msg","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","isReady","liftPredicate","DISPATCH","t","latestReady","updateLatestReady","latest","map","d","latestSequence","updateLatestSequence","fromNullable","s","maybeUpdateUrl","match","onNone","unit","onSome","resume_gateway_url","setUrl","hellos","acks","heartbeats","identify","identifyOrResume","value","intents","presence","onPayload","HELLO","HEARTBEAT_ACK","INVALID_SESSION","fromPayload","publish","drainSendQueue","forever","run","all","discard","concurrency","id","Shard","LiveShard","provide","merge","effect"],"sources":["../../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -24,14 +24,14 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
24
24
  const currentShards = yield* _(Ref.make(HashSet.empty()));
25
25
  const takeConfig = totalCount => Effect.gen(function* (_) {
26
26
  const currentCount = yield* _(Ref.make(0));
27
- const claimId = sharderCount => store.claimId({
27
+ const claimId = sharderCount => Effect.map(_ => _.value)(Effect.repeat(claimRepeatPolicy)(store.claimId({
28
28
  totalCount,
29
29
  sharderCount
30
- }).pipe(Effect.repeat(claimRepeatPolicy), Effect.map(_ => _.value));
31
- return Ref.getAndUpdate(currentCount, _ => _ + 1).pipe(Effect.flatMap(claimId), Effect.map(id => ({
30
+ })));
31
+ return Effect.map(id => ({
32
32
  id,
33
33
  totalCount
34
- })));
34
+ }))(Effect.flatMap(claimId)(Ref.getAndUpdate(currentCount, _ => _ + 1)));
35
35
  });
36
36
  const gateway = yield* _(rest.getGatewayBot(), Effect.flatMap(r => r.json), Effect.catchAll(() => Effect.succeed({
37
37
  url: "wss://gateway.discord.gg/",
@@ -46,14 +46,14 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
46
46
  const run = (hub, sendQueue) => Effect.gen(function* (_) {
47
47
  const deferred = yield* _(Deferred.make());
48
48
  const take = yield* _(takeConfig(config.shardCount ?? gateway.shards));
49
- const spawner = take.pipe(Effect.map(config => ({
49
+ const spawner = Effect.forever(Effect.flatMap(shard => Effect.acquireUseRelease(Ref.update(currentShards, HashSet.add(shard)), () => shard.run, () => Ref.update(currentShards, HashSet.remove(shard))).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.fork))(Effect.flatMap(c => shard.connect([c.id, c.totalCount], hub, sendQueue))(Effect.tap(({
50
+ concurrency,
51
+ id
52
+ }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, Duration.millis(config.identifyRateLimit[0]), config.identifyRateLimit[1]))(Effect.map(config => ({
50
53
  ...config,
51
54
  url: gateway.url,
52
55
  concurrency: gateway.session_start_limit.max_concurrency
53
- })), Effect.tap(({
54
- concurrency,
55
- id
56
- }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, Duration.millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), Effect.flatMap(c => shard.connect([c.id, c.totalCount], hub, sendQueue)), Effect.flatMap(shard => Effect.acquireUseRelease(Ref.update(currentShards, HashSet.add(shard)), () => shard.run, () => Ref.update(currentShards, HashSet.remove(shard))).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.fork)), Effect.forever);
56
+ }))(take)))));
57
57
  const spawners = Chunk.map(Chunk.range(1, gateway.session_start_limit.max_concurrency), () => spawner);
58
58
  return yield* _(Effect.all([Effect.all(spawners, {
59
59
  concurrency: "unbounded",
@@ -1 +1 @@
1
- {"version":3,"file":"Sharder.mjs","names":["Chunk","Tag","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","DiscordConfig","LiveShard","Shard","ShardStore","DiscordREST","LiveRateLimiter","RateLimiter","claimRepeatPolicy","spaced","pipe","whileInput","_","_tag","passthrough","make","gen","store","rest","gateway","config","limiter","shard","currentShards","empty","takeConfig","totalCount","currentCount","claimId","sharderCount","repeat","map","value","getAndUpdate","flatMap","id","getGatewayBot","r","json","catchAll","succeed","url","shards","session_start_limit","total","remaining","reset_after","max_concurrency","run","hub","sendQueue","deferred","take","shardCount","spawner","concurrency","tap","maybeWait","millis","identifyRateLimit","c","connect","acquireUseRelease","update","add","remove","catchAllCause","failCause","fork","forever","spawners","range","all","discard","await","get","Sharder","LiveSharder","provide","merge","effect"],"sources":["../../src/DiscordGateway/Sharder.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Sharder.mjs","names":["Chunk","Tag","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","DiscordConfig","LiveShard","Shard","ShardStore","DiscordREST","LiveRateLimiter","RateLimiter","claimRepeatPolicy","spaced","pipe","whileInput","_","_tag","passthrough","make","gen","store","rest","gateway","config","limiter","shard","currentShards","empty","takeConfig","totalCount","currentCount","claimId","sharderCount","map","value","repeat","id","flatMap","getAndUpdate","getGatewayBot","r","json","catchAll","succeed","url","shards","session_start_limit","total","remaining","reset_after","max_concurrency","run","hub","sendQueue","deferred","take","shardCount","spawner","forever","acquireUseRelease","update","add","remove","catchAllCause","failCause","fork","c","connect","tap","concurrency","maybeWait","millis","identifyRateLimit","spawners","range","all","discard","await","get","Sharder","LiveSharder","provide","merge","effect"],"sources":["../../src/DiscordGateway/Sharder.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -4,7 +4,6 @@ import * as Effect from "@effect/io/Effect";
4
4
  import * as Layer from "@effect/io/Layer";
5
5
  import * as Queue from "@effect/io/Queue";
6
6
  import * as Ref from "@effect/io/Ref";
7
- import * as Runtime from "@effect/io/Runtime";
8
7
  import { Log } from "dfx/Log";
9
8
  import WebSocket from "isomorphic-ws";
10
9
  export const Reconnect = /*#__PURE__*/Symbol();
@@ -27,19 +26,15 @@ export class WebSocketCloseError {
27
26
  }
28
27
  }
29
28
  const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
30
- const socket = urlRef => Ref.get(urlRef).pipe(Effect.map(_ => new WebSocket(_)), Effect.acquireRelease(ws => Effect.sync(() => {
29
+ const socket = urlRef => Effect.acquireRelease(ws => Effect.sync(() => {
31
30
  // eslint-disable-next-line no-extra-semi
32
31
  ;
33
32
  ws.removeAllListeners?.();
34
33
  ws.close();
35
- })));
36
- const offer = (ws, queue, log) => Effect.runtime().pipe(Effect.flatMap(runtime => Effect.async(resume => {
37
- const run = Runtime.runFork(runtime);
34
+ }))(Effect.map(_ => new WebSocket(_))(Ref.get(urlRef)));
35
+ const offer = (ws, queue, log) => Effect.async(resume => {
38
36
  ws.addEventListener("message", message => {
39
- run(Effect.all([log.debug("WS", "receive", message.data), Queue.offer(queue, message.data)], {
40
- concurrency: "unbounded",
41
- discard: true
42
- }));
37
+ Effect.runFork(Effect.zipRight(log.debug("WS", "receive", message.data), Queue.offer(queue, message.data)));
43
38
  });
44
39
  ws.addEventListener("error", cause => {
45
40
  resume(Effect.fail(new WebSocketError("error", cause)));
@@ -47,7 +42,7 @@ const offer = (ws, queue, log) => Effect.runtime().pipe(Effect.flatMap(runtime =
47
42
  ws.addEventListener("close", e => {
48
43
  resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
49
44
  });
50
- })));
45
+ });
51
46
  const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
52
47
  if (ws.readyState === WebSocket.OPEN) {
53
48
  return Effect.unit;
@@ -61,7 +56,7 @@ const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
61
56
  onTimeout: () => new WebSocketError("open-timeout"),
62
57
  duration: timeout
63
58
  });
64
- const send = (ws, take, log) => take.pipe(Effect.tap(data => log.debug("WS", "send", data)), Effect.tap(data => {
59
+ const send = (ws, take, log) => Effect.forever(Effect.tap(data => {
65
60
  if (data === Reconnect) {
66
61
  return Effect.failSync(() => {
67
62
  ws.close(1012, "reconnecting");
@@ -71,15 +66,15 @@ const send = (ws, take, log) => take.pipe(Effect.tap(data => log.debug("WS", "se
71
66
  return Effect.sync(() => {
72
67
  ws.send(data);
73
68
  });
74
- }), Effect.forever);
69
+ })(Effect.tap(data => log.debug("WS", "send", data))(take)));
75
70
  const make = /*#__PURE__*/Effect.gen(function* (_) {
76
71
  const log = yield* _(Log);
77
72
  const connect = (url, takeOutbound, onConnecting = Effect.unit, openTimeout = Duration.seconds(3)) => Effect.gen(function* (_) {
78
73
  const queue = yield* _(Queue.unbounded());
79
- const run = onConnecting.pipe(Effect.zipRight(socket(url)), Effect.flatMap(ws => Effect.all([offer(ws, queue, log), waitForOpen(ws, openTimeout).pipe(Effect.zipRight(send(ws, takeOutbound, log)))], {
74
+ const run = Effect.retryWhile(isReconnect)(Effect.scoped(Effect.flatMap(ws => Effect.all([offer(ws, queue, log), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound, log))], {
80
75
  concurrency: "unbounded",
81
76
  discard: true
82
- })), Effect.scoped, Effect.retryWhile(isReconnect));
77
+ }))(Effect.zipRight(socket(url))(onConnecting))));
83
78
  return {
84
79
  run,
85
80
  take: Queue.take(queue)
@@ -1 +1 @@
1
- {"version":3,"file":"WS.mjs","names":["Tag","Duration","Effect","Layer","Queue","Ref","Runtime","Log","WebSocket","Reconnect","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","get","pipe","map","_","acquireRelease","ws","sync","removeAllListeners","close","offer","queue","log","runtime","flatMap","async","resume","run","runFork","addEventListener","message","all","debug","data","concurrency","discard","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","tap","failSync","forever","make","gen","connect","url","takeOutbound","onConnecting","openTimeout","seconds","unbounded","zipRight","scoped","retryWhile","WS","LiveWS","effect"],"sources":["../../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"WS.mjs","names":["Tag","Duration","Effect","Layer","Queue","Ref","Log","WebSocket","Reconnect","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","acquireRelease","ws","sync","removeAllListeners","close","map","_","get","offer","queue","log","async","resume","addEventListener","message","runFork","zipRight","debug","data","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","forever","tap","failSync","make","gen","connect","url","takeOutbound","onConnecting","openTimeout","seconds","unbounded","run","retryWhile","scoped","flatMap","all","concurrency","discard","WS","LiveWS","effect"],"sources":["../../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -6,7 +6,7 @@ import * as Queue from "@effect/io/Queue";
6
6
  import * as Stream from "@effect/stream/Stream";
7
7
  import { LiveSharder, Sharder } from "dfx/DiscordGateway/Sharder";
8
8
  import * as EffectUtils from "dfx/utils/Effect";
9
- const fromDispatchFactory = source => event => Stream.filter(source, p => p.t === event).pipe(Stream.map(p => p.d));
9
+ const fromDispatchFactory = source => event => Stream.map(Stream.filter(source, p => p.t === event), p => p.d);
10
10
  const handleDispatchFactory = hub => (event, handle) => EffectUtils.subscribeForEachPar(hub, _ => {
11
11
  if (_.t === event) {
12
12
  return handle(_.d);
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordGateway.mjs","names":["Tag","Effect","Hub","Layer","Queue","Stream","LiveSharder","Sharder","EffectUtils","fromDispatchFactory","source","event","filter","p","t","pipe","map","d","handleDispatchFactory","hub","handle","subscribeForEachPar","_","unit","DiscordGateway","make","gen","sharder","unbounded","sendQueue","send","payload","offer","dispatch","fromHub","fromDispatch","handleDispatch","run","of","shards","LiveDiscordGateway","provide","effect"],"sources":["../src/DiscordGateway.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAE1C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C,SAASC,WAAW,EAAEC,OAAO,QAAQ,4BAA4B;AAGjE,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C,MAAMC,mBAAmB,GAErBC,MAAyE,IAGzEC,KAAQ,IAERN,MAAM,CAACO,MAAM,CAACF,MAAM,EAAEG,CAAC,IAAIA,CAAC,CAACC,CAAC,KAAKH,KAAK,CAAC,CAACI,IAAI,CAACV,MAAM,CAACW,GAAG,CAACH,CAAC,IAAIA,CAAC,CAACI,CAAS,CAAC,CAAC;AAEhF,MAAMC,qBAAqB,GACxBC,GAA0D,IAC3D,CACER,KAAQ,EACRS,MAAmE,KAEnEZ,WAAW,CAACa,mBAAmB,CAACF,GAAG,EAAEG,CAAC,IAAG;EACvC,IAAIA,CAAC,CAACR,CAAC,KAAKH,KAAK,EAAE;IACjB,OAAOS,MAAM,CAACE,CAAC,CAACL,CAAQ,CAAC;;EAE3B,OAAOhB,MAAM,CAACsB,IAAI;AACpB,CAAC,CAAC;AAyBN,OAAO,MAAMC,cAAc,gBAAGxB,GAAG,EAAkB;AAEnD,OAAO,MAAMyB,IAAI,gBAAGxB,MAAM,CAACyB,GAAG,CAAC,WAAWJ,CAAC;EACzC,MAAMK,OAAO,GAAG,OAAOL,CAAC,CAACf,OAAO,CAAC;EACjC,MAAMY,GAAG,GAAG,OAAOG,CAAC,CAClBpB,GAAG,CAAC0B,SAAS,EAAgD,CAC9D;EAED,MAAMC,SAAS,GAAG,OAAOP,CAAC,CACxBlB,KAAK,CAACwB,SAAS,EAA6C,CAC7D;EACD,MAAME,IAAI,GAAIC,OAAkD,IAC9DF,SAAS,CAACG,KAAK,CAACD,OAAO,CAAC;EAE1B,MAAME,QAAQ,GAAG5B,MAAM,CAAC6B,OAAO,CAACf,GAAG,CAAC;EACpC,MAAMgB,YAAY,GAAG1B,mBAAmB,CAACwB,QAAQ,CAAC;EAClD,MAAMG,cAAc,GAAGlB,qBAAqB,CAACC,GAAG,CAAC;EAEjD,MAAMkB,GAAG,GAAGV,OAAO,CAACU,GAAG,CAAClB,GAAG,EAAEU,SAAS,CAAC;EAEvC,OAAOL,cAAc,CAACc,EAAE,CAAC;IACvBD,GAAG;IACHJ,QAAQ;IACRE,YAAY;IACZC,cAAc;IACdN,IAAI;IACJS,MAAM,EAAEZ,OAAO,CAACY;GACjB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,gBAAGrC,KAAK,CAACsC,OAAO,CAC7CnC,WAAW,eACXH,KAAK,CAACuC,MAAM,CAAClB,cAAc,EAAEC,IAAI,CAAC,CACnC"}
1
+ {"version":3,"file":"DiscordGateway.mjs","names":["Tag","Effect","Hub","Layer","Queue","Stream","LiveSharder","Sharder","EffectUtils","fromDispatchFactory","source","event","map","filter","p","t","d","handleDispatchFactory","hub","handle","subscribeForEachPar","_","unit","DiscordGateway","make","gen","sharder","unbounded","sendQueue","send","payload","offer","dispatch","fromHub","fromDispatch","handleDispatch","run","of","shards","LiveDiscordGateway","provide","effect"],"sources":["../src/DiscordGateway.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAE1C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C,SAASC,WAAW,EAAEC,OAAO,QAAQ,4BAA4B;AAGjE,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C,MAAMC,mBAAmB,GAErBC,MAAyE,IAGzEC,KAAQ,IAERN,MAAM,CAACO,GAAG,CACRP,MAAM,CAACQ,MAAM,CAACH,MAAM,EAAEI,CAAC,IAAIA,CAAC,CAACC,CAAC,KAAKJ,KAAK,CAAC,EACzCG,CAAC,IAAIA,CAAC,CAACE,CAAS,CACjB;AAEL,MAAMC,qBAAqB,GACxBC,GAA0D,IAC3D,CACEP,KAAQ,EACRQ,MAAmE,KAEnEX,WAAW,CAACY,mBAAmB,CAACF,GAAG,EAAEG,CAAC,IAAG;EACvC,IAAIA,CAAC,CAACN,CAAC,KAAKJ,KAAK,EAAE;IACjB,OAAOQ,MAAM,CAACE,CAAC,CAACL,CAAQ,CAAC;;EAE3B,OAAOf,MAAM,CAACqB,IAAI;AACpB,CAAC,CAAC;AAyBN,OAAO,MAAMC,cAAc,gBAAGvB,GAAG,EAAkB;AAEnD,OAAO,MAAMwB,IAAI,gBAAGvB,MAAM,CAACwB,GAAG,CAAC,WAAWJ,CAAC;EACzC,MAAMK,OAAO,GAAG,OAAOL,CAAC,CAACd,OAAO,CAAC;EACjC,MAAMW,GAAG,GAAG,OAAOG,CAAC,CAClBnB,GAAG,CAACyB,SAAS,EAAgD,CAC9D;EAED,MAAMC,SAAS,GAAG,OAAOP,CAAC,CACxBjB,KAAK,CAACuB,SAAS,EAA6C,CAC7D;EACD,MAAME,IAAI,GAAIC,OAAkD,IAC9DF,SAAS,CAACG,KAAK,CAACD,OAAO,CAAC;EAE1B,MAAME,QAAQ,GAAG3B,MAAM,CAAC4B,OAAO,CAACf,GAAG,CAAC;EACpC,MAAMgB,YAAY,GAAGzB,mBAAmB,CAACuB,QAAQ,CAAC;EAClD,MAAMG,cAAc,GAAGlB,qBAAqB,CAACC,GAAG,CAAC;EAEjD,MAAMkB,GAAG,GAAGV,OAAO,CAACU,GAAG,CAAClB,GAAG,EAAEU,SAAS,CAAC;EAEvC,OAAOL,cAAc,CAACc,EAAE,CAAC;IACvBD,GAAG;IACHJ,QAAQ;IACRE,YAAY;IACZC,cAAc;IACdN,IAAI;IACJS,MAAM,EAAEZ,OAAO,CAACY;GACjB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,gBAAGpC,KAAK,CAACqC,OAAO,CAC7ClC,WAAW,eACXH,KAAK,CAACsC,MAAM,CAAClB,cAAc,EAAEC,IAAI,CAAC,CACnC"}
@@ -4,17 +4,17 @@ import * as Hub from "@effect/io/Hub";
4
4
  import * as Queue from "@effect/io/Queue";
5
5
  import * as ScopedRef from "@effect/io/ScopedRef";
6
6
  export const subscribeForEachPar = (self, effect) => Effect.flatMap(Deferred.make(), deferred => {
7
- const run = Hub.subscribe(self).pipe(Effect.flatMap(queue => Queue.take(queue).pipe(Effect.flatMap(_ => effect(_).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.forkScoped)), Effect.forever)), Effect.scoped);
7
+ const run = Effect.scoped(Effect.flatMap(queue => Effect.forever(Effect.flatMap(Queue.take(queue), _ => Effect.forkScoped(Effect.catchAllCause(effect(_), _ => Deferred.failCause(deferred, _))))))(Hub.subscribe(self)));
8
8
  return Effect.all([run, Deferred.await(deferred)], {
9
9
  concurrency: "unbounded",
10
10
  discard: true
11
11
  });
12
12
  });
13
- export const foreverSwitch = (self, f) => Effect.all([Deferred.make(), ScopedRef.fromAcquire(Effect.fork(Effect.unit))]).pipe(Effect.flatMap(([causeDeferred, fiberRef]) => {
14
- const run = self.pipe(Effect.flatMap(_ => ScopedRef.set(fiberRef, f(_).pipe(Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.forkScoped))), Effect.forever);
13
+ export const foreverSwitch = (self, f) => Effect.scoped(Effect.flatMap(([causeDeferred, fiberRef]) => {
14
+ const run = Effect.forever(Effect.flatMap(self, _ => ScopedRef.set(fiberRef, Effect.forkScoped(Effect.tapErrorCause(f(_), _ => Deferred.failCause(causeDeferred, _))))));
15
15
  return Effect.all([run, Deferred.await(causeDeferred)], {
16
16
  concurrency: "unbounded",
17
17
  discard: true
18
18
  });
19
- }), Effect.scoped);
19
+ })(Effect.all([Deferred.make(), ScopedRef.fromAcquire(Effect.fork(Effect.unit))])));
20
20
  //# sourceMappingURL=Effect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.mjs","names":["Deferred","Effect","Hub","Queue","ScopedRef","subscribeForEachPar","self","effect","flatMap","make","deferred","run","subscribe","pipe","queue","take","_","catchAllCause","failCause","forkScoped","forever","scoped","all","await","concurrency","discard","foreverSwitch","f","fromAcquire","fork","unit","causeDeferred","fiberRef","set","tapErrorCause"],"sources":["../../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AAEjD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,IAAgB,EAChBC,MAAwC,KAExCN,MAAM,CAACO,OAAO,CAACR,QAAQ,CAACS,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAAGT,GAAG,CAACU,SAAS,CAACN,IAAI,CAAC,CAACO,IAAI,CAClCZ,MAAM,CAACO,OAAO,CAACM,KAAK,IAClBX,KAAK,CAACY,IAAI,CAACD,KAAK,CAAC,CAACD,IAAI,CACpBZ,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdT,MAAM,CAACS,CAAC,CAAC,CAACH,IAAI,CACZZ,MAAM,CAACgB,aAAa,CAACD,CAAC,IAAIhB,QAAQ,CAACkB,SAAS,CAACR,QAAQ,EAAEM,CAAC,CAAC,CAAC,EAC1Df,MAAM,CAACkB,UAAU,CAClB,CACF,EACDlB,MAAM,CAACmB,OAAO,CACf,CACF,EACDnB,MAAM,CAACoB,MAAM,CACd;EAED,OAAOpB,MAAM,CAACqB,GAAG,CAAC,CAACX,GAAG,EAAEX,QAAQ,CAACuB,KAAK,CAACb,QAAQ,CAAC,CAAC,EAAE;IACjDc,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAA+B;AAClC,CAAC,CAAC;AAEJ,OAAO,MAAMC,aAAa,GAAGA,CAC3BpB,IAA4B,EAC5BqB,CAAqC,KAErC1B,MAAM,CAACqB,GAAG,CAAC,CACTtB,QAAQ,CAACS,IAAI,EAAa,EAC1BL,SAAS,CAACwB,WAAW,CACnB3B,MAAM,CAAC4B,IAAI,CAAC5B,MAAM,CAAC6B,IAAI,CAAC,CACzB,CACF,CAAC,CAACjB,IAAI,CACLZ,MAAM,CAACO,OAAO,CAAC,CAAC,CAACuB,aAAa,EAAEC,QAAQ,CAAC,KAAI;EAC3C,MAAMrB,GAAG,GAAGL,IAAI,CAACO,IAAI,CACnBZ,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdZ,SAAS,CAAC6B,GAAG,CACXD,QAAQ,EACRL,CAAC,CAACX,CAAC,CAAC,CAACH,IAAI,CACPZ,MAAM,CAACiC,aAAa,CAAClB,CAAC,IAAIhB,QAAQ,CAACkB,SAAS,CAACa,aAAa,EAAEf,CAAC,CAAC,CAAC,EAC/Df,MAAM,CAACkB,UAAU,CAClB,CACF,CACF,EACDlB,MAAM,CAACmB,OAAO,CACf;EAED,OAAOnB,MAAM,CAACqB,GAAG,CAAC,CAACX,GAAG,EAAEX,QAAQ,CAACuB,KAAK,CAACQ,aAAa,CAAC,CAAC,EAAE;IACtDP,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAyC;AAC5C,CAAC,CAAC,EACFxB,MAAM,CAACoB,MAAM,CACd"}
1
+ {"version":3,"file":"Effect.mjs","names":["Deferred","Effect","Hub","Queue","ScopedRef","subscribeForEachPar","self","effect","flatMap","make","deferred","run","scoped","queue","forever","take","_","forkScoped","catchAllCause","failCause","subscribe","all","await","concurrency","discard","foreverSwitch","f","causeDeferred","fiberRef","set","tapErrorCause","fromAcquire","fork","unit"],"sources":["../../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AAEjD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,IAAgB,EAChBC,MAAwC,KAExCN,MAAM,CAACO,OAAO,CAACR,QAAQ,CAACS,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAaPV,MAAM,CAACW,MAAM,CAXbX,MAAM,CAACO,OAAO,CAACK,KAAK,IAClBZ,MAAM,CAACa,OAAO,CACZb,MAAM,CAACO,OAAO,CAACL,KAAK,CAACY,IAAI,CAACF,KAAK,CAAC,EAAEG,CAAC,IACjCf,MAAM,CAACgB,UAAU,CACfhB,MAAM,CAACiB,aAAa,CAACX,MAAM,CAACS,CAAC,CAAC,EAAEA,CAAC,IAC/BhB,QAAQ,CAACmB,SAAS,CAACT,QAAQ,EAAEM,CAAC,CAAC,CAChC,CACF,CACF,CACF,CACF,CAXDd,GAAG,CAACkB,SAAS,CAACd,IAAI,CAAC,EAapB;EAED,OAAOL,MAAM,CAACoB,GAAG,CAAC,CAACV,GAAG,EAAEX,QAAQ,CAACsB,KAAK,CAACZ,QAAQ,CAAC,CAAC,EAAE;IACjDa,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAA+B;AAClC,CAAC,CAAC;AAEJ,OAAO,MAAMC,aAAa,GAAGA,CAC3BnB,IAA4B,EAC5BoB,CAAqC,KA4BnCzB,MAAM,CAACW,MAAM,CAnBbX,MAAM,CAACO,OAAO,CAAC,CAAC,CAACmB,aAAa,EAAEC,QAAQ,CAAC,KAAI;EAC3C,MAAMjB,GAAG,GAAGV,MAAM,CAACa,OAAO,CACxBb,MAAM,CAACO,OAAO,CAACF,IAAI,EAAEU,CAAC,IACpBZ,SAAS,CAACyB,GAAG,CACXD,QAAQ,EACR3B,MAAM,CAACgB,UAAU,CACfhB,MAAM,CAAC6B,aAAa,CAACJ,CAAC,CAACV,CAAC,CAAC,EAAEA,CAAC,IAC1BhB,QAAQ,CAACmB,SAAS,CAACQ,aAAa,EAAEX,CAAC,CAAC,CACrC,CACF,CACF,CACF,CACF;EAED,OAAOf,MAAM,CAACoB,GAAG,CAAC,CAACV,GAAG,EAAEX,QAAQ,CAACsB,KAAK,CAACK,aAAa,CAAC,CAAC,EAAE;IACtDJ,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAyC;AAC5C,CAAC,CAAC,CAxBFvB,MAAM,CAACoB,GAAG,CAAC,CACTrB,QAAQ,CAACS,IAAI,EAAa,EAC1BL,SAAS,CAAC2B,WAAW,CACnB9B,MAAM,CAAC+B,IAAI,CAAC/B,MAAM,CAACgC,IAAI,CAAC,CACzB,CACF,CAAC,EAqBH"}
package/mjs/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "0.61.6";
1
+ export const LIB_VERSION = "0.61.7";
2
2
  //# sourceMappingURL=version.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.61.6",
3
+ "version": "0.61.7",
4
4
  "description": "Effect-TS discord library",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -49,6 +49,6 @@
49
49
  "discord-verify": "^1.2.0",
50
50
  "utf-8-validate": "^6.0.3"
51
51
  },
52
- "gitHead": "4103cf4d3acf037ec43ffc031eb259db3abcc743",
52
+ "gitHead": "80549a60863ae73cdbd10c72d316f70335f9ef5f",
53
53
  "main": "./index.js"
54
54
  }
@@ -1,6 +1,7 @@
1
1
  import * as Chunk from "@effect/data/Chunk"
2
2
  import { Tag } from "@effect/data/Context"
3
3
  import * as Duration from "@effect/data/Duration"
4
+ import { pipe } from "@effect/data/Function"
4
5
  import * as Option from "@effect/data/Option"
5
6
  import * as ConfigSecret from "@effect/io/Config/Secret"
6
7
  import * as Effect from "@effect/io/Effect"
@@ -64,13 +65,15 @@ export const make = Effect.gen(function* (_) {
64
65
 
65
66
  const prioritySend = (p: Message) => Queue.offer(outboundQueue, p)
66
67
 
67
- const resume = setPhase(Phase.Connected).pipe(
68
+ const resume = pipe(
69
+ setPhase(Phase.Connected),
68
70
  Effect.zipRight(Queue.takeAll(pendingQueue)),
69
71
  Effect.tap(_ => Queue.offerAll(outboundQueue, _)),
70
72
  Effect.asUnit,
71
73
  )
72
74
 
73
- const onConnecting = Queue.takeAll(outboundQueue).pipe(
75
+ const onConnecting = pipe(
76
+ Queue.takeAll(outboundQueue),
74
77
  Effect.tap(msgs =>
75
78
  Queue.offerAll(
76
79
  pendingQueue,
@@ -89,32 +92,27 @@ export const make = Effect.gen(function* (_) {
89
92
 
90
93
  const socket = yield* _(dws.connect({ outbound, onConnecting }))
91
94
 
95
+ const isReady = Option.liftPredicate(
96
+ (
97
+ p: Discord.GatewayPayload,
98
+ ): p is Discord.GatewayPayload<Discord.ReadyEvent> =>
99
+ p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY",
100
+ )
101
+
92
102
  const [latestReady, updateLatestReady] = yield* _(
93
- Utils.latest(p =>
94
- Option.some(p).pipe(
95
- Option.filter(
96
- (p): p is Discord.GatewayPayload<Discord.ReadyEvent> =>
97
- p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY",
98
- ),
99
- Option.map(p => p.d!),
100
- ),
101
- ),
103
+ Utils.latest(p => Option.map(isReady(p), p => p.d!)),
102
104
  )
103
105
  const [latestSequence, updateLatestSequence] = yield* _(
104
106
  Utils.latest(p => Option.fromNullable(p.s)),
105
107
  )
106
108
  const maybeUpdateUrl = (p: Discord.GatewayPayload) =>
107
- Option.some(p).pipe(
108
- Option.filter(
109
- (p): p is Discord.GatewayPayload<Discord.ReadyEvent> =>
110
- p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY",
111
- ),
112
- Option.map(p => p.d!),
113
- Option.match({
109
+ Option.match(
110
+ Option.map(isReady(p), p => p.d!),
111
+ {
114
112
  onNone: () => Effect.unit,
115
113
  onSome: ({ resume_gateway_url }) =>
116
114
  socket.setUrl(resume_gateway_url),
117
- }),
115
+ },
118
116
  )
119
117
 
120
118
  const hellos = yield* _(Queue.unbounded<Discord.GatewayPayload>())
@@ -141,13 +139,15 @@ export const make = Effect.gen(function* (_) {
141
139
  )
142
140
 
143
141
  const onPayload = (p: Discord.GatewayPayload) =>
144
- updateLatestReady(p).pipe(
142
+ pipe(
143
+ updateLatestReady(p),
145
144
  Effect.zipRight(updateLatestSequence(p)),
146
145
  Effect.zipRight(maybeUpdateUrl(p)),
147
146
  Effect.tap(() => {
148
147
  switch (p.op) {
149
148
  case Discord.GatewayOpcode.HELLO:
150
- return Effect.tap(identify, prioritySend).pipe(
149
+ return pipe(
150
+ Effect.tap(identify, prioritySend),
151
151
  Effect.zipRight(setPhase(Phase.Handshake)),
152
152
  Effect.zipRight(Queue.offer(hellos, p)),
153
153
  )
@@ -163,20 +163,19 @@ export const make = Effect.gen(function* (_) {
163
163
  return Effect.zipRight(resume, Hub.publish(hub, p))
164
164
  }
165
165
  return Hub.publish(hub, p)
166
+ default:
167
+ return Effect.unit
166
168
  }
167
-
168
- return Effect.unit
169
169
  }),
170
170
  )
171
171
 
172
- const drainSendQueue = Queue.take(sendQueue).pipe(
173
- Effect.tap(send),
174
- Effect.forever,
172
+ const drainSendQueue = Effect.forever(
173
+ Effect.tap(Queue.take(sendQueue), send),
175
174
  )
176
175
 
177
176
  const run = Effect.all(
178
177
  [
179
- socket.take.pipe(Effect.flatMap(onPayload), Effect.forever),
178
+ Effect.forever(Effect.flatMap(socket.take, onPayload)),
180
179
  heartbeats,
181
180
  drainSendQueue,
182
181
  socket.run,
@@ -1,6 +1,7 @@
1
1
  import * as Chunk from "@effect/data/Chunk"
2
2
  import { Tag } from "@effect/data/Context"
3
3
  import * as Duration from "@effect/data/Duration"
4
+ import { pipe } from "@effect/data/Function"
4
5
  import * as HashSet from "@effect/data/HashSet"
5
6
  import type * as Option from "@effect/data/Option"
6
7
  import * as Deferred from "@effect/io/Deferred"
@@ -39,17 +40,17 @@ const make = Effect.gen(function* (_) {
39
40
  const claimId = (
40
41
  sharderCount: number,
41
42
  ): Effect.Effect<never, never, number> =>
42
- store
43
- .claimId({
43
+ pipe(
44
+ store.claimId({
44
45
  totalCount,
45
46
  sharderCount,
46
- })
47
- .pipe(
48
- Effect.repeat(claimRepeatPolicy),
49
- Effect.map(_ => _.value),
50
- )
47
+ }),
48
+ Effect.repeat(claimRepeatPolicy),
49
+ Effect.map(_ => _.value),
50
+ )
51
51
 
52
- return Ref.getAndUpdate(currentCount, _ => _ + 1).pipe(
52
+ return pipe(
53
+ Ref.getAndUpdate(currentCount, _ => _ + 1),
53
54
  Effect.flatMap(claimId),
54
55
  Effect.map(id => ({ id, totalCount }) as const),
55
56
  )
@@ -82,7 +83,8 @@ const make = Effect.gen(function* (_) {
82
83
  )
83
84
  const take = yield* _(takeConfig(config.shardCount ?? gateway.shards))
84
85
 
85
- const spawner = take.pipe(
86
+ const spawner = pipe(
87
+ take,
86
88
  Effect.map(config => ({
87
89
  ...config,
88
90
  url: gateway.url,
@@ -1,10 +1,10 @@
1
1
  import { Tag } from "@effect/data/Context"
2
2
  import * as Duration from "@effect/data/Duration"
3
+ import { pipe } from "@effect/data/Function"
3
4
  import * as Effect from "@effect/io/Effect"
4
5
  import * as Layer from "@effect/io/Layer"
5
6
  import * as Queue from "@effect/io/Queue"
6
7
  import * as Ref from "@effect/io/Ref"
7
- import * as Runtime from "@effect/io/Runtime"
8
8
  import { Log } from "dfx/Log"
9
9
  import WebSocket from "isomorphic-ws"
10
10
 
@@ -34,7 +34,8 @@ const isReconnect = (
34
34
  e._tag === "WebSocketCloseError" && e.code === 1012
35
35
 
36
36
  const socket = (urlRef: Ref.Ref<string>) =>
37
- Ref.get(urlRef).pipe(
37
+ pipe(
38
+ Ref.get(urlRef),
38
39
  Effect.map(_ => new WebSocket(_) as any as globalThis.WebSocket),
39
40
  Effect.acquireRelease(ws =>
40
41
  Effect.sync(() => {
@@ -50,34 +51,24 @@ const offer = (
50
51
  queue: Queue.Enqueue<WebSocket.Data>,
51
52
  log: Log,
52
53
  ) =>
53
- Effect.runtime<never>().pipe(
54
- Effect.flatMap(runtime =>
55
- Effect.async<never, WebSocketError | WebSocketCloseError, never>(
56
- resume => {
57
- const run = Runtime.runFork(runtime)
58
- ws.addEventListener("message", message => {
59
- run(
60
- Effect.all(
61
- [
62
- log.debug("WS", "receive", message.data),
63
- Queue.offer(queue, message.data),
64
- ],
65
- { concurrency: "unbounded", discard: true },
66
- ),
67
- )
68
- })
69
-
70
- ws.addEventListener("error", cause => {
71
- resume(Effect.fail(new WebSocketError("error", cause)))
72
- })
73
-
74
- ws.addEventListener("close", e => {
75
- resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)))
76
- })
77
- },
78
- ),
79
- ),
80
- )
54
+ Effect.async<never, WebSocketError | WebSocketCloseError, never>(resume => {
55
+ ws.addEventListener("message", message => {
56
+ Effect.runFork(
57
+ Effect.zipRight(
58
+ log.debug("WS", "receive", message.data),
59
+ Queue.offer(queue, message.data),
60
+ ),
61
+ )
62
+ })
63
+
64
+ ws.addEventListener("error", cause => {
65
+ resume(Effect.fail(new WebSocketError("error", cause)))
66
+ })
67
+
68
+ ws.addEventListener("close", e => {
69
+ resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)))
70
+ })
71
+ })
81
72
 
82
73
  const waitForOpen = (ws: globalThis.WebSocket, timeout: Duration.Duration) =>
83
74
  Effect.timeoutFail(
@@ -103,7 +94,8 @@ const send = (
103
94
  take: Effect.Effect<never, never, Message>,
104
95
  log: Log,
105
96
  ) =>
106
- take.pipe(
97
+ pipe(
98
+ take,
107
99
  Effect.tap(data => log.debug("WS", "send", data)),
108
100
  Effect.tap(data => {
109
101
  if (data === Reconnect) {
@@ -132,14 +124,16 @@ const make = Effect.gen(function* (_) {
132
124
  Effect.gen(function* (_) {
133
125
  const queue = yield* _(Queue.unbounded<WebSocket.Data>())
134
126
 
135
- const run = onConnecting.pipe(
127
+ const run = pipe(
128
+ onConnecting,
136
129
  Effect.zipRight(socket(url)),
137
130
  Effect.flatMap(ws =>
138
131
  Effect.all(
139
132
  [
140
133
  offer(ws, queue, log),
141
- waitForOpen(ws, openTimeout).pipe(
142
- Effect.zipRight(send(ws, takeOutbound, log)),
134
+ Effect.zipRight(
135
+ waitForOpen(ws, openTimeout),
136
+ send(ws, takeOutbound, log),
143
137
  ),
144
138
  ],
145
139
  { concurrency: "unbounded", discard: true },
@@ -18,7 +18,10 @@ const fromDispatchFactory =
18
18
  <K extends keyof Discord.ReceiveEvents>(
19
19
  event: K,
20
20
  ): Stream.Stream<R, E, Discord.ReceiveEvents[K]> =>
21
- Stream.filter(source, p => p.t === event).pipe(Stream.map(p => p.d! as any))
21
+ Stream.map(
22
+ Stream.filter(source, p => p.t === event),
23
+ p => p.d! as any,
24
+ )
22
25
 
23
26
  const handleDispatchFactory =
24
27
  (hub: Hub.Hub<Discord.GatewayPayload<Discord.ReceiveEvent>>) =>