dfx 0.95.2 → 0.95.3

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.
@@ -2,24 +2,26 @@ import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
3
  import * as Context from "effect/Context";
4
4
  import * as Layer from "effect/Layer";
5
+ import * as KVS from "@effect/platform/KeyValueStore";
5
6
  export interface ShardState {
6
7
  readonly resumeUrl: string;
7
8
  readonly sequence: number | null;
8
9
  readonly sessionId: string;
9
10
  }
10
- export interface ShardStateStore {
11
- readonly _: unique symbol;
12
- }
13
11
  export interface StateStore {
14
12
  readonly get: Effect.Effect<Option.Option<ShardState>>;
15
13
  readonly set: (state: ShardState) => Effect.Effect<void>;
16
14
  readonly clear: Effect.Effect<void>;
17
15
  }
18
- export declare const ShardStateStore: Context.Tag<ShardStateStore, {
16
+ declare const ShardStateStore_base: Context.TagClass<ShardStateStore, "dfx/Shard/StateStore", {
19
17
  readonly forShard: (id: [
20
18
  id: number,
21
19
  count: number
22
20
  ]) => StateStore;
23
21
  }>;
24
- export declare const MemoryShardStateStoreLive: Layer.Layer<ShardStateStore, never, never>;
22
+ export declare class ShardStateStore extends ShardStateStore_base {
23
+ static MemoryLive: Layer.Layer<ShardStateStore>;
24
+ static KVSLive: Layer.Layer<ShardStateStore, never, KVS.KeyValueStore>;
25
+ }
26
+ export {};
25
27
  //# sourceMappingURL=StateStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateStore.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,eAAe;uBAEL,CAAC,EAAE,EAAE;QAAC,EAAE,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM;KAAC,KAAK,UAAU;EAC7C,CAAA;AAEzB,eAAO,MAAM,yBAAyB,4CAmBpC,CAAA"}
1
+ {"version":3,"file":"StateStore.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpC;;uBAIsB,CAAC,EAAE,EAAE;QAAC,EAAE,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM;KAAC,KAAK,UAAU;;AAFtE,qBAAa,eAAgB,SAAQ,oBAGlC;IACD,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAsB9C;IAED,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAmBnE;CACJ"}
@@ -3,31 +3,47 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ShardStateStore = exports.MemoryShardStateStoreLive = void 0;
6
+ exports.ShardStateStore = void 0;
7
7
  var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
8
8
  var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
9
9
  var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
10
10
  var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
11
+ var KVS = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/KeyValueStore"));
11
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- const ShardStateStore = exports.ShardStateStore = /*#__PURE__*/Context.GenericTag("dfx/Shard/StateStore");
14
- const MemoryShardStateStoreLive = exports.MemoryShardStateStoreLive = /*#__PURE__*/Layer.sync(ShardStateStore, () => {
15
- const store = new Map();
16
- return ShardStateStore.of({
17
- forShard: ([id, count]) => {
18
- const key = `${id}-${count}`;
19
- return {
20
- get: Effect.sync(() => Option.fromNullable(store.get(key))),
21
- set(state) {
22
- return Effect.sync(() => {
23
- store.set(key, state);
24
- });
25
- },
26
- clear: Effect.sync(() => {
27
- store.delete(key);
28
- })
29
- };
30
- }
14
+ class ShardStateStore extends Context.Tag("dfx/Shard/StateStore")() {
15
+ static MemoryLive = Layer.sync(ShardStateStore, () => {
16
+ const store = new Map();
17
+ return ShardStateStore.of({
18
+ forShard: ([id, count]) => {
19
+ const key = `${id}-${count}`;
20
+ return {
21
+ get: Effect.sync(() => Option.fromNullable(store.get(key))),
22
+ set(state) {
23
+ return Effect.sync(() => {
24
+ store.set(key, state);
25
+ });
26
+ },
27
+ clear: Effect.sync(() => {
28
+ store.delete(key);
29
+ })
30
+ };
31
+ }
32
+ });
31
33
  });
32
- });
34
+ static KVSLive = Layer.effect(ShardStateStore, Effect.gen(function* (_) {
35
+ const store = yield* KVS.KeyValueStore;
36
+ return ShardStateStore.of({
37
+ forShard([id, count]) {
38
+ const key = `dfx-shard-state-${id}-${count}`;
39
+ return {
40
+ get: Effect.map(Effect.orDie(store.get(key)), Option.map(JSON.parse)),
41
+ set: state => Effect.orDie(store.set(key, JSON.stringify(state))),
42
+ clear: Effect.orDie(store.remove(key))
43
+ };
44
+ }
45
+ });
46
+ }));
47
+ }
48
+ exports.ShardStateStore = ShardStateStore;
33
49
  //# sourceMappingURL=StateStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateStore.js","names":["Effect","_interopRequireWildcard","require","Option","Context","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardStateStore","exports","GenericTag","MemoryShardStateStoreLive","sync","store","Map","of","forShard","id","count","key","fromNullable","state","clear","delete"],"sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,OAAA,gBAAAH,uBAAA,eAAAC,OAAA;AACA,IAAAG,KAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAAqC,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAkB9B,MAAMW,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAGtB,OAAO,CAACwB,UAAU,CAG/C,sBAAsB,CAAC;AAElB,MAAMC,yBAAyB,GAAAF,OAAA,CAAAE,yBAAA,gBAAGxB,KAAK,CAACyB,IAAI,CAACJ,eAAe,EAAE,MAAK;EACxE,MAAMK,KAAK,GAAG,IAAIC,GAAG,EAAsB;EAE3C,OAAON,eAAe,CAACO,EAAE,CAAC;IACxBC,QAAQ,EAAEA,CAAC,CAACC,EAAE,EAAEC,KAAK,CAAC,KAAI;MACxB,MAAMC,GAAG,GAAG,GAAGF,EAAE,IAAIC,KAAK,EAAE;MAC5B,OAAO;QACLtB,GAAG,EAAEd,MAAM,CAAC8B,IAAI,CAAC,MAAM3B,MAAM,CAACmC,YAAY,CAACP,KAAK,CAACjB,GAAG,CAACuB,GAAG,CAAC,CAAC,CAAC;QAC3DZ,GAAGA,CAACc,KAAK;UACP,OAAOvC,MAAM,CAAC8B,IAAI,CAAC,MAAK;YACtBC,KAAK,CAACN,GAAG,CAACY,GAAG,EAAEE,KAAK,CAAC;UACvB,CAAC,CAAC;QACJ,CAAC;QACDC,KAAK,EAAExC,MAAM,CAAC8B,IAAI,CAAC,MAAK;UACtBC,KAAK,CAACU,MAAM,CAACJ,GAAG,CAAC;QACnB,CAAC;OACF;IACH;GACD,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StateStore.js","names":["Effect","_interopRequireWildcard","require","Option","Context","Layer","KVS","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardStateStore","Tag","MemoryLive","sync","store","Map","of","forShard","id","count","key","fromNullable","state","clear","delete","KVSLive","effect","gen","_","KeyValueStore","map","orDie","JSON","parse","stringify","remove"],"sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/gateway.js CHANGED
@@ -68,6 +68,6 @@ var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
68
68
  var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
69
69
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
70
70
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
71
- const DiscordLive = exports.DiscordLive = /*#__PURE__*/Layer.mergeAll(_RateLimit.RateLimiterLive, _DiscordGateway.DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(_DiscordREST.DiscordRESTLive), /*#__PURE__*/Layer.provide(_DiscordWS.JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(_RateLimit.MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(_ShardStore.MemoryShardStoreLive), /*#__PURE__*/Layer.provide(_StateStore.MemoryShardStateStoreLive));
71
+ const DiscordLive = exports.DiscordLive = /*#__PURE__*/Layer.mergeAll(_RateLimit.RateLimiterLive, _DiscordGateway.DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(_DiscordREST.DiscordRESTLive), /*#__PURE__*/Layer.provide(_DiscordWS.JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(_RateLimit.MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(_ShardStore.MemoryShardStoreLive), /*#__PURE__*/Layer.provide(_StateStore.ShardStateStore.MemoryLive));
72
72
  const DiscordIxLive = exports.DiscordIxLive = /*#__PURE__*/_gateway.InteractionsRegistryLive.pipe( /*#__PURE__*/Layer.provideMerge(DiscordLive));
73
73
  //# sourceMappingURL=gateway.js.map
package/gateway.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","_StateStore","SendEvent","_ShardStore","ShardStore","_DiscordREST","_gateway","_RateLimit","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DiscordLive","mergeAll","RateLimiterLive","DiscordGatewayLive","pipe","provideMerge","DiscordRESTLive","provide","JsonDiscordWSCodecLive","MemoryRateLimitStoreLive","MemoryShardStoreLive","MemoryShardStateStoreLive","DiscordIxLive","InteractionsRegistryLive"],"sources":["./src/gateway.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAiDC,OAAA,CAAAH,YAAA,GAAAA,YAAA;AACjD,IAAAI,eAAA,gBAAAF,OAAA;AACA,IAAAG,UAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAAyD,IAAAI,SAAA,GAAAD,UAAA;AAAAF,OAAA,CAAAG,SAAA,GAAAD,UAAA;AAEzD,IAAAE,KAAA,gBAAAN,uBAAA,eAAAC,OAAA;AAAiDC,OAAA,CAAAI,KAAA,GAAAA,KAAA;AACjD,IAAAC,WAAA,gBAAAN,OAAA;AACA,IAAAO,SAAA,gBAAAR,uBAAA,eAAAC,OAAA;AAAgEC,OAAA,CAAAM,SAAA,GAAAA,SAAA;AAChE,IAAAC,WAAA,gBAAAT,uBAAA,eAAAC,OAAA;AAA2D,IAAAS,UAAA,GAAAD,WAAA;AAAAP,OAAA,CAAAQ,UAAA,GAAAD,WAAA;AAE3D,IAAAE,YAAA,gBAAAV,OAAA;AACA,IAAAW,QAAA,gBAAAX,OAAA;AACA,IAAAY,UAAA,gBAAAZ,OAAA;AACA,IAAAa,KAAA,gBAAAd,uBAAA,eAAAC,OAAA;AAAqC,SAAAc,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAc9B,MAAMW,WAAW,GAAAjC,OAAA,CAAAiC,WAAA,gBAAGrB,KAAK,CAACsB,QAAQ,CACvCC,0BAAe,EACfC,kCAAkB,CACnB,CAACC,IAAI,eACJzB,KAAK,CAAC0B,YAAY,CAACC,4BAAe,CAAC,eACnC3B,KAAK,CAAC4B,OAAO,CAACC,iCAAsB,CAAC,eACrC7B,KAAK,CAAC4B,OAAO,CAACE,mCAAwB,CAAC,eACvC9B,KAAK,CAAC4B,OAAO,CAACG,gCAAoB,CAAC,eACnC/B,KAAK,CAAC4B,OAAO,CAACI,qCAAyB,CAAC,CACzC;AAEM,MAAMC,aAAa,GAAA7C,OAAA,CAAA6C,aAAA,gBAAGC,iCAAwB,CAACT,IAAI,eACxDzB,KAAK,CAAC0B,YAAY,CAACL,WAAW,CAAC,CAChC","ignoreList":[]}
1
+ {"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","_StateStore","SendEvent","_ShardStore","ShardStore","_DiscordREST","_gateway","_RateLimit","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DiscordLive","mergeAll","RateLimiterLive","DiscordGatewayLive","pipe","provideMerge","DiscordRESTLive","provide","JsonDiscordWSCodecLive","MemoryRateLimitStoreLive","MemoryShardStoreLive","ShardStateStore","MemoryLive","DiscordIxLive","InteractionsRegistryLive"],"sources":["./src/gateway.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAiDC,OAAA,CAAAH,YAAA,GAAAA,YAAA;AACjD,IAAAI,eAAA,gBAAAF,OAAA;AACA,IAAAG,UAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAAyD,IAAAI,SAAA,GAAAD,UAAA;AAAAF,OAAA,CAAAG,SAAA,GAAAD,UAAA;AAEzD,IAAAE,KAAA,gBAAAN,uBAAA,eAAAC,OAAA;AAAiDC,OAAA,CAAAI,KAAA,GAAAA,KAAA;AACjD,IAAAC,WAAA,gBAAAN,OAAA;AACA,IAAAO,SAAA,gBAAAR,uBAAA,eAAAC,OAAA;AAAgEC,OAAA,CAAAM,SAAA,GAAAA,SAAA;AAChE,IAAAC,WAAA,gBAAAT,uBAAA,eAAAC,OAAA;AAA2D,IAAAS,UAAA,GAAAD,WAAA;AAAAP,OAAA,CAAAQ,UAAA,GAAAD,WAAA;AAE3D,IAAAE,YAAA,gBAAAV,OAAA;AACA,IAAAW,QAAA,gBAAAX,OAAA;AACA,IAAAY,UAAA,gBAAAZ,OAAA;AACA,IAAAa,KAAA,gBAAAd,uBAAA,eAAAC,OAAA;AAAqC,SAAAc,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAc9B,MAAMW,WAAW,GAAAjC,OAAA,CAAAiC,WAAA,gBAAGrB,KAAK,CAACsB,QAAQ,CACvCC,0BAAe,EACfC,kCAAkB,CACnB,CAACC,IAAI,eACJzB,KAAK,CAAC0B,YAAY,CAACC,4BAAe,CAAC,eACnC3B,KAAK,CAAC4B,OAAO,CAACC,iCAAsB,CAAC,eACrC7B,KAAK,CAAC4B,OAAO,CAACE,mCAAwB,CAAC,eACvC9B,KAAK,CAAC4B,OAAO,CAACG,gCAAoB,CAAC,eACnC/B,KAAK,CAAC4B,OAAO,CAACI,2BAAe,CAACC,UAAU,CAAC,CAC1C;AAEM,MAAMC,aAAa,GAAA9C,OAAA,CAAA8C,aAAA,gBAAGC,iCAAwB,CAACV,IAAI,eACxDzB,KAAK,CAAC0B,YAAY,CAACL,WAAW,CAAC,CAChC","ignoreList":[]}
@@ -2,24 +2,39 @@ import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
3
  import * as Context from "effect/Context";
4
4
  import * as Layer from "effect/Layer";
5
- export const ShardStateStore = /*#__PURE__*/Context.GenericTag("dfx/Shard/StateStore");
6
- export const MemoryShardStateStoreLive = /*#__PURE__*/Layer.sync(ShardStateStore, () => {
7
- const store = new Map();
8
- return ShardStateStore.of({
9
- forShard: ([id, count]) => {
10
- const key = `${id}-${count}`;
11
- return {
12
- get: Effect.sync(() => Option.fromNullable(store.get(key))),
13
- set(state) {
14
- return Effect.sync(() => {
15
- store.set(key, state);
16
- });
17
- },
18
- clear: Effect.sync(() => {
19
- store.delete(key);
20
- })
21
- };
22
- }
5
+ import * as KVS from "@effect/platform/KeyValueStore";
6
+ export class ShardStateStore extends Context.Tag("dfx/Shard/StateStore")() {
7
+ static MemoryLive = Layer.sync(ShardStateStore, () => {
8
+ const store = new Map();
9
+ return ShardStateStore.of({
10
+ forShard: ([id, count]) => {
11
+ const key = `${id}-${count}`;
12
+ return {
13
+ get: Effect.sync(() => Option.fromNullable(store.get(key))),
14
+ set(state) {
15
+ return Effect.sync(() => {
16
+ store.set(key, state);
17
+ });
18
+ },
19
+ clear: Effect.sync(() => {
20
+ store.delete(key);
21
+ })
22
+ };
23
+ }
24
+ });
23
25
  });
24
- });
26
+ static KVSLive = Layer.effect(ShardStateStore, Effect.gen(function* (_) {
27
+ const store = yield* KVS.KeyValueStore;
28
+ return ShardStateStore.of({
29
+ forShard([id, count]) {
30
+ const key = `dfx-shard-state-${id}-${count}`;
31
+ return {
32
+ get: Effect.map(Effect.orDie(store.get(key)), Option.map(JSON.parse)),
33
+ set: state => Effect.orDie(store.set(key, JSON.stringify(state))),
34
+ clear: Effect.orDie(store.remove(key))
35
+ };
36
+ }
37
+ });
38
+ }));
39
+ }
25
40
  //# sourceMappingURL=StateStore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateStore.mjs","names":["Effect","Option","Context","Layer","ShardStateStore","GenericTag","MemoryShardStateStoreLive","sync","store","Map","of","forShard","id","count","key","get","fromNullable","set","state","clear","delete"],"sources":["../../../src/DiscordGateway/Shard/StateStore.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAkBrC,OAAO,MAAMC,eAAe,gBAAGF,OAAO,CAACG,UAAU,CAG/C,sBAAsB,CAAC;AAEzB,OAAO,MAAMC,yBAAyB,gBAAGH,KAAK,CAACI,IAAI,CAACH,eAAe,EAAE,MAAK;EACxE,MAAMI,KAAK,GAAG,IAAIC,GAAG,EAAsB;EAE3C,OAAOL,eAAe,CAACM,EAAE,CAAC;IACxBC,QAAQ,EAAEA,CAAC,CAACC,EAAE,EAAEC,KAAK,CAAC,KAAI;MACxB,MAAMC,GAAG,GAAG,GAAGF,EAAE,IAAIC,KAAK,EAAE;MAC5B,OAAO;QACLE,GAAG,EAAEf,MAAM,CAACO,IAAI,CAAC,MAAMN,MAAM,CAACe,YAAY,CAACR,KAAK,CAACO,GAAG,CAACD,GAAG,CAAC,CAAC,CAAC;QAC3DG,GAAGA,CAACC,KAAK;UACP,OAAOlB,MAAM,CAACO,IAAI,CAAC,MAAK;YACtBC,KAAK,CAACS,GAAG,CAACH,GAAG,EAAEI,KAAK,CAAC;UACvB,CAAC,CAAC;QACJ,CAAC;QACDC,KAAK,EAAEnB,MAAM,CAACO,IAAI,CAAC,MAAK;UACtBC,KAAK,CAACY,MAAM,CAACN,GAAG,CAAC;QACnB,CAAC;OACF;IACH;GACD,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StateStore.mjs","names":["Effect","Option","Context","Layer","KVS","ShardStateStore","Tag","MemoryLive","sync","store","Map","of","forShard","id","count","key","get","fromNullable","set","state","clear","delete","KVSLive","effect","gen","_","KeyValueStore","map","orDie","JSON","parse","stringify","remove"],"sources":["../../../src/DiscordGateway/Shard/StateStore.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,GAAG,MAAM,gCAAgC;AAcrD,OAAM,MAAOC,eAAgB,SAAQH,OAAO,CAACI,GAAG,CAAC,sBAAsB,CAAC,EAGrE;EACD,OAAOC,UAAU,GAAiCJ,KAAK,CAACK,IAAI,CAC1DH,eAAe,EACf,MAAK;IACH,MAAMI,KAAK,GAAG,IAAIC,GAAG,EAAsB;IAE3C,OAAOL,eAAe,CAACM,EAAE,CAAC;MACxBC,QAAQ,EAAEA,CAAC,CAACC,EAAE,EAAEC,KAAK,CAAC,KAAI;QACxB,MAAMC,GAAG,GAAG,GAAGF,EAAE,IAAIC,KAAK,EAAE;QAC5B,OAAO;UACLE,GAAG,EAAEhB,MAAM,CAACQ,IAAI,CAAC,MAAMP,MAAM,CAACgB,YAAY,CAACR,KAAK,CAACO,GAAG,CAACD,GAAG,CAAC,CAAC,CAAC;UAC3DG,GAAGA,CAACC,KAAK;YACP,OAAOnB,MAAM,CAACQ,IAAI,CAAC,MAAK;cACtBC,KAAK,CAACS,GAAG,CAACH,GAAG,EAAEI,KAAK,CAAC;YACvB,CAAC,CAAC;UACJ,CAAC;UACDC,KAAK,EAAEpB,MAAM,CAACQ,IAAI,CAAC,MAAK;YACtBC,KAAK,CAACY,MAAM,CAACN,GAAG,CAAC;UACnB,CAAC;SACF;MACH;KACD,CAAC;EACJ,CAAC,CACF;EAED,OAAOO,OAAO,GACZnB,KAAK,CAACoB,MAAM,CACVlB,eAAe,EACfL,MAAM,CAACwB,GAAG,CAAC,WAAWC,CAAC;IACrB,MAAMhB,KAAK,GAAG,OAAOL,GAAG,CAACsB,aAAa;IACtC,OAAOrB,eAAe,CAACM,EAAE,CAAC;MACxBC,QAAQA,CAAC,CAACC,EAAE,EAAEC,KAAK,CAAC;QAClB,MAAMC,GAAG,GAAG,mBAAmBF,EAAE,IAAIC,KAAK,EAAE;QAC5C,OAAO;UACLE,GAAG,EAAEhB,MAAM,CAAC2B,GAAG,CACb3B,MAAM,CAAC4B,KAAK,CAACnB,KAAK,CAACO,GAAG,CAACD,GAAG,CAAC,CAAC,EAC5Bd,MAAM,CAAC0B,GAAG,CAACE,IAAI,CAACC,KAAK,CAAC,CACvB;UACDZ,GAAG,EAAEC,KAAK,IAAInB,MAAM,CAAC4B,KAAK,CAACnB,KAAK,CAACS,GAAG,CAACH,GAAG,EAAEc,IAAI,CAACE,SAAS,CAACZ,KAAK,CAAC,CAAC,CAAC;UACjEC,KAAK,EAAEpB,MAAM,CAAC4B,KAAK,CAACnB,KAAK,CAACuB,MAAM,CAACjB,GAAG,CAAC;SACtC;MACH;KACD,CAAC;EACJ,CAAC,CAAC,CACH","ignoreList":[]}
package/mjs/gateway.mjs CHANGED
@@ -3,7 +3,7 @@ import { DiscordGatewayLive } from "dfx/DiscordGateway";
3
3
  import * as DiscordWS from "dfx/DiscordGateway/DiscordWS";
4
4
  import { JsonDiscordWSCodecLive } from "dfx/DiscordGateway/DiscordWS";
5
5
  import * as Shard from "dfx/DiscordGateway/Shard";
6
- import { MemoryShardStateStoreLive } from "dfx/DiscordGateway/Shard/StateStore";
6
+ import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore";
7
7
  import * as SendEvent from "dfx/DiscordGateway/Shard/sendEvents";
8
8
  import * as ShardStore from "dfx/DiscordGateway/ShardStore";
9
9
  import { MemoryShardStoreLive } from "dfx/DiscordGateway/ShardStore";
@@ -14,6 +14,6 @@ import * as Layer from "effect/Layer";
14
14
  export { DiscordGateway, DiscordGatewayLive } from "dfx/DiscordGateway";
15
15
  export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync } from "dfx/Interactions/gateway";
16
16
  export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore };
17
- export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStateStoreLive));
17
+ export const DiscordLive = /*#__PURE__*/Layer.mergeAll(RateLimiterLive, DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(DiscordRESTLive), /*#__PURE__*/Layer.provide(JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(MemoryShardStoreLive), /*#__PURE__*/Layer.provide(ShardStateStore.MemoryLive));
18
18
  export const DiscordIxLive = /*#__PURE__*/InteractionsRegistryLive.pipe( /*#__PURE__*/Layer.provideMerge(DiscordLive));
19
19
  //# sourceMappingURL=gateway.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","MemoryShardStateStoreLive","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AACjD,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,SAASC,yBAAyB,QAAQ,qCAAqC;AAC/E,OAAO,KAAKC,SAAS,MAAM,qCAAqC;AAChE,OAAO,KAAKC,UAAU,MAAM,+BAA+B;AAC3D,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SAASC,wBAAwB,QAAQ,0BAA0B;AACnE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,eAAe;AACzE,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,oBAAoB;AAEvE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,0BAA0B;AAEjC,SAASnB,YAAY,EAAEE,SAAS,EAAEI,SAAS,EAAEF,KAAK,EAAEG,UAAU;AAE9D,OAAO,MAAMa,WAAW,gBAAGP,KAAK,CAACQ,QAAQ,CACvCT,eAAe,EACfX,kBAAkB,CACnB,CAACqB,IAAI,eACJT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAAChB,oBAAoB,CAAC,eACnCK,KAAK,CAACW,OAAO,CAACnB,yBAAyB,CAAC,CACzC;AAED,OAAO,MAAMoB,aAAa,gBAAGf,wBAAwB,CAACY,IAAI,eACxDT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAChC","ignoreList":[]}
1
+ {"version":3,"file":"gateway.mjs","names":["CachePrelude","DiscordGatewayLive","DiscordWS","JsonDiscordWSCodecLive","Shard","ShardStateStore","SendEvent","ShardStore","MemoryShardStoreLive","DiscordRESTLive","InteractionsRegistryLive","MemoryRateLimitStoreLive","RateLimiterLive","Layer","DiscordGateway","InteractionsRegistry","interactionsSync","run","runIx","setInteractionsSync","DiscordLive","mergeAll","pipe","provideMerge","provide","MemoryLive","DiscordIxLive"],"sources":["../src/gateway.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AACjD,SAASC,kBAAkB,QAAQ,oBAAoB;AACvD,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AACjD,SAASC,eAAe,QAAQ,qCAAqC;AACrE,OAAO,KAAKC,SAAS,MAAM,qCAAqC;AAChE,OAAO,KAAKC,UAAU,MAAM,+BAA+B;AAC3D,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SAASC,wBAAwB,QAAQ,0BAA0B;AACnE,SAASC,wBAAwB,EAAEC,eAAe,QAAQ,eAAe;AACzE,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,cAAc,EAAEb,kBAAkB,QAAQ,oBAAoB;AAEvE,SACEc,oBAAoB,EACpBL,wBAAwB,EACxBM,gBAAgB,EAChBC,GAAG,IAAIC,KAAK,EACZC,mBAAmB,QACd,0BAA0B;AAEjC,SAASnB,YAAY,EAAEE,SAAS,EAAEI,SAAS,EAAEF,KAAK,EAAEG,UAAU;AAE9D,OAAO,MAAMa,WAAW,gBAAGP,KAAK,CAACQ,QAAQ,CACvCT,eAAe,EACfX,kBAAkB,CACnB,CAACqB,IAAI,eACJT,KAAK,CAACU,YAAY,CAACd,eAAe,CAAC,eACnCI,KAAK,CAACW,OAAO,CAACrB,sBAAsB,CAAC,eACrCU,KAAK,CAACW,OAAO,CAACb,wBAAwB,CAAC,eACvCE,KAAK,CAACW,OAAO,CAAChB,oBAAoB,CAAC,eACnCK,KAAK,CAACW,OAAO,CAACnB,eAAe,CAACoB,UAAU,CAAC,CAC1C;AAED,OAAO,MAAMC,aAAa,gBAAGhB,wBAAwB,CAACY,IAAI,eACxDT,KAAK,CAACU,YAAY,CAACH,WAAW,CAAC,CAChC","ignoreList":[]}
package/mjs/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "0.95.2";
1
+ export const LIB_VERSION = "0.95.3";
2
2
  //# sourceMappingURL=version.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.95.2",
3
+ "version": "0.95.3",
4
4
  "description": "Effect-TS discord library",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,6 +44,6 @@
44
44
  "utf-8-validate": "^6.0.3",
45
45
  "zlib-sync": "^0.1.9"
46
46
  },
47
- "gitHead": "b1c54e933611fbd187e370dc61d5f057b0d3361a",
47
+ "gitHead": "f85d8d07d8f016476ca7fb5e0d719022fe4ed31e",
48
48
  "main": "./index.js"
49
49
  }
@@ -2,6 +2,7 @@ import * as Effect from "effect/Effect"
2
2
  import * as Option from "effect/Option"
3
3
  import * as Context from "effect/Context"
4
4
  import * as Layer from "effect/Layer"
5
+ import * as KVS from "@effect/platform/KeyValueStore"
5
6
 
6
7
  export interface ShardState {
7
8
  readonly resumeUrl: string
@@ -9,38 +10,58 @@ export interface ShardState {
9
10
  readonly sessionId: string
10
11
  }
11
12
 
12
- export interface ShardStateStore {
13
- readonly _: unique symbol
14
- }
15
-
16
13
  export interface StateStore {
17
14
  readonly get: Effect.Effect<Option.Option<ShardState>>
18
15
  readonly set: (state: ShardState) => Effect.Effect<void>
19
16
  readonly clear: Effect.Effect<void>
20
17
  }
21
18
 
22
- export const ShardStateStore = Context.GenericTag<
19
+ export class ShardStateStore extends Context.Tag("dfx/Shard/StateStore")<
23
20
  ShardStateStore,
24
21
  { readonly forShard: (id: [id: number, count: number]) => StateStore }
25
- >("dfx/Shard/StateStore")
26
-
27
- export const MemoryShardStateStoreLive = Layer.sync(ShardStateStore, () => {
28
- const store = new Map<string, ShardState>()
22
+ >() {
23
+ static MemoryLive: Layer.Layer<ShardStateStore> = Layer.sync(
24
+ ShardStateStore,
25
+ () => {
26
+ const store = new Map<string, ShardState>()
29
27
 
30
- return ShardStateStore.of({
31
- forShard: ([id, count]) => {
32
- const key = `${id}-${count}`
33
- return {
34
- get: Effect.sync(() => Option.fromNullable(store.get(key))),
35
- set(state) {
36
- return Effect.sync(() => {
37
- store.set(key, state)
38
- })
28
+ return ShardStateStore.of({
29
+ forShard: ([id, count]) => {
30
+ const key = `${id}-${count}`
31
+ return {
32
+ get: Effect.sync(() => Option.fromNullable(store.get(key))),
33
+ set(state) {
34
+ return Effect.sync(() => {
35
+ store.set(key, state)
36
+ })
37
+ },
38
+ clear: Effect.sync(() => {
39
+ store.delete(key)
40
+ }),
41
+ }
39
42
  },
40
- clear: Effect.sync(() => {
41
- store.delete(key)
42
- }),
43
- }
43
+ })
44
44
  },
45
- })
46
- })
45
+ )
46
+
47
+ static KVSLive: Layer.Layer<ShardStateStore, never, KVS.KeyValueStore> =
48
+ Layer.effect(
49
+ ShardStateStore,
50
+ Effect.gen(function* (_) {
51
+ const store = yield* KVS.KeyValueStore
52
+ return ShardStateStore.of({
53
+ forShard([id, count]) {
54
+ const key = `dfx-shard-state-${id}-${count}`
55
+ return {
56
+ get: Effect.map(
57
+ Effect.orDie(store.get(key)),
58
+ Option.map(JSON.parse),
59
+ ),
60
+ set: state => Effect.orDie(store.set(key, JSON.stringify(state))),
61
+ clear: Effect.orDie(store.remove(key)),
62
+ }
63
+ },
64
+ })
65
+ }),
66
+ )
67
+ }
package/src/gateway.ts CHANGED
@@ -3,7 +3,7 @@ import { DiscordGatewayLive } from "dfx/DiscordGateway"
3
3
  import * as DiscordWS from "dfx/DiscordGateway/DiscordWS"
4
4
  import { JsonDiscordWSCodecLive } from "dfx/DiscordGateway/DiscordWS"
5
5
  import * as Shard from "dfx/DiscordGateway/Shard"
6
- import { MemoryShardStateStoreLive } from "dfx/DiscordGateway/Shard/StateStore"
6
+ import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore"
7
7
  import * as SendEvent from "dfx/DiscordGateway/Shard/sendEvents"
8
8
  import * as ShardStore from "dfx/DiscordGateway/ShardStore"
9
9
  import { MemoryShardStoreLive } from "dfx/DiscordGateway/ShardStore"
@@ -32,7 +32,7 @@ export const DiscordLive = Layer.mergeAll(
32
32
  Layer.provide(JsonDiscordWSCodecLive),
33
33
  Layer.provide(MemoryRateLimitStoreLive),
34
34
  Layer.provide(MemoryShardStoreLive),
35
- Layer.provide(MemoryShardStateStoreLive),
35
+ Layer.provide(ShardStateStore.MemoryLive),
36
36
  )
37
37
 
38
38
  export const DiscordIxLive = InteractionsRegistryLive.pipe(
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.95.2";
1
+ export const LIB_VERSION = "0.95.3";
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const LIB_VERSION = "0.95.2";
1
+ export declare const LIB_VERSION = "0.95.3";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LIB_VERSION = void 0;
7
- const LIB_VERSION = exports.LIB_VERSION = "0.95.2";
7
+ const LIB_VERSION = exports.LIB_VERSION = "0.95.3";
8
8
  //# sourceMappingURL=version.js.map