@resonatehq/sdk 0.7.1 → 0.8.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 (87) hide show
  1. package/README.md +14 -32
  2. package/dist/dev/network.d.ts +1 -1
  3. package/dist/dev/network.d.ts.map +1 -1
  4. package/dist/dev/network.js +4 -4
  5. package/dist/dev/network.js.map +1 -1
  6. package/dist/dev/server.d.ts.map +1 -1
  7. package/dist/dev/server.js +13 -12
  8. package/dist/dev/server.js.map +1 -1
  9. package/dist/sim/src/worker.d.ts.map +1 -1
  10. package/dist/sim/src/worker.js +4 -4
  11. package/dist/sim/src/worker.js.map +1 -1
  12. package/dist/src/computation.d.ts +2 -1
  13. package/dist/src/computation.d.ts.map +1 -1
  14. package/dist/src/computation.js +5 -4
  15. package/dist/src/computation.js.map +1 -1
  16. package/dist/src/context.d.ts +28 -14
  17. package/dist/src/context.d.ts.map +1 -1
  18. package/dist/src/context.js +27 -21
  19. package/dist/src/context.js.map +1 -1
  20. package/dist/src/core.d.ts +12 -0
  21. package/dist/src/core.d.ts.map +1 -0
  22. package/dist/src/core.js +28 -0
  23. package/dist/src/core.js.map +1 -0
  24. package/dist/src/coroutine.d.ts +2 -2
  25. package/dist/src/coroutine.d.ts.map +1 -1
  26. package/dist/src/coroutine.js +1 -1
  27. package/dist/src/coroutine.js.map +1 -1
  28. package/dist/src/decorator.d.ts +47 -2
  29. package/dist/src/decorator.d.ts.map +1 -1
  30. package/dist/src/decorator.js +1 -0
  31. package/dist/src/decorator.js.map +1 -1
  32. package/dist/src/handler.d.ts +2 -1
  33. package/dist/src/handler.d.ts.map +1 -1
  34. package/dist/src/handler.js +18 -4
  35. package/dist/src/handler.js.map +1 -1
  36. package/dist/src/index.d.ts +2 -6
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +24 -9
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/network/network.d.ts +3 -2
  41. package/dist/src/network/network.d.ts.map +1 -1
  42. package/dist/src/network/remote.d.ts +17 -8
  43. package/dist/src/network/remote.d.ts.map +1 -1
  44. package/dist/src/network/remote.js +78 -60
  45. package/dist/src/network/remote.js.map +1 -1
  46. package/dist/src/options.d.ts +19 -0
  47. package/dist/src/options.d.ts.map +1 -0
  48. package/dist/src/options.js +59 -0
  49. package/dist/src/options.js.map +1 -0
  50. package/dist/src/processor/processor.d.ts +4 -3
  51. package/dist/src/processor/processor.d.ts.map +1 -1
  52. package/dist/src/processor/processor.js +21 -15
  53. package/dist/src/processor/processor.js.map +1 -1
  54. package/dist/src/promises.d.ts +28 -6
  55. package/dist/src/promises.d.ts.map +1 -1
  56. package/dist/src/promises.js +15 -15
  57. package/dist/src/promises.js.map +1 -1
  58. package/dist/src/resonate-inner.d.ts +12 -8
  59. package/dist/src/resonate-inner.d.ts.map +1 -1
  60. package/dist/src/resonate-inner.js +6 -81
  61. package/dist/src/resonate-inner.js.map +1 -1
  62. package/dist/src/resonate.d.ts +41 -21
  63. package/dist/src/resonate.d.ts.map +1 -1
  64. package/dist/src/resonate.js +138 -46
  65. package/dist/src/resonate.js.map +1 -1
  66. package/dist/src/retries.d.ts +38 -0
  67. package/dist/src/retries.d.ts.map +1 -0
  68. package/dist/src/retries.js +77 -0
  69. package/dist/src/retries.js.map +1 -0
  70. package/dist/src/schedules.d.ts +7 -1
  71. package/dist/src/schedules.d.ts.map +1 -1
  72. package/dist/src/schedules.js +2 -2
  73. package/dist/src/schedules.js.map +1 -1
  74. package/dist/src/tasks.d.ts +2 -2
  75. package/dist/src/tasks.d.ts.map +1 -1
  76. package/dist/src/tasks.js +4 -4
  77. package/dist/src/tasks.js.map +1 -1
  78. package/dist/src/types.d.ts +9 -71
  79. package/dist/src/types.d.ts.map +1 -1
  80. package/dist/src/types.js +2 -5
  81. package/dist/src/types.js.map +1 -1
  82. package/dist/src/util.d.ts +5 -1
  83. package/dist/src/util.d.ts.map +1 -1
  84. package/dist/src/util.js +37 -3
  85. package/dist/src/util.js.map +1 -1
  86. package/dist/tsconfig.build.tsbuildinfo +1 -1
  87. package/package.json +9 -10
@@ -40,10 +40,10 @@ const registry_1 = require("../src/registry");
40
40
  const clock_1 = require("./clock");
41
41
  const heartbeat_1 = require("./heartbeat");
42
42
  const remote_1 = require("./network/remote");
43
+ const options_1 = require("./options");
43
44
  const promises_1 = require("./promises");
44
45
  const resonate_inner_1 = require("./resonate-inner");
45
46
  const schedules_1 = require("./schedules");
46
- const types_1 = require("./types");
47
47
  const util = __importStar(require("./util"));
48
48
  class Resonate {
49
49
  unicast;
@@ -52,9 +52,11 @@ class Resonate {
52
52
  ttl;
53
53
  inner;
54
54
  network;
55
+ handler;
55
56
  registry;
56
57
  heartbeat;
57
58
  dependencies;
59
+ subscriptions = new Map();
58
60
  promises;
59
61
  schedules;
60
62
  constructor({ group, pid, ttl }, network) {
@@ -63,6 +65,7 @@ class Resonate {
63
65
  this.pid = pid;
64
66
  this.ttl = ttl;
65
67
  this.network = network;
68
+ this.handler = new handler_1.Handler(this.network);
66
69
  this.registry = new registry_1.Registry();
67
70
  this.heartbeat = network instanceof network_1.LocalNetwork ? new heartbeat_1.NoopHeartbeat() : new heartbeat_1.AsyncHeartbeat(pid, ttl / 2, network);
68
71
  this.dependencies = new Map();
@@ -73,13 +76,15 @@ class Resonate {
73
76
  ttl: this.ttl,
74
77
  clock: new clock_1.WallClock(),
75
78
  network: this.network,
76
- handler: new handler_1.Handler(this.network),
79
+ handler: this.handler,
77
80
  registry: this.registry,
78
81
  heartbeat: this.heartbeat,
79
82
  dependencies: this.dependencies,
80
83
  });
81
84
  this.promises = new promises_1.Promises(network);
82
85
  this.schedules = new schedules_1.Schedules(network);
86
+ // subscribe to notify
87
+ this.network.subscribe("notify", this.onMessage.bind(this));
83
88
  }
84
89
  /**
85
90
  * Create a local Resonate instance
@@ -94,13 +99,13 @@ class Resonate {
94
99
  /**
95
100
  * Create a remote Resonate instance
96
101
  */
97
- static remote({ host = "http://localhost", storePort = "8001", messageSourcePort = "8002", group = "default", pid = crypto.randomUUID().replace(/-/g, ""), ttl = 1 * util.MIN, } = {}) {
102
+ static remote({ url = "http://localhost:8001", group = "default", pid = crypto.randomUUID().replace(/-/g, ""), ttl = 1 * util.MIN, auth = undefined, messageSourceAuth = undefined, } = {}) {
98
103
  const network = new remote_1.HttpNetwork({
99
- host,
100
- storePort,
101
- messageSourcePort,
104
+ url,
102
105
  pid,
103
106
  group,
107
+ auth,
108
+ messageSourceAuth,
104
109
  timeout: 1 * util.MIN,
105
110
  headers: {},
106
111
  });
@@ -130,7 +135,7 @@ class Resonate {
130
135
  throw new Error(`${funcOrName} does not exist`);
131
136
  }
132
137
  const [args, opts] = util.splitArgsAndOpts(argsWithOpts, this.options());
133
- const promiseHandler = this.inner.run({
138
+ const { promise, task } = await this.createPromiseAndTask({
134
139
  kind: "createPromiseAndTask",
135
140
  promise: {
136
141
  id: id,
@@ -149,7 +154,10 @@ class Resonate {
149
154
  iKey: id,
150
155
  strict: false,
151
156
  });
152
- return this.handle(promiseHandler);
157
+ if (task) {
158
+ this.inner.process({ kind: "claimed", task: task, rootPromise: promise }, () => { });
159
+ }
160
+ return this.createHandle(promise);
153
161
  }
154
162
  async rpc(id, funcOrName, ...args) {
155
163
  return (await this.beginRpc(id, funcOrName, ...args)).result();
@@ -167,7 +175,7 @@ class Resonate {
167
175
  name = registered.name;
168
176
  }
169
177
  const [args, opts] = util.splitArgsAndOpts(argsWithOpts, this.options());
170
- const promiseHandler = this.inner.rpc({
178
+ const promise = await this.createPromise({
171
179
  kind: "createPromise",
172
180
  id: id,
173
181
  timeout: Date.now() + opts.timeout,
@@ -176,18 +184,43 @@ class Resonate {
176
184
  iKey: id,
177
185
  strict: false,
178
186
  });
179
- return this.handle(promiseHandler);
187
+ return this.createHandle(promise);
180
188
  }
181
- options(opts = {}) {
189
+ async schedule(name, cron, func, ...argsWithOpts) {
190
+ let funcName;
191
+ if (typeof func === "string") {
192
+ funcName = func;
193
+ }
194
+ else {
195
+ const registered = this.registry.get(func);
196
+ if (!registered) {
197
+ throw new Error(`${func} is not registered`);
198
+ }
199
+ funcName = registered.name;
200
+ }
201
+ const [args, opts] = util.splitArgsAndOpts(argsWithOpts, this.options());
202
+ await this.schedules.create(name, cron, "{{.id}}.{{.timestamp}}", opts.timeout, {
203
+ ikey: name,
204
+ promiseParam: { func: funcName, args },
205
+ promiseTags: { ...opts.tags, "resonate:invoke": opts.target },
206
+ });
182
207
  return {
183
- id: "",
184
- target: "poll://any@default",
185
- timeout: 24 * util.HOUR,
186
- tags: {},
187
- ...opts,
188
- [types_1.RESONATE_OPTIONS]: true,
208
+ delete: () => this.schedules.delete(name),
189
209
  };
190
210
  }
211
+ /**
212
+ * Get a promise and return a value
213
+ */
214
+ async get(id) {
215
+ const promise = await this.readPromise({
216
+ kind: "readPromise",
217
+ id: id,
218
+ });
219
+ return this.createHandle(promise);
220
+ }
221
+ options(opts = {}) {
222
+ return new options_1.Options(opts);
223
+ }
191
224
  /** Store a named dependency for use with `Context`.
192
225
  * The dependency is made available to all functions via
193
226
  * their execution `Context`.
@@ -201,39 +234,98 @@ class Resonate {
201
234
  this.network.stop();
202
235
  this.heartbeat.stop();
203
236
  }
204
- handle(promiseHandler) {
205
- // resolves with a handle
206
- const handle = Promise.withResolvers();
207
- // resolves with the result
208
- const result = Promise.withResolvers();
209
- // listen for created and resolve p1 with a handle
210
- promiseHandler.addEventListener("created", (promise) => {
211
- handle.resolve({
212
- id: promise.id,
213
- result: async () => {
214
- // subscribe lazily, no need to await
215
- promiseHandler.subscribe();
216
- return await result.promise;
217
- },
237
+ createPromiseAndTask(req) {
238
+ return new Promise((resolve, reject) => {
239
+ this.handler.createPromiseAndTask(req, (err, res) => {
240
+ if (err) {
241
+ reject(new Error(`Promise '${req.promise.id}' could not be created`));
242
+ }
243
+ else {
244
+ resolve({ promise: res.promise, task: res.task });
245
+ }
246
+ }, true);
247
+ });
248
+ }
249
+ createPromise(req) {
250
+ return new Promise((resolve, reject) => {
251
+ this.handler.createPromise(req, (err, res) => {
252
+ if (err) {
253
+ reject(new Error(`Promise '${req.id}' could not be created`));
254
+ }
255
+ else {
256
+ resolve(res);
257
+ }
258
+ }, true);
259
+ });
260
+ }
261
+ readPromise(req) {
262
+ return new Promise((resolve, reject) => {
263
+ this.handler.readPromise(req, (err, res) => {
264
+ if (err) {
265
+ reject(new Error(`Promise '${req.id}' not found`));
266
+ }
267
+ else {
268
+ resolve(res);
269
+ }
218
270
  });
219
271
  });
220
- // listen for completed and resolve p2 with the value
221
- promiseHandler.addEventListener("completed", (promise) => {
222
- util.assert(promise.state !== "pending", "promise must be completed");
223
- if (promise.state === "resolved") {
224
- result.resolve(promise.value);
225
- }
226
- else if (promise.state === "rejected") {
227
- result.reject(promise.value);
228
- }
229
- else if (promise.state === "rejected_canceled") {
230
- result.reject(new Error("Promise canceled"));
272
+ }
273
+ createHandle(promise) {
274
+ return {
275
+ id: promise.id,
276
+ result: () => new Promise((resolve, reject) => {
277
+ this.subscribe(promise, (promise) => {
278
+ util.assert(promise.state !== "pending", "promise must be completed");
279
+ if (promise.state === "resolved") {
280
+ resolve(promise.value);
281
+ }
282
+ else if (promise.state === "rejected") {
283
+ reject(promise.value);
284
+ }
285
+ else if (promise.state === "rejected_canceled") {
286
+ reject(new Error("Promise canceled"));
287
+ }
288
+ else if (promise.state === "rejected_timedout") {
289
+ reject(new Error("Promise timedout"));
290
+ }
291
+ });
292
+ }),
293
+ };
294
+ }
295
+ onMessage(msg) {
296
+ util.assert(msg.type === "notify");
297
+ if (msg.type === "notify")
298
+ this.notify(msg.promise);
299
+ }
300
+ subscribe(promise, callback) {
301
+ const subscriptions = this.subscriptions.get(promise.id) || [];
302
+ subscriptions.push(callback);
303
+ // store local subscription
304
+ this.subscriptions.set(promise.id, subscriptions);
305
+ // create remote subscription
306
+ this.handler.createSubscription({
307
+ kind: "createSubscription",
308
+ id: this.pid,
309
+ promiseId: promise.id,
310
+ timeout: promise.timeout + 1 * util.MIN, // add a buffer
311
+ recv: this.unicast,
312
+ }, (err, res) => {
313
+ if (err) {
314
+ // TODO
231
315
  }
232
- else if (promise.state === "rejected_timedout") {
233
- result.reject(new Error("Promise timedout"));
316
+ else if (res.state !== "pending") {
317
+ this.notify(res);
234
318
  }
235
- });
236
- return handle.promise;
319
+ }, true);
320
+ }
321
+ notify(promise) {
322
+ util.assert(promise.state !== "pending", "promise must be completed");
323
+ // notify subscribers
324
+ for (const callback of this.subscriptions.get(promise.id) ?? []) {
325
+ callback(promise);
326
+ }
327
+ // remove subscriptions
328
+ this.subscriptions.delete(promise.id);
237
329
  }
238
330
  }
239
331
  exports.Resonate = Resonate;
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../../src/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../../src/resonate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export interface RetryPolicy {
2
+ next(attempt: number): number | null;
3
+ }
4
+ export declare class Constant implements RetryPolicy {
5
+ readonly delay: number;
6
+ readonly maxRetries: number;
7
+ constructor({ delay, maxRetries }?: {
8
+ delay?: number;
9
+ maxRetries?: number;
10
+ });
11
+ next(attempt: number): number | null;
12
+ }
13
+ export declare class Exponential implements RetryPolicy {
14
+ readonly delay: number;
15
+ readonly maxRetries: number;
16
+ readonly factor: number;
17
+ readonly maxDelay: number;
18
+ constructor({ delay, factor, maxRetries, maxDelay, }?: {
19
+ delay?: number;
20
+ factor?: number;
21
+ maxRetries?: number;
22
+ maxDelay?: number;
23
+ });
24
+ next(attempt: number): number | null;
25
+ }
26
+ export declare class Linear implements RetryPolicy {
27
+ readonly delay: number;
28
+ readonly maxRetries: number;
29
+ constructor({ delay, maxRetries }?: {
30
+ delay?: number;
31
+ maxRetries?: number;
32
+ });
33
+ next(attempt: number): number | null;
34
+ }
35
+ export declare class Never implements RetryPolicy {
36
+ next(attempt: number): number | null;
37
+ }
38
+ //# sourceMappingURL=retries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retries.d.ts","sourceRoot":"","sources":["../../src/retries.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,qBAAa,QAAS,YAAW,WAAW;IAC1C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,EAAE,KAAY,EAAE,UAAoC,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKhH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAerC;AAED,qBAAa,WAAY,YAAW,WAAW;IAC7C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,EACV,KAAY,EACZ,MAAU,EACV,UAAoC,EACpC,QAAgB,GACjB,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAOnF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAerC;AAED,qBAAa,MAAO,YAAW,WAAW;IACxC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,EAAE,KAAY,EAAE,UAAoC,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAKhH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAWrC;AAED,qBAAa,KAAM,YAAW,WAAW;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAOrC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Never = exports.Linear = exports.Exponential = exports.Constant = void 0;
4
+ class Constant {
5
+ delay;
6
+ maxRetries;
7
+ constructor({ delay = 1000, maxRetries = Number.MAX_SAFE_INTEGER } = {}) {
8
+ this.delay = delay;
9
+ this.maxRetries = maxRetries;
10
+ }
11
+ next(attempt) {
12
+ if (attempt < 0) {
13
+ throw new Error("attempt must be greater than or equal to 0");
14
+ }
15
+ if (attempt > this.maxRetries) {
16
+ return null;
17
+ }
18
+ if (attempt === 0) {
19
+ return 0;
20
+ }
21
+ return this.delay;
22
+ }
23
+ }
24
+ exports.Constant = Constant;
25
+ class Exponential {
26
+ delay;
27
+ maxRetries;
28
+ factor;
29
+ maxDelay;
30
+ constructor({ delay = 1000, factor = 2, maxRetries = Number.MAX_SAFE_INTEGER, maxDelay = 30000, } = {}) {
31
+ this.delay = delay;
32
+ this.maxRetries = maxRetries;
33
+ this.factor = factor;
34
+ this.maxDelay = maxDelay;
35
+ }
36
+ next(attempt) {
37
+ if (attempt < 0) {
38
+ throw new Error("attempt must be greater than or equal to 0");
39
+ }
40
+ if (attempt > this.maxRetries) {
41
+ return null;
42
+ }
43
+ if (attempt === 0) {
44
+ return 0;
45
+ }
46
+ return Math.min(this.delay * this.factor ** attempt, this.maxDelay);
47
+ }
48
+ }
49
+ exports.Exponential = Exponential;
50
+ class Linear {
51
+ delay;
52
+ maxRetries;
53
+ constructor({ delay = 1000, maxRetries = Number.MAX_SAFE_INTEGER } = {}) {
54
+ this.delay = delay;
55
+ this.maxRetries = maxRetries;
56
+ }
57
+ next(attempt) {
58
+ if (attempt < 0) {
59
+ throw new Error("attempt must be greater than or equal to 0");
60
+ }
61
+ if (attempt > this.maxRetries) {
62
+ return null;
63
+ }
64
+ return this.delay * attempt;
65
+ }
66
+ }
67
+ exports.Linear = Linear;
68
+ class Never {
69
+ next(attempt) {
70
+ if (attempt < 0) {
71
+ throw new Error("attempt must be greater than or equal to 0");
72
+ }
73
+ return attempt === 0 ? 0 : null;
74
+ }
75
+ }
76
+ exports.Never = Never;
77
+ //# sourceMappingURL=retries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retries.js","sourceRoot":"","sources":["../../src/retries.ts"],"names":[],"mappings":";;;AAIA,MAAa,QAAQ;IACH,KAAK,CAAS;IACd,UAAU,CAAS;IAEnC,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,gBAAgB,KAA8C,EAAE;QAC9G,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAxBD,4BAwBC;AAED,MAAa,WAAW;IACN,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,MAAM,CAAS;IACf,QAAQ,CAAS;IAEjC,YAAY,EACV,KAAK,GAAG,IAAI,EACZ,MAAM,GAAG,CAAC,EACV,UAAU,GAAG,MAAM,CAAC,gBAAgB,EACpC,QAAQ,GAAG,KAAK,MAC+D,EAAE;QACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;CACF;AAjCD,kCAiCC;AAED,MAAa,MAAM;IACD,KAAK,CAAS;IACd,UAAU,CAAS;IAEnC,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,gBAAgB,KAA8C,EAAE;QAC9G,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IAC9B,CAAC;CACF;AApBD,wBAoBC;AAED,MAAa,KAAK;IAChB,IAAI,CAAC,OAAe;QAClB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;CACF;AARD,sBAQC"}
@@ -3,7 +3,13 @@ export declare class Schedules {
3
3
  private network;
4
4
  constructor(network?: Network);
5
5
  get(id: string): Promise<ScheduleRecord>;
6
- create(id: string, cron: string, promiseId: string, promiseTimeout: number, iKey?: string | undefined, description?: string | undefined, tags?: Record<string, string> | undefined, promiseParam?: any | undefined, promiseTags?: Record<string, string> | undefined): Promise<ScheduleRecord>;
6
+ create(id: string, cron: string, promiseId: string, promiseTimeout: number, { ikey, description, tags, promiseParam, promiseTags, }?: {
7
+ ikey?: string;
8
+ description?: string;
9
+ tags?: Record<string, string>;
10
+ promiseParam?: any;
11
+ promiseTags?: Record<string, string>;
12
+ }): Promise<ScheduleRecord>;
7
13
  delete(id: string): Promise<void>;
8
14
  }
9
15
  //# sourceMappingURL=schedules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/schedules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEjE,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,OAA4B;IAIjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoBxC,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,MAAM,GAAG,SAAqB,EACpC,WAAW,GAAE,MAAM,GAAG,SAAqB,EAC3C,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAqB,EACpD,YAAY,GAAE,GAAG,GAAG,SAAqB,EACzC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAqB,GAC1D,OAAO,CAAC,cAAc,CAAC;IA4B1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBlC"}
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/schedules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEjE,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,OAA4B;IAIjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoBxC,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,EACE,IAAgB,EAChB,WAAuB,EACvB,IAAgB,EAChB,YAAwB,EACxB,WAAuB,GACxB,GAAE;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,GACL,OAAO,CAAC,cAAc,CAAC;IA4B1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBlC"}
@@ -22,7 +22,7 @@ class Schedules {
22
22
  });
23
23
  });
24
24
  }
25
- create(id, cron, promiseId, promiseTimeout, iKey = undefined, description = undefined, tags = undefined, promiseParam = undefined, promiseTags = undefined) {
25
+ create(id, cron, promiseId, promiseTimeout, { ikey = undefined, description = undefined, tags = undefined, promiseParam = undefined, promiseTags = undefined, } = {}) {
26
26
  return new Promise((resolve, reject) => {
27
27
  this.network.send({
28
28
  kind: "createSchedule",
@@ -34,7 +34,7 @@ class Schedules {
34
34
  promiseTimeout: promiseTimeout,
35
35
  promiseParam: promiseParam,
36
36
  promiseTags: promiseTags,
37
- iKey: iKey,
37
+ iKey: ikey,
38
38
  }, (err, res) => {
39
39
  if (err) {
40
40
  // TODO: reject with more information
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/schedules.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAG9C,MAAa,SAAS;IACZ,OAAO,CAAU;IAEzB,YAAY,UAAmB,IAAI,sBAAY,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,EAAE;aACP,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,EAAU,EACV,IAAY,EACZ,SAAiB,EACjB,cAAsB,EACtB,OAA2B,SAAS,EACpC,cAAkC,SAAS,EAC3C,OAA2C,SAAS,EACpD,eAAgC,SAAS,EACzC,cAAkD,SAAS;QAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,EAAE;gBACN,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,cAAc;gBAC9B,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,IAAI;aACX,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,EAAE;aACP,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApFD,8BAoFC"}
1
+ {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/schedules.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAG9C,MAAa,SAAS;IACZ,OAAO,CAAU;IAEzB,YAAY,UAAmB,IAAI,sBAAY,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,EAAE;aACP,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,EAAU,EACV,IAAY,EACZ,SAAiB,EACjB,cAAsB,EACtB,EACE,IAAI,GAAG,SAAS,EAChB,WAAW,GAAG,SAAS,EACvB,IAAI,GAAG,SAAS,EAChB,YAAY,GAAG,SAAS,EACxB,WAAW,GAAG,SAAS,MAOrB,EAAE;QAEN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,EAAE;gBACN,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,cAAc;gBAC9B,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,IAAI;aACX,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,EAAE;aACP,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5FD,8BA4FC"}
@@ -2,8 +2,8 @@ import type { ClaimTaskRes, Network, TaskRecord } from "./network/network";
2
2
  export declare class Tasks {
3
3
  private network;
4
4
  constructor(network?: Network);
5
- claim(id: string, counter: number, processId: string, ttl: number): Promise<ClaimTaskRes["message"]>;
5
+ claim(id: string, counter: number, pid: string, ttl: number): Promise<ClaimTaskRes["message"]>;
6
6
  complete(id: string, counter: number): Promise<TaskRecord>;
7
- heartbeat(processId: string): Promise<number>;
7
+ heartbeat(pid: string): Promise<number>;
8
8
  }
9
9
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3E,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,OAA4B;IAIjD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAuBpG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB1D,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmB9C"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3E,qBAAa,KAAK;IAChB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,OAA4B;IAIjD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAuB9F,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB1D,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmBxC"}
package/dist/src/tasks.js CHANGED
@@ -7,13 +7,13 @@ class Tasks {
7
7
  constructor(network = new network_1.LocalNetwork()) {
8
8
  this.network = network;
9
9
  }
10
- claim(id, counter, processId, ttl) {
10
+ claim(id, counter, pid, ttl) {
11
11
  return new Promise((resolve, reject) => {
12
12
  this.network.send({
13
13
  kind: "claimTask",
14
14
  id: id,
15
15
  counter: counter,
16
- processId: processId,
16
+ processId: pid,
17
17
  ttl: ttl,
18
18
  }, (err, res) => {
19
19
  if (err) {
@@ -41,11 +41,11 @@ class Tasks {
41
41
  });
42
42
  });
43
43
  }
44
- heartbeat(processId) {
44
+ heartbeat(pid) {
45
45
  return new Promise((resolve, reject) => {
46
46
  this.network.send({
47
47
  kind: "heartbeatTasks",
48
- processId: processId,
48
+ processId: pid,
49
49
  }, (err, res) => {
50
50
  if (err) {
51
51
  // TODO: reject with more information
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAG9C,MAAa,KAAK;IACR,OAAO,CAAU;IAEzB,YAAY,UAAmB,IAAI,sBAAY,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,SAAiB,EAAE,GAAW;QAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,GAAG;aACT,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,EAAU,EAAE,OAAe;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,SAAS;aACrB,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtED,sBAsEC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAG9C,MAAa,KAAK;IACR,OAAO,CAAU;IAEzB,YAAY,UAAmB,IAAI,sBAAY,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,GAAW,EAAE,GAAW;QACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,GAAG;gBACd,GAAG,EAAE,GAAG;aACT,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,EAAU,EAAE,OAAe;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;gBACE,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,GAAG;aACf,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,EAAE,CAAC;oBACR,qCAAqC;oBACrC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtED,sBAsEC"}
@@ -1,31 +1,9 @@
1
- import type { Context } from "./context";
2
- import type { CreatePromiseReq, DurablePromiseRecord, TaskRecord } from "./network/network";
1
+ import type { Context, Future, LFC, LFI, RFC, RFI } from "./context";
2
+ import type { Options } from "./options";
3
3
  export type Func = (ctx: Context, ...args: any[]) => any;
4
- export declare const RESONATE_OPTIONS: unique symbol;
5
4
  export type Params<F> = F extends (ctx: Context, ...args: infer P) => any ? P : never;
6
- export type ParamsWithOptions<F> = [...Params<F>, (Partial<Options> & {
7
- [RESONATE_OPTIONS]: true;
8
- })?];
9
- export type Options = {
10
- id: string;
11
- target: string;
12
- tags: Record<string, string>;
13
- timeout: number;
14
- };
15
- export type Callback<T> = {
16
- (err: false, res: T): void;
17
- (err: true, res?: undefined): void;
18
- };
19
- export type Task = ClaimedTask | UnclaimedTask;
20
- export type ClaimedTask = {
21
- kind: "claimed";
22
- task: TaskRecord;
23
- rootPromise: DurablePromiseRecord;
24
- };
25
- export type UnclaimedTask = {
26
- kind: "unclaimed";
27
- task: TaskRecord;
28
- };
5
+ export type ParamsWithOptions<F> = [...Params<F>, Options?];
6
+ export type Yieldable<T = any> = LFI<T> | LFC<T> | RFI<T> | RFC<T> | Future<T>;
29
7
  export type Return<T> = T extends (...args: any[]) => Generator<infer __, infer R, infer _> ? R : T extends (...args: any[]) => infer R ? Awaited<R> : never;
30
8
  export type Result<T> = Ok<T> | Ko;
31
9
  type Ok<T> = {
@@ -36,51 +14,11 @@ type Ko = {
36
14
  success: false;
37
15
  error: any;
38
16
  };
39
- export type InternalExpr<T> = InternalAsyncL | InternalAsyncR | InternalAwait<T> | InternalReturn<T>;
40
- export type InternalAsyncR = {
41
- type: "internal.async.r";
42
- id: string;
43
- mode: "attached" | "detached";
44
- createReq: CreatePromiseReq;
45
- };
46
- export type InternalAsyncL = {
47
- type: "internal.async.l";
48
- id: string;
49
- func: Func;
50
- args: any[];
51
- createReq: CreatePromiseReq;
52
- };
53
- export type InternalAwait<T> = {
54
- type: "internal.await";
55
- id: string;
56
- promise: Promise<T>;
57
- };
58
- export type InternalReturn<T> = {
59
- type: "internal.return";
60
- value: Literal<T>;
61
- };
62
- export type Value<T> = Nothing | Literal<T> | Promise<T>;
63
- export type Nothing = {
64
- type: "internal.nothing";
65
- };
66
- export type Promise<T> = PromisePending | PromiseCompleted<T>;
67
- export type PromisePending = {
68
- type: "internal.promise";
69
- state: "pending";
70
- mode: "attached" | "detached";
71
- id: string;
72
- };
73
- export type PromiseCompleted<T> = {
74
- type: "internal.promise";
75
- state: "completed";
76
- id: string;
77
- value: Literal<T>;
78
- };
79
- export type Literal<T> = {
80
- type: "internal.literal";
81
- value: Result<T>;
82
- };
83
- export declare function ok<T>(data: T): Result<T>;
17
+ export declare function ok<T>(value: T): Result<T>;
84
18
  export declare function ko(error: any): Result<any>;
19
+ export type Callback<T> = {
20
+ (err: false, res: T): void;
21
+ (err: true, res?: undefined): void;
22
+ };
85
23
  export {};
86
24
  //# sourceMappingURL=types.d.ts.map