@effect/cluster 0.50.6 → 0.52.0

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 (232) hide show
  1. package/RunnerStorage/package.json +6 -0
  2. package/SqlRunnerStorage/package.json +6 -0
  3. package/dist/cjs/ClusterError.js +2 -24
  4. package/dist/cjs/ClusterError.js.map +1 -1
  5. package/dist/cjs/ClusterMetrics.js +13 -15
  6. package/dist/cjs/ClusterMetrics.js.map +1 -1
  7. package/dist/cjs/ClusterSchema.js +17 -2
  8. package/dist/cjs/ClusterSchema.js.map +1 -1
  9. package/dist/cjs/ClusterWorkflowEngine.js +50 -83
  10. package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
  11. package/dist/cjs/Entity.js +1 -13
  12. package/dist/cjs/Entity.js.map +1 -1
  13. package/dist/cjs/EntityAddress.js +9 -1
  14. package/dist/cjs/EntityAddress.js.map +1 -1
  15. package/dist/cjs/EntityId.js +7 -1
  16. package/dist/cjs/EntityId.js.map +1 -1
  17. package/dist/cjs/EntityProxy.js +1 -1
  18. package/dist/cjs/EntityProxy.js.map +1 -1
  19. package/dist/cjs/HttpRunner.js +69 -43
  20. package/dist/cjs/HttpRunner.js.map +1 -1
  21. package/dist/cjs/MessageStorage.js +64 -16
  22. package/dist/cjs/MessageStorage.js.map +1 -1
  23. package/dist/cjs/Runner.js +3 -3
  24. package/dist/cjs/Runner.js.map +1 -1
  25. package/dist/cjs/RunnerAddress.js +7 -0
  26. package/dist/cjs/RunnerAddress.js.map +1 -1
  27. package/dist/cjs/RunnerHealth.js +91 -32
  28. package/dist/cjs/RunnerHealth.js.map +1 -1
  29. package/dist/cjs/RunnerServer.js +38 -24
  30. package/dist/cjs/RunnerServer.js.map +1 -1
  31. package/dist/cjs/RunnerStorage.js +100 -0
  32. package/dist/cjs/RunnerStorage.js.map +1 -0
  33. package/dist/cjs/Runners.js +18 -22
  34. package/dist/cjs/Runners.js.map +1 -1
  35. package/dist/cjs/ShardId.js +17 -7
  36. package/dist/cjs/ShardId.js.map +1 -1
  37. package/dist/cjs/Sharding.js +444 -320
  38. package/dist/cjs/Sharding.js.map +1 -1
  39. package/dist/cjs/ShardingConfig.js +10 -14
  40. package/dist/cjs/ShardingConfig.js.map +1 -1
  41. package/dist/cjs/Snowflake.js +1 -1
  42. package/dist/cjs/SocketRunner.js +1 -1
  43. package/dist/cjs/SocketRunner.js.map +1 -1
  44. package/dist/cjs/SqlMessageStorage.js +22 -28
  45. package/dist/cjs/SqlMessageStorage.js.map +1 -1
  46. package/dist/cjs/SqlRunnerStorage.js +375 -0
  47. package/dist/cjs/SqlRunnerStorage.js.map +1 -0
  48. package/dist/cjs/index.js +5 -15
  49. package/dist/cjs/internal/entityManager.js +42 -23
  50. package/dist/cjs/internal/entityManager.js.map +1 -1
  51. package/dist/dts/ClusterError.d.ts +0 -22
  52. package/dist/dts/ClusterError.d.ts.map +1 -1
  53. package/dist/dts/ClusterMetrics.d.ts +4 -14
  54. package/dist/dts/ClusterMetrics.d.ts.map +1 -1
  55. package/dist/dts/ClusterSchema.d.ts +9 -1
  56. package/dist/dts/ClusterSchema.d.ts.map +1 -1
  57. package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
  58. package/dist/dts/Entity.d.ts +3 -14
  59. package/dist/dts/Entity.d.ts.map +1 -1
  60. package/dist/dts/EntityAddress.d.ts +11 -0
  61. package/dist/dts/EntityAddress.d.ts.map +1 -1
  62. package/dist/dts/EntityId.d.ts +5 -0
  63. package/dist/dts/EntityId.d.ts.map +1 -1
  64. package/dist/dts/EntityProxy.d.ts +5 -6
  65. package/dist/dts/EntityProxy.d.ts.map +1 -1
  66. package/dist/dts/HttpRunner.d.ts +48 -25
  67. package/dist/dts/HttpRunner.d.ts.map +1 -1
  68. package/dist/dts/MessageStorage.d.ts +13 -5
  69. package/dist/dts/MessageStorage.d.ts.map +1 -1
  70. package/dist/dts/Runner.d.ts +4 -4
  71. package/dist/dts/Runner.d.ts.map +1 -1
  72. package/dist/dts/RunnerAddress.d.ts +5 -0
  73. package/dist/dts/RunnerAddress.d.ts.map +1 -1
  74. package/dist/dts/RunnerHealth.d.ts +24 -16
  75. package/dist/dts/RunnerHealth.d.ts.map +1 -1
  76. package/dist/dts/RunnerServer.d.ts +5 -4
  77. package/dist/dts/RunnerServer.d.ts.map +1 -1
  78. package/dist/dts/{ShardStorage.d.ts → RunnerStorage.d.ts} +41 -54
  79. package/dist/dts/RunnerStorage.d.ts.map +1 -0
  80. package/dist/dts/Runners.d.ts +15 -11
  81. package/dist/dts/Runners.d.ts.map +1 -1
  82. package/dist/dts/ShardId.d.ts +1 -1
  83. package/dist/dts/ShardId.d.ts.map +1 -1
  84. package/dist/dts/Sharding.d.ts +20 -10
  85. package/dist/dts/Sharding.d.ts.map +1 -1
  86. package/dist/dts/ShardingConfig.d.ts +40 -14
  87. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  88. package/dist/dts/SocketRunner.d.ts +4 -3
  89. package/dist/dts/SocketRunner.d.ts.map +1 -1
  90. package/dist/dts/SqlMessageStorage.d.ts +2 -3
  91. package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
  92. package/dist/dts/SqlRunnerStorage.d.ts +40 -0
  93. package/dist/dts/SqlRunnerStorage.d.ts.map +1 -0
  94. package/dist/dts/index.d.ts +4 -24
  95. package/dist/dts/index.d.ts.map +1 -1
  96. package/dist/esm/ClusterError.js +0 -21
  97. package/dist/esm/ClusterError.js.map +1 -1
  98. package/dist/esm/ClusterMetrics.js +12 -14
  99. package/dist/esm/ClusterMetrics.js.map +1 -1
  100. package/dist/esm/ClusterSchema.js +17 -2
  101. package/dist/esm/ClusterSchema.js.map +1 -1
  102. package/dist/esm/ClusterWorkflowEngine.js +50 -83
  103. package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
  104. package/dist/esm/Entity.js +0 -12
  105. package/dist/esm/Entity.js.map +1 -1
  106. package/dist/esm/EntityAddress.js +7 -0
  107. package/dist/esm/EntityAddress.js.map +1 -1
  108. package/dist/esm/EntityId.js +5 -0
  109. package/dist/esm/EntityId.js.map +1 -1
  110. package/dist/esm/EntityProxy.js +2 -2
  111. package/dist/esm/EntityProxy.js.map +1 -1
  112. package/dist/esm/HttpRunner.js +62 -39
  113. package/dist/esm/HttpRunner.js.map +1 -1
  114. package/dist/esm/MessageStorage.js +65 -17
  115. package/dist/esm/MessageStorage.js.map +1 -1
  116. package/dist/esm/Runner.js +3 -3
  117. package/dist/esm/Runner.js.map +1 -1
  118. package/dist/esm/RunnerAddress.js +7 -0
  119. package/dist/esm/RunnerAddress.js.map +1 -1
  120. package/dist/esm/RunnerHealth.js +88 -30
  121. package/dist/esm/RunnerHealth.js.map +1 -1
  122. package/dist/esm/RunnerServer.js +38 -24
  123. package/dist/esm/RunnerServer.js.map +1 -1
  124. package/dist/esm/RunnerStorage.js +90 -0
  125. package/dist/esm/RunnerStorage.js.map +1 -0
  126. package/dist/esm/Runners.js +19 -23
  127. package/dist/esm/Runners.js.map +1 -1
  128. package/dist/esm/ShardId.js +16 -6
  129. package/dist/esm/ShardId.js.map +1 -1
  130. package/dist/esm/Sharding.js +447 -323
  131. package/dist/esm/Sharding.js.map +1 -1
  132. package/dist/esm/ShardingConfig.js +10 -14
  133. package/dist/esm/ShardingConfig.js.map +1 -1
  134. package/dist/esm/Snowflake.js +1 -1
  135. package/dist/esm/SocketRunner.js +1 -1
  136. package/dist/esm/SocketRunner.js.map +1 -1
  137. package/dist/esm/SqlMessageStorage.js +22 -28
  138. package/dist/esm/SqlMessageStorage.js.map +1 -1
  139. package/dist/esm/SqlRunnerStorage.js +366 -0
  140. package/dist/esm/SqlRunnerStorage.js.map +1 -0
  141. package/dist/esm/index.js +4 -24
  142. package/dist/esm/index.js.map +1 -1
  143. package/dist/esm/internal/entityManager.js +41 -22
  144. package/dist/esm/internal/entityManager.js.map +1 -1
  145. package/package.json +20 -60
  146. package/src/ClusterError.ts +0 -24
  147. package/src/ClusterMetrics.ts +12 -16
  148. package/src/ClusterSchema.ts +17 -2
  149. package/src/ClusterWorkflowEngine.ts +48 -80
  150. package/src/Entity.ts +3 -21
  151. package/src/EntityAddress.ts +10 -0
  152. package/src/EntityId.ts +6 -0
  153. package/src/EntityProxy.ts +10 -10
  154. package/src/HttpRunner.ts +132 -67
  155. package/src/MessageStorage.ts +89 -24
  156. package/src/Runner.ts +4 -4
  157. package/src/RunnerAddress.ts +8 -0
  158. package/src/RunnerHealth.ts +119 -56
  159. package/src/RunnerServer.ts +64 -47
  160. package/src/RunnerStorage.ts +218 -0
  161. package/src/Runners.ts +32 -45
  162. package/src/ShardId.ts +14 -3
  163. package/src/Sharding.ts +561 -417
  164. package/src/ShardingConfig.ts +39 -31
  165. package/src/Snowflake.ts +1 -1
  166. package/src/SocketRunner.ts +6 -4
  167. package/src/SqlMessageStorage.ts +28 -30
  168. package/src/SqlRunnerStorage.ts +537 -0
  169. package/src/index.ts +4 -29
  170. package/src/internal/entityManager.ts +45 -29
  171. package/HttpCommon/package.json +0 -6
  172. package/HttpShardManager/package.json +0 -6
  173. package/ShardManager/package.json +0 -6
  174. package/ShardStorage/package.json +0 -6
  175. package/SocketShardManager/package.json +0 -6
  176. package/SqlShardStorage/package.json +0 -6
  177. package/SynchronizedClock/package.json +0 -6
  178. package/dist/cjs/HttpCommon.js +0 -48
  179. package/dist/cjs/HttpCommon.js.map +0 -1
  180. package/dist/cjs/HttpShardManager.js +0 -139
  181. package/dist/cjs/HttpShardManager.js.map +0 -1
  182. package/dist/cjs/ShardManager.js +0 -549
  183. package/dist/cjs/ShardManager.js.map +0 -1
  184. package/dist/cjs/ShardStorage.js +0 -151
  185. package/dist/cjs/ShardStorage.js.map +0 -1
  186. package/dist/cjs/SocketShardManager.js +0 -32
  187. package/dist/cjs/SocketShardManager.js.map +0 -1
  188. package/dist/cjs/SqlShardStorage.js +0 -253
  189. package/dist/cjs/SqlShardStorage.js.map +0 -1
  190. package/dist/cjs/SynchronizedClock.js +0 -65
  191. package/dist/cjs/SynchronizedClock.js.map +0 -1
  192. package/dist/cjs/internal/shardManager.js +0 -353
  193. package/dist/cjs/internal/shardManager.js.map +0 -1
  194. package/dist/dts/HttpCommon.d.ts +0 -25
  195. package/dist/dts/HttpCommon.d.ts.map +0 -1
  196. package/dist/dts/HttpShardManager.d.ts +0 -119
  197. package/dist/dts/HttpShardManager.d.ts.map +0 -1
  198. package/dist/dts/ShardManager.d.ts +0 -459
  199. package/dist/dts/ShardManager.d.ts.map +0 -1
  200. package/dist/dts/ShardStorage.d.ts.map +0 -1
  201. package/dist/dts/SocketShardManager.d.ts +0 -17
  202. package/dist/dts/SocketShardManager.d.ts.map +0 -1
  203. package/dist/dts/SqlShardStorage.d.ts +0 -38
  204. package/dist/dts/SqlShardStorage.d.ts.map +0 -1
  205. package/dist/dts/SynchronizedClock.d.ts +0 -19
  206. package/dist/dts/SynchronizedClock.d.ts.map +0 -1
  207. package/dist/dts/internal/shardManager.d.ts +0 -2
  208. package/dist/dts/internal/shardManager.d.ts.map +0 -1
  209. package/dist/esm/HttpCommon.js +0 -38
  210. package/dist/esm/HttpCommon.js.map +0 -1
  211. package/dist/esm/HttpShardManager.js +0 -128
  212. package/dist/esm/HttpShardManager.js.map +0 -1
  213. package/dist/esm/ShardManager.js +0 -535
  214. package/dist/esm/ShardManager.js.map +0 -1
  215. package/dist/esm/ShardStorage.js +0 -141
  216. package/dist/esm/ShardStorage.js.map +0 -1
  217. package/dist/esm/SocketShardManager.js +0 -24
  218. package/dist/esm/SocketShardManager.js.map +0 -1
  219. package/dist/esm/SqlShardStorage.js +0 -244
  220. package/dist/esm/SqlShardStorage.js.map +0 -1
  221. package/dist/esm/SynchronizedClock.js +0 -57
  222. package/dist/esm/SynchronizedClock.js.map +0 -1
  223. package/dist/esm/internal/shardManager.js +0 -342
  224. package/dist/esm/internal/shardManager.js.map +0 -1
  225. package/src/HttpCommon.ts +0 -73
  226. package/src/HttpShardManager.ts +0 -273
  227. package/src/ShardManager.ts +0 -823
  228. package/src/ShardStorage.ts +0 -297
  229. package/src/SocketShardManager.ts +0 -48
  230. package/src/SqlShardStorage.ts +0 -329
  231. package/src/SynchronizedClock.ts +0 -82
  232. package/src/internal/shardManager.ts +0 -412
@@ -1,151 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.makeMemory = exports.makeEncoded = exports.layerNoop = exports.layerMemory = exports.ShardStorage = void 0;
7
- var Arr = _interopRequireWildcard(require("effect/Array"));
8
- var Context = _interopRequireWildcard(require("effect/Context"));
9
- var Effect = _interopRequireWildcard(require("effect/Effect"));
10
- var Layer = _interopRequireWildcard(require("effect/Layer"));
11
- var MutableHashMap = _interopRequireWildcard(require("effect/MutableHashMap"));
12
- var Option = _interopRequireWildcard(require("effect/Option"));
13
- var _Runner = require("./Runner.js");
14
- var _RunnerAddress = require("./RunnerAddress.js");
15
- var _ShardId = require("./ShardId.js");
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
- /**
18
- * @since 1.0.0
19
- */
20
-
21
- /**
22
- * Represents a generic interface to the persistent storage required by the
23
- * cluster.
24
- *
25
- * @since 1.0.0
26
- * @category models
27
- */
28
- class ShardStorage extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardStorage")() {}
29
- /**
30
- * @since 1.0.0
31
- * @category layers
32
- */
33
- exports.ShardStorage = ShardStorage;
34
- const makeEncoded = encoded => ShardStorage.of({
35
- getAssignments: Effect.map(encoded.getAssignments, assignments => {
36
- const arr = Arr.empty();
37
- for (const [shardId, runnerAddress] of assignments) {
38
- arr.push([_ShardId.ShardId.fromString(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress))]);
39
- }
40
- return arr;
41
- }),
42
- saveAssignments: assignments => {
43
- const arr = Arr.empty();
44
- for (const [shardId, runnerAddress] of assignments) {
45
- arr.push([shardId.toString(), Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)]);
46
- }
47
- return encoded.saveAssignments(arr);
48
- },
49
- getRunners: Effect.gen(function* () {
50
- const runners = yield* encoded.getRunners;
51
- const results = [];
52
- for (let i = 0; i < runners.length; i++) {
53
- const [address, runner] = runners[i];
54
- try {
55
- results.push([decodeRunnerAddress(address), _Runner.Runner.decodeSync(runner)]);
56
- } catch {
57
- //
58
- }
59
- }
60
- return results;
61
- }),
62
- saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), _Runner.Runner.encodeSync(runner)]))),
63
- acquire: (address, shardIds) => {
64
- const arr = Array.from(shardIds, id => id.toString());
65
- return encoded.acquire(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
66
- },
67
- refresh: (address, shardIds) => {
68
- const arr = Array.from(shardIds, id => id.toString());
69
- return encoded.refresh(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
70
- },
71
- release(address, shardId) {
72
- return encoded.release(encodeRunnerAddress(address), shardId.toString());
73
- },
74
- releaseAll(address) {
75
- return encoded.releaseAll(encodeRunnerAddress(address));
76
- }
77
- });
78
- /**
79
- * @since 1.0.0
80
- * @category layers
81
- */
82
- exports.makeEncoded = makeEncoded;
83
- const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
84
- let acquired = [];
85
- return ShardStorage.of({
86
- getAssignments: Effect.sync(() => []),
87
- saveAssignments: () => Effect.void,
88
- getRunners: Effect.sync(() => []),
89
- saveRunners: () => Effect.void,
90
- acquire: (_address, shards) => {
91
- acquired = Array.from(shards);
92
- return Effect.succeed(Array.from(shards));
93
- },
94
- refresh: () => Effect.sync(() => acquired),
95
- release: () => Effect.void,
96
- releaseAll: () => Effect.void
97
- });
98
- });
99
- /**
100
- * @since 1.0.0
101
- * @category constructors
102
- */
103
- const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
104
- const assignments = MutableHashMap.empty();
105
- const runners = MutableHashMap.empty();
106
- function saveAssignments(value) {
107
- return Effect.sync(() => {
108
- for (const [shardId, runnerAddress] of value) {
109
- MutableHashMap.set(assignments, shardId, runnerAddress);
110
- }
111
- });
112
- }
113
- function saveRunners(value) {
114
- return Effect.sync(() => {
115
- for (const [address, runner] of value) {
116
- MutableHashMap.set(runners, address, runner);
117
- }
118
- });
119
- }
120
- let acquired = [];
121
- return ShardStorage.of({
122
- getAssignments: Effect.sync(() => Array.from(assignments)),
123
- saveAssignments,
124
- getRunners: Effect.sync(() => Array.from(runners)),
125
- saveRunners,
126
- acquire: (_address, shardIds) => {
127
- acquired = Array.from(shardIds);
128
- return Effect.succeed(Array.from(shardIds));
129
- },
130
- refresh: () => Effect.sync(() => acquired),
131
- release: () => Effect.void,
132
- releaseAll: () => Effect.void
133
- });
134
- });
135
- /**
136
- * @since 1.0.0
137
- * @category layers
138
- */
139
- const layerMemory = exports.layerMemory = /*#__PURE__*/Layer.effect(ShardStorage, makeMemory);
140
- // -------------------------------------------------------------------------------------
141
- // internal
142
- // -------------------------------------------------------------------------------------
143
- const encodeRunnerAddress = runnerAddress => `${runnerAddress.host}:${runnerAddress.port}`;
144
- const decodeRunnerAddress = runnerAddress => {
145
- const [host, port] = runnerAddress.split(":");
146
- return new _RunnerAddress.RunnerAddress({
147
- host,
148
- port: Number(port)
149
- });
150
- };
151
- //# sourceMappingURL=ShardStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShardStorage.js","names":["Arr","_interopRequireWildcard","require","Context","Effect","Layer","MutableHashMap","Option","_Runner","_RunnerAddress","_ShardId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardStorage","Tag","exports","makeEncoded","encoded","of","getAssignments","map","assignments","arr","empty","shardId","runnerAddress","push","ShardId","fromString","none","some","decodeRunnerAddress","saveAssignments","toString","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","length","address","runner","Runner","decodeSync","saveRunners","suspend","Array","from","encodeSync","acquire","shardIds","id","pipe","shards","refresh","release","releaseAll","layerNoop","sync","acquired","void","_address","succeed","makeMemory","layerMemory","effect","host","port","split","RunnerAddress","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,uBAAA,CAAAC,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AAAsC,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAZtC;;;;AAcA;;;;;;;AAOM,MAAOkB,YAAa,sBAAQ3B,OAAO,CAAC4B,GAAG,CAAC,8BAA8B,CAAC,EA2DzE;AAuEJ;;;;AAAAC,OAAA,CAAAF,YAAA,GAAAA,YAAA;AAIO,MAAMG,WAAW,GAAIC,OAAgB,IAC1CJ,YAAY,CAACK,EAAE,CAAC;EACdC,cAAc,EAAEhC,MAAM,CAACiC,GAAG,CAACH,OAAO,CAACE,cAAc,EAAGE,WAAW,IAAI;IACjE,MAAMC,GAAG,GAAGvC,GAAG,CAACwC,KAAK,EAA2C;IAChE,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPC,gBAAO,CAACC,UAAU,CAACJ,OAAO,CAAC,EAC3BC,aAAa,KAAK,IAAI,GAAGnC,MAAM,CAACuC,IAAI,EAAE,GAAGvC,MAAM,CAACwC,IAAI,CAACC,mBAAmB,CAACN,aAAa,CAAC,CAAC,CACzF,CAAC;IACJ;IACA,OAAOH,GAAG;EACZ,CAAC,CAAC;EACFU,eAAe,EAAGX,WAAW,IAAI;IAC/B,MAAMC,GAAG,GAAGvC,GAAG,CAACwC,KAAK,EAAoC;IACzD,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPF,OAAO,CAACS,QAAQ,EAAE,EAClB3C,MAAM,CAAC4C,MAAM,CAACT,aAAa,CAAC,GAAG,IAAI,GAAGU,mBAAmB,CAACV,aAAa,CAACW,KAAK,CAAC,CAC/E,CAAC;IACJ;IACA,OAAOnB,OAAO,CAACe,eAAe,CAACV,GAAG,CAAC;EACrC,CAAC;EACDe,UAAU,EAAElD,MAAM,CAACmD,GAAG,CAAC,aAAS;IAC9B,MAAMC,OAAO,GAAG,OAAOtB,OAAO,CAACoB,UAAU;IACzC,MAAMG,OAAO,GAAmC,EAAE;IAClD,KAAK,IAAIvC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsC,OAAO,CAACE,MAAM,EAAExC,CAAC,EAAE,EAAE;MACvC,MAAM,CAACyC,OAAO,EAAEC,MAAM,CAAC,GAAGJ,OAAO,CAACtC,CAAC,CAAC;MACpC,IAAI;QACFuC,OAAO,CAACd,IAAI,CAAC,CAACK,mBAAmB,CAACW,OAAO,CAAC,EAAEE,cAAM,CAACC,UAAU,CAACF,MAAM,CAAC,CAAC,CAAC;MACzE,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;IACA,OAAOH,OAAO;EAChB,CAAC,CAAC;EACFM,WAAW,EAAGP,OAAO,IACnBpD,MAAM,CAAC4D,OAAO,CAAC,MACb9B,OAAO,CAAC6B,WAAW,CACjBE,KAAK,CAACC,IAAI,CAACV,OAAO,EAAE,CAAC,CAACG,OAAO,EAAEC,MAAM,CAAC,KAAK,CAACR,mBAAmB,CAACO,OAAO,CAAC,EAAEE,cAAM,CAACM,UAAU,CAACP,MAAM,CAAC,CAAC,CAAC,CACtG,CACF;EACHQ,OAAO,EAAEA,CAACT,OAAO,EAAEU,QAAQ,KAAI;IAC7B,MAAM9B,GAAG,GAAG0B,KAAK,CAACC,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOhB,OAAO,CAACkC,OAAO,CAAChB,mBAAmB,CAACO,OAAO,CAAC,EAAEpB,GAAG,CAAC,CAACgC,IAAI,CAC5DnE,MAAM,CAACiC,GAAG,CAAEmC,MAAM,IAAKA,MAAM,CAACnC,GAAG,CAACO,gBAAO,CAACC,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD4B,OAAO,EAAEA,CAACd,OAAO,EAAEU,QAAQ,KAAI;IAC7B,MAAM9B,GAAG,GAAG0B,KAAK,CAACC,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOhB,OAAO,CAACuC,OAAO,CAACrB,mBAAmB,CAACO,OAAO,CAAC,EAAEpB,GAAG,CAAC,CAACgC,IAAI,CAC5DnE,MAAM,CAACiC,GAAG,CAAEmC,MAAM,IAAKA,MAAM,CAACnC,GAAG,CAACO,gBAAO,CAACC,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD6B,OAAOA,CAACf,OAAO,EAAElB,OAAO;IACtB,OAAOP,OAAO,CAACwC,OAAO,CAACtB,mBAAmB,CAACO,OAAO,CAAC,EAAElB,OAAO,CAACS,QAAQ,EAAE,CAAC;EAC1E,CAAC;EACDyB,UAAUA,CAAChB,OAAO;IAChB,OAAOzB,OAAO,CAACyC,UAAU,CAACvB,mBAAmB,CAACO,OAAO,CAAC,CAAC;EACzD;CACD,CAAC;AAEJ;;;;AAAA3B,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAIO,MAAM2C,SAAS,GAAA5C,OAAA,CAAA4C,SAAA,gBAA8BvE,KAAK,CAACwE,IAAI,CAC5D/C,YAAY,EACZ,MAAK;EACH,IAAIgD,QAAQ,GAAmB,EAAE;EACjC,OAAOhD,YAAY,CAACK,EAAE,CAAC;IACrBC,cAAc,EAAEhC,MAAM,CAACyE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC5B,eAAe,EAAEA,CAAA,KAAM7C,MAAM,CAAC2E,IAAI;IAClCzB,UAAU,EAAElD,MAAM,CAACyE,IAAI,CAAC,MAAM,EAAE,CAAC;IACjCd,WAAW,EAAEA,CAAA,KAAM3D,MAAM,CAAC2E,IAAI;IAC9BX,OAAO,EAAEA,CAACY,QAAQ,EAAER,MAAM,KAAI;MAC5BM,QAAQ,GAAGb,KAAK,CAACC,IAAI,CAACM,MAAM,CAAC;MAC7B,OAAOpE,MAAM,CAAC6E,OAAO,CAAChB,KAAK,CAACC,IAAI,CAACM,MAAM,CAAC,CAAC;IAC3C,CAAC;IACDC,OAAO,EAAEA,CAAA,KAAMrE,MAAM,CAACyE,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMtE,MAAM,CAAC2E,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMvE,MAAM,CAAC2E;GAC1B,CAAC;AACJ,CAAC,CACF;AAED;;;;AAIO,MAAMG,UAAU,GAAAlD,OAAA,CAAAkD,UAAA,gBAAG9E,MAAM,CAACmD,GAAG,CAAC,aAAS;EAC5C,MAAMjB,WAAW,GAAGhC,cAAc,CAACkC,KAAK,EAAyC;EACjF,MAAMgB,OAAO,GAAGlD,cAAc,CAACkC,KAAK,EAAyB;EAE7D,SAASS,eAAeA,CAACI,KAAiE;IACxF,OAAOjD,MAAM,CAACyE,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAACpC,OAAO,EAAEC,aAAa,CAAC,IAAIW,KAAK,EAAE;QAC5C/C,cAAc,CAACkB,GAAG,CAACc,WAAW,EAAEG,OAAO,EAAEC,aAAa,CAAC;MACzD;IACF,CAAC,CAAC;EACJ;EAEA,SAASqB,WAAWA,CAACV,KAAiD;IACpE,OAAOjD,MAAM,CAACyE,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAAClB,OAAO,EAAEC,MAAM,CAAC,IAAIP,KAAK,EAAE;QACrC/C,cAAc,CAACkB,GAAG,CAACgC,OAAO,EAAEG,OAAO,EAAEC,MAAM,CAAC;MAC9C;IACF,CAAC,CAAC;EACJ;EAEA,IAAIkB,QAAQ,GAAmB,EAAE;EAEjC,OAAOhD,YAAY,CAACK,EAAE,CAAC;IACrBC,cAAc,EAAEhC,MAAM,CAACyE,IAAI,CAAC,MAAMZ,KAAK,CAACC,IAAI,CAAC5B,WAAW,CAAC,CAAC;IAC1DW,eAAe;IACfK,UAAU,EAAElD,MAAM,CAACyE,IAAI,CAAC,MAAMZ,KAAK,CAACC,IAAI,CAACV,OAAO,CAAC,CAAC;IAClDO,WAAW;IACXK,OAAO,EAAEA,CAACY,QAAQ,EAAEX,QAAQ,KAAI;MAC9BS,QAAQ,GAAGb,KAAK,CAACC,IAAI,CAACG,QAAQ,CAAC;MAC/B,OAAOjE,MAAM,CAAC6E,OAAO,CAAChB,KAAK,CAACC,IAAI,CAACG,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACDI,OAAO,EAAEA,CAAA,KAAMrE,MAAM,CAACyE,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMtE,MAAM,CAAC2E,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMvE,MAAM,CAAC2E;GAC1B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIO,MAAMI,WAAW,GAAAnD,OAAA,CAAAmD,WAAA,gBAA8B9E,KAAK,CAAC+E,MAAM,CAACtD,YAAY,EAAEoD,UAAU,CAAC;AAE5F;AACA;AACA;AAEA,MAAM9B,mBAAmB,GAAIV,aAA4B,IAAK,GAAGA,aAAa,CAAC2C,IAAI,IAAI3C,aAAa,CAAC4C,IAAI,EAAE;AAE3G,MAAMtC,mBAAmB,GAAIN,aAAqB,IAAmB;EACnE,MAAM,CAAC2C,IAAI,EAAEC,IAAI,CAAC,GAAG5C,aAAa,CAAC6C,KAAK,CAAC,GAAG,CAAC;EAC7C,OAAO,IAAIC,4BAAa,CAAC;IAAEH,IAAI;IAAEC,IAAI,EAAEG,MAAM,CAACH,IAAI;EAAC,CAAE,CAAC;AACxD,CAAC","ignoreList":[]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.layer = void 0;
7
- var _SocketServer = require("@effect/platform/SocketServer");
8
- var RpcServer = _interopRequireWildcard(require("@effect/rpc/RpcServer"));
9
- var Effect = _interopRequireWildcard(require("effect/Effect"));
10
- var Layer = _interopRequireWildcard(require("effect/Layer"));
11
- var MessageStorage = _interopRequireWildcard(require("./MessageStorage.js"));
12
- var Runners = _interopRequireWildcard(require("./Runners.js"));
13
- var ShardManager = _interopRequireWildcard(require("./ShardManager.js"));
14
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- /**
16
- * @since 1.0.0
17
- */
18
-
19
- const withLogAddress = layer => Layer.effectDiscard(Effect.gen(function* () {
20
- const server = yield* _SocketServer.SocketServer;
21
- const address = server.address._tag === "UnixAddress" ? server.address.path : `${server.address.hostname}:${server.address.port}`;
22
- yield* Effect.annotateLogs(Effect.logInfo(`Listening on: ${address}`), {
23
- package: "@effect/cluster",
24
- service: "ShardManager"
25
- });
26
- })).pipe(Layer.provideMerge(layer));
27
- /**
28
- * @since 1.0.0
29
- * @category Layers
30
- */
31
- const layer = exports.layer = /*#__PURE__*/ShardManager.layerServer.pipe(withLogAddress, /*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.fresh(RpcServer.layerProtocolSocketServer)), /*#__PURE__*/Layer.provideMerge(ShardManager.layer), /*#__PURE__*/Layer.provide(Runners.layerRpc), /*#__PURE__*/Layer.provide(MessageStorage.layerNoop));
32
- //# sourceMappingURL=SocketShardManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SocketShardManager.js","names":["_SocketServer","require","RpcServer","_interopRequireWildcard","Effect","Layer","MessageStorage","Runners","ShardManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withLogAddress","layer","effectDiscard","gen","server","SocketServer","address","_tag","path","hostname","port","annotateLogs","logInfo","package","service","pipe","provideMerge","exports","layerServer","provide","fresh","layerProtocolSocketServer","layerRpc","layerNoop"],"sources":["../../src/SocketShardManager.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,uBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,uBAAA,CAAAF,OAAA;AACA,IAAAK,cAAA,GAAAH,uBAAA,CAAAF,OAAA;AAEA,IAAAM,OAAA,GAAAJ,uBAAA,CAAAF,OAAA;AAEA,IAAAO,YAAA,GAAAL,uBAAA,CAAAF,OAAA;AAAiD,SAAAE,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAZjD;;;;AAeA,MAAMkB,cAAc,GAAaC,KAA2B,IAC1DxB,KAAK,CAACyB,aAAa,CAAC1B,MAAM,CAAC2B,GAAG,CAAC,aAAS;EACtC,MAAMC,MAAM,GAAG,OAAOC,0BAAY;EAClC,MAAMC,OAAO,GAAGF,MAAM,CAACE,OAAO,CAACC,IAAI,KAAK,aAAa,GACjDH,MAAM,CAACE,OAAO,CAACE,IAAI,GACnB,GAAGJ,MAAM,CAACE,OAAO,CAACG,QAAQ,IAAIL,MAAM,CAACE,OAAO,CAACI,IAAI,EAAE;EACvD,OAAOlC,MAAM,CAACmC,YAAY,CAACnC,MAAM,CAACoC,OAAO,CAAC,iBAAiBN,OAAO,EAAE,CAAC,EAAE;IACrEO,OAAO,EAAE,iBAAiB;IAC1BC,OAAO,EAAE;GACV,CAAC;AACJ,CAAC,CAAC,CAAC,CAACC,IAAI,CAACtC,KAAK,CAACuC,YAAY,CAACf,KAAK,CAAC,CAAC;AAErC;;;;AAIO,MAAMA,KAAK,GAAAgB,OAAA,CAAAhB,KAAA,gBAUdrB,YAAY,CAACsC,WAAW,CAACH,IAAI,CAC/Bf,cAAc,eACdvB,KAAK,CAAC0C,OAAO,cAAC1C,KAAK,CAAC2C,KAAK,CAAC9C,SAAS,CAAC+C,yBAAyB,CAAC,CAAC,eAC/D5C,KAAK,CAACuC,YAAY,CAACpC,YAAY,CAACqB,KAAK,CAAC,eACtCxB,KAAK,CAAC0C,OAAO,CAACxC,OAAO,CAAC2C,QAAQ,CAAC,eAC/B7C,KAAK,CAAC0C,OAAO,CAACzC,cAAc,CAAC6C,SAAS,CAAC,CACxC","ignoreList":[]}
@@ -1,253 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.make = exports.layerWith = exports.layer = void 0;
7
- var SqlClient = _interopRequireWildcard(require("@effect/sql/SqlClient"));
8
- var Arr = _interopRequireWildcard(require("effect/Array"));
9
- var Effect = _interopRequireWildcard(require("effect/Effect"));
10
- var Layer = _interopRequireWildcard(require("effect/Layer"));
11
- var _ClusterError = require("./ClusterError.js");
12
- var ShardStorage = _interopRequireWildcard(require("./ShardStorage.js"));
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- /**
15
- * @since 1.0.0
16
- */
17
-
18
- const withTracerDisabled = /*#__PURE__*/Effect.withTracerEnabled(false);
19
- /**
20
- * @since 1.0.0
21
- * @category Constructors
22
- */
23
- const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
24
- const sql = (yield* SqlClient.SqlClient).withoutTransforms();
25
- const prefix = options?.prefix ?? "cluster";
26
- const table = name => `${prefix}_${name}`;
27
- const runnersTable = table("runners");
28
- const runnersTableSql = sql(runnersTable);
29
- yield* sql.onDialectOrElse({
30
- mssql: () => sql`
31
- IF OBJECT_ID(N'${runnersTableSql}', N'U') IS NULL
32
- CREATE TABLE ${runnersTableSql} (
33
- address VARCHAR(255) PRIMARY KEY,
34
- runner TEXT NOT NULL
35
- )
36
- `,
37
- mysql: () => sql`
38
- CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
39
- address VARCHAR(255) PRIMARY KEY,
40
- runner TEXT NOT NULL
41
- )
42
- `,
43
- pg: () => sql`
44
- CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
45
- address VARCHAR(255) PRIMARY KEY,
46
- runner TEXT NOT NULL
47
- )
48
- `,
49
- orElse: () =>
50
- // sqlite
51
- sql`
52
- CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
53
- address TEXT PRIMARY KEY,
54
- runner TEXT NOT NULL
55
- )
56
- `
57
- });
58
- const shardsTable = table("shards");
59
- const shardsTableSql = sql(shardsTable);
60
- yield* sql.onDialectOrElse({
61
- mssql: () => sql`
62
- IF OBJECT_ID(N'${shardsTableSql}', N'U') IS NULL
63
- CREATE TABLE ${shardsTableSql} (
64
- shard_id VARCHAR(50) PRIMARY KEY,
65
- address VARCHAR(255)
66
- )
67
- `,
68
- mysql: () => sql`
69
- CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
70
- shard_id VARCHAR(50) PRIMARY KEY,
71
- address VARCHAR(255)
72
- )
73
- `,
74
- pg: () => sql`
75
- CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
76
- shard_id VARCHAR(50) PRIMARY KEY,
77
- address VARCHAR(255)
78
- )
79
- `,
80
- orElse: () =>
81
- // sqlite
82
- sql`
83
- CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
84
- shard_id TEXT PRIMARY KEY,
85
- address TEXT
86
- )
87
- `
88
- });
89
- const locksTable = table("locks");
90
- const locksTableSql = sql(locksTable);
91
- yield* sql.onDialectOrElse({
92
- mssql: () => sql`
93
- IF OBJECT_ID(N'${locksTableSql}', N'U') IS NULL
94
- CREATE TABLE ${locksTableSql} (
95
- shard_id VARCHAR(50) PRIMARY KEY,
96
- address VARCHAR(255) NOT NULL,
97
- acquired_at DATETIME NOT NULL
98
- )
99
- `,
100
- mysql: () => sql`
101
- CREATE TABLE IF NOT EXISTS ${locksTableSql} (
102
- shard_id VARCHAR(50) PRIMARY KEY,
103
- address VARCHAR(255) NOT NULL,
104
- acquired_at DATETIME NOT NULL
105
- )
106
- `,
107
- pg: () => sql`
108
- CREATE TABLE IF NOT EXISTS ${locksTableSql} (
109
- shard_id VARCHAR(50) PRIMARY KEY,
110
- address VARCHAR(255) NOT NULL,
111
- acquired_at TIMESTAMP NOT NULL
112
- )
113
- `,
114
- orElse: () =>
115
- // sqlite
116
- sql`
117
- CREATE TABLE IF NOT EXISTS ${locksTableSql} (
118
- shard_id TEXT PRIMARY KEY,
119
- address TEXT NOT NULL,
120
- acquired_at DATETIME NOT NULL
121
- )
122
- `
123
- });
124
- const sqlNowString = sql.onDialectOrElse({
125
- pg: () => "NOW()",
126
- mysql: () => "NOW()",
127
- mssql: () => "GETDATE()",
128
- orElse: () => "CURRENT_TIMESTAMP"
129
- });
130
- const sqlNow = sql.literal(sqlNowString);
131
- const lockExpiresAt = sql.onDialectOrElse({
132
- pg: () => sql`${sqlNow} - INTERVAL '5 seconds'`,
133
- mysql: () => sql`DATE_SUB(${sqlNow}, INTERVAL 5 SECOND)`,
134
- mssql: () => sql`DATEADD(SECOND, -5, ${sqlNow})`,
135
- orElse: () => sql`datetime(${sqlNow}, '-5 seconds')`
136
- });
137
- const acquireLock = sql.onDialectOrElse({
138
- pg: () => (address, values) => sql`
139
- INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
140
- ON CONFLICT (shard_id) DO UPDATE
141
- SET address = ${address}, acquired_at = ${sqlNow}
142
- WHERE ${locksTableSql}.address = ${address}
143
- OR ${locksTableSql}.acquired_at < ${lockExpiresAt}
144
- `,
145
- mysql: () => (_address, values) => sql`
146
- INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
147
- ON DUPLICATE KEY UPDATE
148
- address = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(address), address),
149
- acquired_at = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(acquired_at), acquired_at)
150
- `.unprepared,
151
- mssql: () => (_address, values) => sql`
152
- MERGE ${locksTableSql} WITH (HOLDLOCK) AS target
153
- USING (SELECT * FROM (VALUES ${sql.csv(values)})) AS source (shard_id, address, acquired_at)
154
- ON target.shard_id = source.shard_id
155
- WHEN MATCHED AND (target.address = source.address OR DATEDIFF(SECOND, target.acquired_at, ${sqlNow}) > 5) THEN
156
- UPDATE SET address = source.address, acquired_at = source.acquired_at
157
- WHEN NOT MATCHED THEN
158
- INSERT (shard_id, address, acquired_at)
159
- VALUES (source.shard_id, source.address, source.acquired_at);
160
- `,
161
- orElse: () => (address, values) =>
162
- // sqlite
163
- sql`
164
- WITH source(shard_id, address, acquired_at) AS (VALUES ${sql.csv(values)})
165
- INSERT INTO ${locksTableSql} (shard_id, address, acquired_at)
166
- SELECT source.shard_id, source.address, source.acquired_at
167
- FROM source
168
- WHERE NOT EXISTS (
169
- SELECT 1 FROM ${locksTableSql}
170
- WHERE shard_id = source.shard_id
171
- AND address != ${address}
172
- AND (strftime('%s', ${sqlNow}) - strftime('%s', acquired_at)) <= 5
173
- )
174
- ON CONFLICT(shard_id) DO UPDATE
175
- SET address = ${address}, acquired_at = ${sqlNow}
176
- `
177
- });
178
- const wrapString = sql.onDialectOrElse({
179
- mssql: () => s => `N'${s}'`,
180
- orElse: () => s => `'${s}'`
181
- });
182
- const wrapStringArr = arr => sql.literal(arr.map(wrapString).join(", "));
183
- const refreshShards = sql.onDialectOrElse({
184
- mysql: () => (address, shardIds) => {
185
- const shardIdsStr = wrapStringArr(shardIds);
186
- return sql`
187
- UPDATE ${locksTableSql}
188
- SET acquired_at = ${sqlNow}
189
- WHERE address = ${address} AND shard_id IN (${shardIdsStr});
190
- SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND shard_id IN (${shardIdsStr})
191
- `.unprepared.pipe(Effect.map(rows => rows[1].map(row => [row.shard_id])));
192
- },
193
- mssql: () => (address, shardIds) => sql`
194
- UPDATE ${locksTableSql}
195
- SET acquired_at = ${sqlNow}
196
- OUTPUT inserted.shard_id
197
- WHERE address = ${address} AND shard_id IN (${wrapStringArr(shardIds)})
198
- `.values,
199
- orElse: () => (address, shardIds) => sql`
200
- UPDATE ${locksTableSql}
201
- SET acquired_at = ${sqlNow}
202
- WHERE address = ${address} AND shard_id IN (${wrapStringArr(shardIds)})
203
- RETURNING shard_id
204
- `.values
205
- });
206
- return ShardStorage.makeEncoded({
207
- getAssignments: sql`SELECT shard_id, address FROM ${shardsTableSql} ORDER BY shard_id`.values.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled),
208
- saveAssignments: assignments => {
209
- const remove = sql`DELETE FROM ${shardsTableSql}`;
210
- if (assignments.length === 0) {
211
- return _ClusterError.PersistenceError.refail(remove);
212
- }
213
- const values = assignments.map(([shardId, address]) => sql`(${shardId}, ${address})`);
214
- return remove.pipe(Effect.andThen(sql`INSERT INTO ${shardsTableSql} (shard_id, address) VALUES ${sql.csv(values)}`.unprepared), sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled);
215
- },
216
- getRunners: sql`SELECT address, runner FROM ${runnersTableSql}`.values.pipe(_ClusterError.PersistenceError.refail, Effect.map(Arr.map(([address, runner]) => [String(address), String(runner)])), withTracerDisabled),
217
- saveRunners: runners => {
218
- const remove = sql`DELETE FROM ${runnersTableSql}`;
219
- if (runners.length === 0) {
220
- return _ClusterError.PersistenceError.refail(remove);
221
- }
222
- const values = runners.map(([address, runner]) => sql`(${address}, ${runner})`);
223
- const insert = sql`INSERT INTO ${runnersTableSql} (address, runner) VALUES ${sql.csv(values)}`.unprepared;
224
- return remove.pipe(Effect.andThen(insert), sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled);
225
- },
226
- acquire: Effect.fnUntraced(function* (address, shardIds) {
227
- if (shardIds.length > 0) {
228
- const values = shardIds.map(shardId => sql`(${shardId}, ${address}, ${sqlNow})`);
229
- yield* acquireLock(address, values);
230
- }
231
- const currentLocks = yield* sql`
232
- SELECT shard_id FROM ${sql(locksTable)}
233
- WHERE address = ${address} AND acquired_at >= ${lockExpiresAt}
234
- `.values;
235
- return currentLocks.map(row => row[0]);
236
- }, sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled),
237
- refresh: (address, shardIds) => shardIds.length === 0 ? Effect.succeed([]) : refreshShards(address, shardIds).pipe(Effect.map(rows => rows.map(row => row[0])), _ClusterError.PersistenceError.refail, withTracerDisabled),
238
- release: (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled),
239
- releaseAll: address => sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled)
240
- });
241
- }, withTracerDisabled);
242
- /**
243
- * @since 1.0.0
244
- * @category Layers
245
- */
246
- const layer = exports.layer = /*#__PURE__*/Layer.effect(ShardStorage.ShardStorage, /*#__PURE__*/make());
247
- /**
248
- * @since 1.0.0
249
- * @category Layers
250
- */
251
- const layerWith = options => Layer.scoped(ShardStorage.ShardStorage, make(options));
252
- exports.layerWith = layerWith;
253
- //# sourceMappingURL=SqlShardStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SqlShardStorage.js","names":["SqlClient","_interopRequireWildcard","require","Arr","Effect","Layer","_ClusterError","ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withTracerDisabled","withTracerEnabled","make","exports","fnUntraced","options","sql","withoutTransforms","prefix","table","name","runnersTable","runnersTableSql","onDialectOrElse","mssql","mysql","pg","orElse","shardsTable","shardsTableSql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","lockExpiresAt","acquireLock","address","values","csv","_address","unprepared","wrapString","s","wrapStringArr","arr","map","join","refreshShards","shardIds","shardIdsStr","pipe","rows","row","shard_id","makeEncoded","getAssignments","PersistenceError","refail","saveAssignments","assignments","remove","length","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","currentLocks","refresh","succeed","release","releaseAll","layer","effect","layerWith","scoped"],"sources":["../../src/SqlShardStorage.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAN,uBAAA,CAAAC,OAAA;AAAiD,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AATjD;;;;AAWA,MAAMkB,kBAAkB,gBAAGvB,MAAM,CAACwB,iBAAiB,CAAC,KAAK,CAAC;AAE1D;;;;AAIO,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,gBAAGzB,MAAM,CAAC2B,UAAU,CAAC,WAAUC,OAE/C;EACC,MAAMC,GAAG,GAAG,CAAC,OAAOjC,SAAS,CAACA,SAAS,EAAEkC,iBAAiB,EAAE;EAC5D,MAAMC,MAAM,GAAGH,OAAO,EAAEG,MAAM,IAAI,SAAS;EAC3C,MAAMC,KAAK,GAAIC,IAAY,IAAK,GAAGF,MAAM,IAAIE,IAAI,EAAE;EAEnD,MAAMC,YAAY,GAAGF,KAAK,CAAC,SAAS,CAAC;EACrC,MAAMG,eAAe,GAAGN,GAAG,CAACK,YAAY,CAAC;EAEzC,OAAOL,GAAG,CAACO,eAAe,CAAC;IACzBC,KAAK,EAAEA,CAAA,KACLR,GAAG;yBACgBM,eAAe;uBACjBA,eAAe;;;;OAI/B;IACHG,KAAK,EAAEA,CAAA,KACLT,GAAG;qCAC4BM,eAAe;;;;OAI7C;IACHI,EAAE,EAAEA,CAAA,KACFV,GAAG;qCAC4BM,eAAe;;;;OAI7C;IACHK,MAAM,EAAEA,CAAA;IACN;IACAX,GAAG;qCAC4BM,eAAe;;;;;GAKjD,CAAC;EAEF,MAAMM,WAAW,GAAGT,KAAK,CAAC,QAAQ,CAAC;EACnC,MAAMU,cAAc,GAAGb,GAAG,CAACY,WAAW,CAAC;EAEvC,OAAOZ,GAAG,CAACO,eAAe,CAAC;IACzBC,KAAK,EAAEA,CAAA,KACLR,GAAG;yBACgBa,cAAc;uBAChBA,cAAc;;;;OAI9B;IACHJ,KAAK,EAAEA,CAAA,KACLT,GAAG;qCAC4Ba,cAAc;;;;OAI5C;IACHH,EAAE,EAAEA,CAAA,KACFV,GAAG;qCAC4Ba,cAAc;;;;OAI5C;IACHF,MAAM,EAAEA,CAAA;IACN;IACAX,GAAG;qCAC4Ba,cAAc;;;;;GAKhD,CAAC;EAEF,MAAMC,UAAU,GAAGX,KAAK,CAAC,OAAO,CAAC;EACjC,MAAMY,aAAa,GAAGf,GAAG,CAACc,UAAU,CAAC;EAErC,OAAOd,GAAG,CAACO,eAAe,CAAC;IACzBC,KAAK,EAAEA,CAAA,KACLR,GAAG;yBACgBe,aAAa;uBACfA,aAAa;;;;;OAK7B;IACHN,KAAK,EAAEA,CAAA,KACLT,GAAG;qCAC4Be,aAAa;;;;;OAK3C;IACHL,EAAE,EAAEA,CAAA,KACFV,GAAG;qCAC4Be,aAAa;;;;;OAK3C;IACHJ,MAAM,EAAEA,CAAA;IACN;IACAX,GAAG;qCAC4Be,aAAa;;;;;;GAM/C,CAAC;EAEF,MAAMC,YAAY,GAAGhB,GAAG,CAACO,eAAe,CAAC;IACvCG,EAAE,EAAEA,CAAA,KAAM,OAAO;IACjBD,KAAK,EAAEA,CAAA,KAAM,OAAO;IACpBD,KAAK,EAAEA,CAAA,KAAM,WAAW;IACxBG,MAAM,EAAEA,CAAA,KAAM;GACf,CAAC;EACF,MAAMM,MAAM,GAAGjB,GAAG,CAACkB,OAAO,CAACF,YAAY,CAAC;EAExC,MAAMG,aAAa,GAAGnB,GAAG,CAACO,eAAe,CAAC;IACxCG,EAAE,EAAEA,CAAA,KAAMV,GAAG,GAAGiB,MAAM,yBAAyB;IAC/CR,KAAK,EAAEA,CAAA,KAAMT,GAAG,YAAYiB,MAAM,sBAAsB;IACxDT,KAAK,EAAEA,CAAA,KAAMR,GAAG,uBAAuBiB,MAAM,GAAG;IAChDN,MAAM,EAAEA,CAAA,KAAMX,GAAG,YAAYiB,MAAM;GACpC,CAAC;EAEF,MAAMG,WAAW,GAAGpB,GAAG,CAACO,eAAe,CAAC;IACtCG,EAAE,EAAEA,CAAA,KAAM,CAACW,OAAe,EAAEC,MAAkB,KAC5CtB,GAAG;sBACae,aAAa,4CAA4Cf,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC;;wBAEtED,OAAO,mBAAmBJ,MAAM;gBACxCF,aAAa,cAAcM,OAAO;eACnCN,aAAa,kBAAkBI,aAAa;OACpD;IACHV,KAAK,EAAEA,CAAA,KAAM,CAACe,QAAgB,EAAEF,MAAkB,KAChDtB,GAAG;sBACae,aAAa,4CAA4Cf,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC;;kEAE5BH,aAAa;sEACTA,aAAa;OAC5E,CAACM,UAAU;IACdjB,KAAK,EAAEA,CAAA,KAAM,CAACgB,QAAgB,EAAEF,MAAkB,KAChDtB,GAAG;gBACOe,aAAa;uCACUf,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC;;oGAE8CL,MAAM;;;;;OAKnG;IACHN,MAAM,EAAEA,CAAA,KAAM,CAACU,OAAe,EAAEC,MAAkB;IAChD;IACAtB,GAAG;iEACwDA,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC;sBAC1DP,aAAa;;;;0BAITA,aAAa;;2BAEZM,OAAO;gCACFJ,MAAM;;;wBAGdI,OAAO,mBAAmBJ,MAAM;;GAErD,CAAC;EAEF,MAAMS,UAAU,GAAG1B,GAAG,CAACO,eAAe,CAAC;IACrCC,KAAK,EAAEA,CAAA,KAAOmB,CAAS,IAAK,KAAKA,CAAC,GAAG;IACrChB,MAAM,EAAEA,CAAA,KAAOgB,CAAS,IAAK,IAAIA,CAAC;GACnC,CAAC;EACF,MAAMC,aAAa,GAAIC,GAA0B,IAAK7B,GAAG,CAACkB,OAAO,CAACW,GAAG,CAACC,GAAG,CAACJ,UAAU,CAAC,CAACK,IAAI,CAAC,IAAI,CAAC,CAAC;EAEjG,MAAMC,aAAa,GAAGhC,GAAG,CAACO,eAAe,CAAC;IACxCE,KAAK,EAAEA,CAAA,KAAM,CAACY,OAAe,EAAEY,QAA+B,KAAI;MAChE,MAAMC,WAAW,GAAGN,aAAa,CAACK,QAAQ,CAAC;MAC3C,OAAOjC,GAAgC;iBAC5Be,aAAa;4BACFE,MAAM;0BACRI,OAAO,qBAAqBa,WAAW;+BAClCnB,aAAa,oBAAoBM,OAAO,qBAAqBa,WAAW;OAChG,CAACT,UAAU,CAACU,IAAI,CACfhE,MAAM,CAAC2D,GAAG,CAAEM,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC,CAACN,GAAG,CAAEO,GAAG,IAAK,CAACA,GAAG,CAACC,QAAQ,CAAC,CAAC,CAAC,CAC3D;IACH,CAAC;IACD9B,KAAK,EAAEA,CAAA,KAAM,CAACa,OAAe,EAAEY,QAA+B,KAC5DjC,GAAG;iBACQe,aAAa;4BACFE,MAAM;;0BAERI,OAAO,qBAAqBO,aAAa,CAACK,QAAQ,CAAC;OACtE,CAACX,MAAM;IACVX,MAAM,EAAEA,CAAA,KAAM,CAACU,OAAe,EAAEY,QAA+B,KAC7DjC,GAAG;iBACQe,aAAa;4BACFE,MAAM;0BACRI,OAAO,qBAAqBO,aAAa,CAACK,QAAQ,CAAC;;OAEtE,CAACX;GACL,CAAC;EAEF,OAAOhD,YAAY,CAACiE,WAAW,CAAC;IAC9BC,cAAc,EAAExC,GAAG,iCAAiCa,cAAc,oBAAoB,CAACS,MAAM,CAACa,IAAI,CAChGM,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACZ;IAERiD,eAAe,EAAGC,WAAW,IAAI;MAC/B,MAAMC,MAAM,GAAG7C,GAAG,eAAea,cAAc,EAAE;MACjD,IAAI+B,WAAW,CAACE,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAOL,8BAAgB,CAACC,MAAM,CAACG,MAAM,CAAC;MACxC;MACA,MAAMvB,MAAM,GAAGsB,WAAW,CAACd,GAAG,CAAC,CAAC,CAACiB,OAAO,EAAE1B,OAAO,CAAC,KAAKrB,GAAG,IAAI+C,OAAO,KAAK1B,OAAO,GAAG,CAAC;MACrF,OAAOwB,MAAM,CAACV,IAAI,CAChBhE,MAAM,CAAC6E,OAAO,CAAChD,GAAG,eAAea,cAAc,+BAA+Bb,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC,EAAE,CAACG,UAAU,CAAC,EAC3GzB,GAAG,CAACiD,eAAe,EACnBR,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACnB;IACH,CAAC;IAEDwD,UAAU,EAAElD,GAAG,+BAA+BM,eAAe,EAAE,CAACgB,MAAM,CAACa,IAAI,CACzEM,8BAAgB,CAACC,MAAM,EACvBvE,MAAM,CAAC2D,GAAG,CAAC5D,GAAG,CAAC4D,GAAG,CAAC,CAAC,CAACT,OAAO,EAAE8B,MAAM,CAAC,KAAK,CAACC,MAAM,CAAC/B,OAAO,CAAC,EAAE+B,MAAM,CAACD,MAAM,CAAC,CAAU,CAAC,CAAC,EACtFzD,kBAAkB,CACnB;IAED2D,WAAW,EAAGC,OAAO,IAAI;MACvB,MAAMT,MAAM,GAAG7C,GAAG,eAAeM,eAAe,EAAE;MAClD,IAAIgD,OAAO,CAACR,MAAM,KAAK,CAAC,EAAE;QACxB,OAAOL,8BAAgB,CAACC,MAAM,CAACG,MAAM,CAAC;MACxC;MACA,MAAMvB,MAAM,GAAGgC,OAAO,CAACxB,GAAG,CAAC,CAAC,CAACT,OAAO,EAAE8B,MAAM,CAAC,KAAKnD,GAAG,IAAIqB,OAAO,KAAK8B,MAAM,GAAG,CAAC;MAC/E,MAAMI,MAAM,GAAGvD,GAAG,eAAeM,eAAe,6BAA6BN,GAAG,CAACuB,GAAG,CAACD,MAAM,CAAC,EAAE,CAACG,UAAU;MACzG,OAAOoB,MAAM,CAACV,IAAI,CAChBhE,MAAM,CAAC6E,OAAO,CAACO,MAAM,CAAC,EACtBvD,GAAG,CAACiD,eAAe,EACnBR,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACnB;IACH,CAAC;IAED8D,OAAO,EAAErF,MAAM,CAAC2B,UAAU,CACxB,WAAUuB,OAAO,EAAEY,QAAQ;MACzB,IAAIA,QAAQ,CAACa,MAAM,GAAG,CAAC,EAAE;QACvB,MAAMxB,MAAM,GAAGW,QAAQ,CAACH,GAAG,CAAEiB,OAAO,IAAK/C,GAAG,IAAI+C,OAAO,KAAK1B,OAAO,KAAKJ,MAAM,GAAG,CAAC;QAClF,OAAOG,WAAW,CAACC,OAAO,EAAEC,MAAM,CAAC;MACrC;MACA,MAAMmC,YAAY,GAAG,OAAOzD,GAAyB;iCAC5BA,GAAG,CAACc,UAAU,CAAC;4BACpBO,OAAO,uBAAuBF,aAAa;SAC9D,CAACG,MAAM;MACR,OAAOmC,YAAY,CAAC3B,GAAG,CAAEO,GAAG,IAAKA,GAAG,CAAC,CAAC,CAAW,CAAC;IACpD,CAAC,EACDrC,GAAG,CAACiD,eAAe,EACnBR,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACnB;IAEDgE,OAAO,EAAEA,CAACrC,OAAO,EAAEY,QAAQ,KACzBA,QAAQ,CAACa,MAAM,KAAK,CAAC,GACjB3E,MAAM,CAACwF,OAAO,CAAC,EAAE,CAAC,GAClB3B,aAAa,CAACX,OAAO,EAAEY,QAAQ,CAAC,CAACE,IAAI,CACrChE,MAAM,CAAC2D,GAAG,CAAEM,IAAI,IAAKA,IAAI,CAACN,GAAG,CAAEO,GAAG,IAAKA,GAAG,CAAC,CAAC,CAAW,CAAC,CAAC,EACzDI,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACnB;IAELkE,OAAO,EAAEA,CAACvC,OAAO,EAAE0B,OAAO,KACxB/C,GAAG,eAAee,aAAa,oBAAoBM,OAAO,mBAAmB0B,OAAO,EAAE,CAACZ,IAAI,CACzFM,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB,CACnB;IAEHmE,UAAU,EAAGxC,OAAO,IAClBrB,GAAG,eAAee,aAAa,oBAAoBM,OAAO,EAAE,CAACc,IAAI,CAC/DM,8BAAgB,CAACC,MAAM,EACvBhD,kBAAkB;GAEvB,CAAC;AACJ,CAAC,EAAEA,kBAAkB,CAAC;AAEtB;;;;AAIO,MAAMoE,KAAK,GAAAjE,OAAA,CAAAiE,KAAA,gBAId1F,KAAK,CAAC2F,MAAM,CAACzF,YAAY,CAACA,YAAY,eAAEsB,IAAI,EAAE,CAAC;AAEnD;;;;AAIO,MAAMoE,SAAS,GAAIjE,OAEzB,IACC3B,KAAK,CAAC6F,MAAM,CAAC3F,YAAY,CAACA,YAAY,EAAEsB,IAAI,CAACG,OAAO,CAAC,CAAC;AAAAF,OAAA,CAAAmE,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.make = exports.layer = void 0;
7
- var Clock = _interopRequireWildcard(require("effect/Clock"));
8
- var Duration = _interopRequireWildcard(require("effect/Duration"));
9
- var Effect = _interopRequireWildcard(require("effect/Effect"));
10
- var Layer = _interopRequireWildcard(require("effect/Layer"));
11
- var Schedule = _interopRequireWildcard(require("effect/Schedule"));
12
- var _ShardManager = require("./ShardManager.js");
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
- /**
15
- * @since 1.0.0
16
- */
17
-
18
- /**
19
- * @since 1.0.0
20
- * @category Constructors
21
- */
22
- const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (getRemoteTime) {
23
- const clock = yield* Effect.clock;
24
- let driftMillis = 0;
25
- let driftNanos = BigInt(0);
26
- yield* getRemoteTime.pipe(Effect.timed, Effect.map(([duration, shardManagerTime]) => {
27
- const halfTrip = Duration.unsafeDivide(duration, 2);
28
- shardManagerTime = shardManagerTime + Duration.toMillis(halfTrip) + 1;
29
- const selfTime = clock.unsafeCurrentTimeMillis();
30
- return shardManagerTime - selfTime;
31
- }), Effect.replicateEffect(5), Effect.flatMap(drifts => {
32
- drifts.sort();
33
- const drift = (driftMillis + drifts[2]) / 2;
34
- driftMillis = Math.round(drift);
35
- driftNanos = BigInt(Math.round(drift * 1_000_000));
36
- return Effect.logDebug("Current drift", driftMillis);
37
- }), Effect.andThen(Effect.sleep(Duration.minutes(5))), Effect.forever, Effect.sandbox, Effect.retry(Schedule.spaced(Duration.minutes(1))), Effect.annotateLogs({
38
- package: "@effect/cluster",
39
- service: "SynchronizedClock"
40
- }), Effect.forkScoped);
41
- function unsafeCurrentTimeMillis() {
42
- return clock.unsafeCurrentTimeMillis() + driftMillis;
43
- }
44
- function unsafeCurrentTimeNanos() {
45
- return clock.unsafeCurrentTimeNanos() + driftNanos;
46
- }
47
- return Clock.Clock.of({
48
- [Clock.ClockTypeId]: Clock.ClockTypeId,
49
- sleep: clock.sleep,
50
- unsafeCurrentTimeMillis,
51
- unsafeCurrentTimeNanos,
52
- currentTimeMillis: Effect.sync(unsafeCurrentTimeMillis),
53
- currentTimeNanos: Effect.sync(unsafeCurrentTimeNanos)
54
- });
55
- });
56
- /**
57
- * @since 1.0.0
58
- * @category Layers
59
- */
60
- const layer = exports.layer = /*#__PURE__*/Layer.unwrapScoped(/*#__PURE__*/Effect.gen(function* () {
61
- const shardManager = yield* _ShardManager.ShardManagerClient;
62
- const clock = yield* make(shardManager.getTime);
63
- return Layer.setClock(clock);
64
- }));
65
- //# sourceMappingURL=SynchronizedClock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SynchronizedClock.js","names":["Clock","_interopRequireWildcard","require","Duration","Effect","Layer","Schedule","_ShardManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","fnUntraced","getRemoteTime","clock","driftMillis","driftNanos","BigInt","pipe","timed","map","duration","shardManagerTime","halfTrip","unsafeDivide","toMillis","selfTime","unsafeCurrentTimeMillis","replicateEffect","flatMap","drifts","sort","drift","Math","round","logDebug","andThen","sleep","minutes","forever","sandbox","retry","spaced","annotateLogs","package","service","forkScoped","unsafeCurrentTimeNanos","of","ClockTypeId","currentTimeMillis","sync","currentTimeNanos","layer","unwrapScoped","gen","shardManager","ShardManagerClient","getTime","setClock"],"sources":["../../src/SynchronizedClock.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}