@resonatehq/sdk 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
18
18
  <a href="https://twitter.com/resonatehqio">Twitter</a>
19
19
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
20
- <a href="https://resonatehqcommunity.slack.com">Slack</a>
20
+ <a href="https://resonatehq.io/discord">Discord</a>
21
21
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
22
22
  <a href="https://github.com/resonatehq/resonate-sdk-ts/issues">Issues</a>
23
23
  <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
@@ -33,5 +33,5 @@ export declare function retryIterator<T extends {
33
33
  attempt: number;
34
34
  timeout: number;
35
35
  }>(ctx: T): IterableIterator<number>;
36
- export declare function runWithRetry<T>(func: () => Promise<T>, retryPolicy: RetryPolicy, timeout: number): Promise<T>;
36
+ export declare function runWithRetry<T>(func: () => Promise<T>, onRetry: () => Promise<void>, retryPolicy: RetryPolicy, timeout: number): Promise<T>;
37
37
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../lib/core/retry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAqClE;AACD,wBAAgB,WAAW,CACzB,cAAc,GAAE,MAAY,EAC5B,aAAa,GAAE,MAAU,EACzB,WAAW,GAAE,MAAiB,EAC9B,UAAU,GAAE,MAAc,GACzB,WAAW,CAQb;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,MAAa,EAAE,WAAW,GAAE,MAAiB,GAAG,MAAM,CAMrF;AAED,wBAAgB,KAAK,IAAI,KAAK,CAE7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACpG,GAAG,EAAE,CAAC,GACL,gBAAgB,CAAC,MAAM,CAAC,CA8B1B;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAqBtG"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../lib/core/retry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAqClE;AACD,wBAAgB,WAAW,CACzB,cAAc,GAAE,MAAY,EAC5B,aAAa,GAAE,MAAU,EACzB,WAAW,GAAE,MAAiB,EAC9B,UAAU,GAAE,MAAc,GACzB,WAAW,CAQb;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,MAAa,EAAE,WAAW,GAAE,MAAiB,GAAG,MAAM,CAMrF;AAED,wBAAgB,KAAK,IAAI,KAAK,CAE7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACpG,GAAG,EAAE,CAAC,GACL,gBAAgB,CAAC,MAAM,CAAC,CA8B1B;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,cAwBhB"}
@@ -91,12 +91,15 @@ function retryIterator(ctx) {
91
91
  };
92
92
  }
93
93
  exports.retryIterator = retryIterator;
94
- async function runWithRetry(func, retryPolicy, timeout) {
94
+ async function runWithRetry(func, onRetry, retryPolicy, timeout) {
95
95
  let error;
96
96
  const ctx = { attempt: 0, retryPolicy, timeout };
97
97
  // invoke the function according to the retry policy
98
98
  for (const delay of retryIterator(ctx)) {
99
99
  await new Promise((resolve) => setTimeout(resolve, delay));
100
+ if (ctx.attempt > 0) {
101
+ await onRetry();
102
+ }
100
103
  try {
101
104
  return await func();
102
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../lib/core/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../lib/core/retry.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ILogger } from "./core/logger";
2
2
  import { PartialOptions, Options, InvocationOverrides, ResonateOptions } from "./core/options";
3
3
  import * as durablePromises from "./core/promises/promises";
4
4
  import * as schedules from "./core/schedules/schedules";
5
- import { IStore } from "./core/store";
5
+ import { ILockStore, IPromiseStore, IStore } from "./core/store";
6
6
  type InvocationData = {
7
7
  id: string;
8
8
  eid: string;
@@ -23,8 +23,9 @@ export declare class Resonate {
23
23
  logger, pid, pollFrequency, // 5s
24
24
  retryPolicy, store, tags, timeout, // 10s
25
25
  url, }?: Partial<ResonateOptions>);
26
- get promisesStore(): import("./core/store").IPromiseStore;
27
- get locksStore(): import("./core/store").ILockStore;
26
+ get promisesStore(): IPromiseStore;
27
+ get locksStore(): ILockStore;
28
+ options(opts: Partial<Options>): PartialOptions;
28
29
  registeredFunction(funcName: string, version: number): {
29
30
  func: Func;
30
31
  opts: Options;
@@ -75,11 +76,56 @@ export declare class Context {
75
76
  private constructor();
76
77
  static createRootContext(resonate: Resonate, invocationData: InvocationData): Context;
77
78
  static createChildrenContext(parentCtx: Context, invocationData: InvocationData): Context;
78
- reset(): void;
79
+ onRetry(): Promise<void>;
79
80
  finalize(): Promise<void>;
80
81
  abort(cause: any): void;
81
82
  get aborted(): boolean;
82
83
  get abortCause(): any;
84
+ /**
85
+ * Adds a finalizer function to be executed at the end of the current context.
86
+ * Finalizers are run in reverse order of their definition (last-in, first-out).
87
+ *
88
+ * @param fn - An asynchronous function to be executed as a finalizer.
89
+ * It should return a Promise that resolves to void.
90
+ *
91
+ * @remarks
92
+ * Finalizer functions must be non fallible.
93
+ */
94
+ addFinalizer(fn: () => Promise<void>): void;
95
+ /**
96
+ * Sets a named resource for the current context and optionally adds a finalizer.
97
+ *
98
+ * @param name - A unique string identifier for the resource.
99
+ * @param resource - The resource to be stored. Can be of any type.
100
+ * @param finalizer - Optional. An asynchronous function to be executed when the context ends.
101
+ * Finalizers are run in reverse order of their addition to the context and
102
+ * must not fail.
103
+ * @throws {Error} Throws an error if a resource with the same name already exists in the current context.
104
+ *
105
+ * This method associates a resource with a unique name in the current context.
106
+ * If a finalizer is provided, it will be executed when the context ends.
107
+ * Finalizers are useful for cleanup operations, such as closing connections or freeing resources.
108
+ */
109
+ setResource(name: string, resource: any, finalizer?: () => Promise<void>): void;
110
+ /**
111
+ * Retrieves a resource by name from the current context or its parent contexts.
112
+ *
113
+ * @template R - The expected type of the resource.
114
+ * @param name - The unique string identifier of the resource to retrieve.
115
+ * @returns The resource of type R if found, or undefined if not found.
116
+ *
117
+ * This method searches for a resource in the following order:
118
+ * 1. In the current context.
119
+ * 2. If not found, it recursively searches in parent contexts.
120
+ * 3. Returns undefined if the resource is not found in any context.
121
+ *
122
+ * @remarks
123
+ * The method uses type assertion to cast the resource to type R.
124
+ * Ensure that the type parameter R matches the actual type of the stored resource
125
+ * to avoid runtime type errors.
126
+ */
127
+ getResource<R>(name: string): R | undefined;
128
+ options(opts: Partial<Options>): PartialOptions;
83
129
  /**
84
130
  * Invoke a remote function.
85
131
  *
@@ -252,9 +298,9 @@ export interface ResonateSchedules {
252
298
  search(id: string, tags: Record<string, string> | undefined, limit?: number): AsyncGenerator<schedules.Schedule[], void>;
253
299
  }
254
300
  export declare class InvocationHandle<R> {
255
- readonly resultPromise: Promise<R>;
256
301
  readonly invocationId: string;
257
- constructor(resultPromise: Promise<R>, invocationId: string);
302
+ readonly resultPromise: Promise<R>;
303
+ constructor(invocationId: string, resultPromise: Promise<R>);
258
304
  /**
259
305
  * get the current state of the resultPromise.
260
306
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
package/dist/resonate.js CHANGED
@@ -36,6 +36,7 @@ const local_1 = require("./core/stores/local");
36
36
  const remote_1 = require("./core/stores/remote");
37
37
  const utils = __importStar(require("./core/utils"));
38
38
  const utils_1 = require("./core/utils");
39
+ //////////////////////////////////////////////////////////////////////
39
40
  class Resonate {
40
41
  #registeredFunctions = {};
41
42
  #invocationHandles;
@@ -105,6 +106,9 @@ class Resonate {
105
106
  get locksStore() {
106
107
  return this.store.locks;
107
108
  }
109
+ options(opts) {
110
+ return (0, options_1.options)(opts);
111
+ }
108
112
  registeredFunction(funcName, version) {
109
113
  if (!this.#registeredFunctions[funcName]?.[version]) {
110
114
  throw new Error(`Function ${funcName} version ${version} not registered`);
@@ -147,7 +151,8 @@ class Resonate {
147
151
  */
148
152
  async start(delay = 5000) {
149
153
  clearInterval(this.#interval);
150
- this.#_start();
154
+ // await the first run of the recovery path to avoid races with the normal flow of the program
155
+ await this.#_start();
151
156
  this.#interval = setInterval(this.#_start.bind(this), delay);
152
157
  }
153
158
  /**
@@ -220,8 +225,8 @@ class Resonate {
220
225
  // giving priority to the passed tags and add the
221
226
  // resonate:invocation tag to identify a top level invocation
222
227
  opts.tags = { ...registeredOpts.tags, ...tags, "resonate:invocation": "true" };
223
- // lock on top level is true by default
224
- opts.shouldLock = opts.shouldLock ?? true;
228
+ // locking is false by default
229
+ opts.shouldLock = opts.shouldLock ?? false;
225
230
  const param = {
226
231
  func: name,
227
232
  version: opts.version,
@@ -230,113 +235,9 @@ class Resonate {
230
235
  };
231
236
  const idempotencyKey = opts.idempotencyKeyFn(id);
232
237
  const storedPromise = await this.promisesStore.create(id, idempotencyKey, false, undefined, opts.encoder.encode(param), Date.now() + opts.timeout, opts.tags);
233
- const runFunc = async () => {
234
- const eid = opts.eidFn(id);
235
- let value;
236
- // If the promise that comes back from the server is already completed, resolve or reject right away.
237
- switch (storedPromise.state) {
238
- case "RESOLVED":
239
- return opts.encoder.decode(storedPromise.value.data);
240
- case "REJECTED":
241
- throw opts.encoder.decode(storedPromise.value.data);
242
- case "REJECTED_CANCELED":
243
- throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, opts.encoder.decode(storedPromise.value.data));
244
- case "REJECTED_TIMEDOUT":
245
- throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(storedPromise.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
246
- }
247
- // storedPromise.state === "PENDING"
248
- try {
249
- // Acquire the lock if necessary
250
- if (opts.shouldLock) {
251
- const acquireLock = async () => {
252
- try {
253
- return await this.store.locks.tryAcquire(id, eid);
254
- }
255
- catch (e) {
256
- // if lock is already acquired, return false so we can poll
257
- if (e instanceof errors_1.ResonateError && e.code === errors_1.ErrorCodes.STORE_FORBIDDEN) {
258
- return false;
259
- }
260
- throw e;
261
- }
262
- };
263
- while (!(await acquireLock())) {
264
- await (0, utils_1.sleep)(opts.pollFrequency);
265
- }
266
- }
267
- let error;
268
- const ctx = Context.createRootContext(this, { id, eid, name, opts });
269
- // we need to hold on to a boolean to determine if the function was successful,
270
- // we cannot rely on the value or error as these values could be undefined
271
- let success = true;
272
- try {
273
- value = await (0, retry_1.runWithRetry)(async () => {
274
- ctx.reset();
275
- return await func(ctx, ...args);
276
- }, opts.retryPolicy, storedPromise.timeout);
277
- }
278
- catch (e) {
279
- if (ctx.aborted) {
280
- throw e;
281
- }
282
- // We need to capture the error to be able to reject the durable promise
283
- // after that we will then propagate this error by rejecting the result promise
284
- error = e;
285
- success = false;
286
- }
287
- finally {
288
- await ctx.finalize();
289
- }
290
- let completedPromiseRecord;
291
- if (success) {
292
- completedPromiseRecord = await this.promisesStore.resolve(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(value));
293
- }
294
- else {
295
- completedPromiseRecord = await this.promisesStore.reject(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(error));
296
- }
297
- // Because of eventual consistency and recovery paths it is possible that we get a
298
- // rejected promise even if we did call `resolve` on it or the other way around.
299
- // What should never happen is that we get a "PENDING" promise
300
- switch (completedPromiseRecord.state) {
301
- case "RESOLVED":
302
- return value;
303
- case "REJECTED":
304
- throw error;
305
- case "REJECTED_CANCELED":
306
- throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, error);
307
- case "REJECTED_TIMEDOUT":
308
- throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(completedPromiseRecord.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
309
- case "PENDING":
310
- throw new Error("Unreachable");
311
- }
312
- }
313
- catch (err) {
314
- if (err instanceof errors_1.ResonateError && (err.code === errors_1.ErrorCodes.CANCELED || err.code === errors_1.ErrorCodes.TIMEDOUT)) {
315
- // Cancel and timeout errors just forward them
316
- throw err;
317
- }
318
- else if (err instanceof errors_1.ResonateError && err.code !== errors_1.ErrorCodes.ABORT) {
319
- // All other resonate errors we wrap them in an abort.
320
- throw new errors_1.ResonateError("Unrecoverable Error: Aborting", errors_1.ErrorCodes.ABORT, err);
321
- }
322
- else {
323
- // - The error was already an abort error, for example, the unrecoverable error happened in one
324
- // of the children invocations
325
- // - Error in the user function.
326
- // Either way, just forward it.
327
- throw err;
328
- }
329
- }
330
- finally {
331
- // release lock if necessary
332
- if (opts.shouldLock) {
333
- await this.locksStore.release(id, eid);
334
- }
335
- }
336
- return value;
337
- };
338
- const resultPromise = runFunc();
339
- const handle = new InvocationHandle(resultPromise, id);
238
+ const ctx = Context.createRootContext(this, { id, name, opts, eid: opts.eidFn(id) });
239
+ const resultPromise = _runFunc(func, ctx, args, idempotencyKey, storedPromise, this.store.locks, this.store.promises);
240
+ const handle = new InvocationHandle(id, resultPromise);
340
241
  this.#invocationHandles.set(id, handle);
341
242
  return handle;
342
243
  }
@@ -381,6 +282,8 @@ class Context {
381
282
  #invocationHandles;
382
283
  #aborted;
383
284
  #abortCause;
285
+ #resources;
286
+ #finalizers;
384
287
  childrenCount;
385
288
  invocationData;
386
289
  parent;
@@ -388,6 +291,8 @@ class Context {
388
291
  constructor(resonate, invocationData, parent) {
389
292
  this.#resonate = resonate;
390
293
  this.#invocationHandles = new Map();
294
+ this.#resources = new Map();
295
+ this.#finalizers = [];
391
296
  this.#aborted = false;
392
297
  this.parent = parent;
393
298
  this.root = !parent ? this : parent.root;
@@ -400,13 +305,25 @@ class Context {
400
305
  static createChildrenContext(parentCtx, invocationData) {
401
306
  return new Context(parentCtx.#resonate, invocationData, parentCtx);
402
307
  }
403
- reset() {
308
+ async onRetry() {
404
309
  this.childrenCount = 0;
310
+ await this.finalize();
405
311
  }
406
312
  async finalize() {
313
+ // It is important to await all promises before finalizing the resources
314
+ // doing it the other way around could cause problems
407
315
  await Promise.allSettled(Array.from(this.#invocationHandles, ([_, handle]) => handle.result()));
316
+ // We need to run the finalizers in reverse insertion order since later set finalizers might have
317
+ // a dependency in early set resources
318
+ for (const finalizer of this.#finalizers.reverse()) {
319
+ await finalizer();
320
+ }
321
+ this.#resources.clear();
322
+ this.#finalizers = [];
408
323
  }
409
324
  abort(cause) {
325
+ this.#aborted = true;
326
+ this.#abortCause = cause;
410
327
  this.root.#aborted = true;
411
328
  this.root.#abortCause = cause;
412
329
  }
@@ -416,6 +333,69 @@ class Context {
416
333
  get abortCause() {
417
334
  return this.#abortCause;
418
335
  }
336
+ /**
337
+ * Adds a finalizer function to be executed at the end of the current context.
338
+ * Finalizers are run in reverse order of their definition (last-in, first-out).
339
+ *
340
+ * @param fn - An asynchronous function to be executed as a finalizer.
341
+ * It should return a Promise that resolves to void.
342
+ *
343
+ * @remarks
344
+ * Finalizer functions must be non fallible.
345
+ */
346
+ addFinalizer(fn) {
347
+ this.#finalizers.push(fn);
348
+ }
349
+ /**
350
+ * Sets a named resource for the current context and optionally adds a finalizer.
351
+ *
352
+ * @param name - A unique string identifier for the resource.
353
+ * @param resource - The resource to be stored. Can be of any type.
354
+ * @param finalizer - Optional. An asynchronous function to be executed when the context ends.
355
+ * Finalizers are run in reverse order of their addition to the context and
356
+ * must not fail.
357
+ * @throws {Error} Throws an error if a resource with the same name already exists in the current context.
358
+ *
359
+ * This method associates a resource with a unique name in the current context.
360
+ * If a finalizer is provided, it will be executed when the context ends.
361
+ * Finalizers are useful for cleanup operations, such as closing connections or freeing resources.
362
+ */
363
+ setResource(name, resource, finalizer) {
364
+ if (this.#resources.has(name)) {
365
+ throw new Error("Resource already set for this context");
366
+ }
367
+ this.#resources.set(name, resource);
368
+ if (finalizer) {
369
+ this.#finalizers.push(finalizer);
370
+ }
371
+ }
372
+ /**
373
+ * Retrieves a resource by name from the current context or its parent contexts.
374
+ *
375
+ * @template R - The expected type of the resource.
376
+ * @param name - The unique string identifier of the resource to retrieve.
377
+ * @returns The resource of type R if found, or undefined if not found.
378
+ *
379
+ * This method searches for a resource in the following order:
380
+ * 1. In the current context.
381
+ * 2. If not found, it recursively searches in parent contexts.
382
+ * 3. Returns undefined if the resource is not found in any context.
383
+ *
384
+ * @remarks
385
+ * The method uses type assertion to cast the resource to type R.
386
+ * Ensure that the type parameter R matches the actual type of the stored resource
387
+ * to avoid runtime type errors.
388
+ */
389
+ getResource(name) {
390
+ const resource = this.#resources.get(name);
391
+ if (resource) {
392
+ return resource;
393
+ }
394
+ return this.parent ? this.parent.getResource(name) : undefined;
395
+ }
396
+ options(opts) {
397
+ return (0, options_1.options)(opts);
398
+ }
419
399
  async run(funcOrId, ...argsWithOpts) {
420
400
  let handle;
421
401
  if (typeof funcOrId === "string") {
@@ -462,7 +442,7 @@ class Context {
462
442
  throw new Error(`Polling of remote invocation with ${funcId} was stopped`);
463
443
  };
464
444
  const resultPromise = runFunc();
465
- const invocationHandle = new InvocationHandle(resultPromise, funcId);
445
+ const invocationHandle = new InvocationHandle(funcId, resultPromise);
466
446
  this.#invocationHandles.set(funcId, invocationHandle);
467
447
  return invocationHandle;
468
448
  }
@@ -481,18 +461,14 @@ class Context {
481
461
  if (this.#invocationHandles.has(id)) {
482
462
  return this.#invocationHandles.get(id);
483
463
  }
464
+ const ctx = Context.createChildrenContext(this, { name, id, eid: opts.eidFn(id), opts });
484
465
  if (!opts.durable) {
485
- const eid = opts.eidFn(id);
486
466
  const runFunc = async () => {
487
- const ctx = Context.createChildrenContext(this, { name, id, eid, opts });
488
467
  const timeout = Date.now() + opts.timeout;
489
- return (await (0, retry_1.runWithRetry)(async () => {
490
- ctx.reset();
491
- return await func(ctx, ...args);
492
- }, opts.retryPolicy, timeout));
468
+ return (await (0, retry_1.runWithRetry)(async () => await func(ctx, ...args), async () => await ctx.onRetry(), opts.retryPolicy, timeout));
493
469
  };
494
470
  const resultPromise = runFunc();
495
- const handle = new InvocationHandle(resultPromise, id);
471
+ const handle = new InvocationHandle(id, resultPromise);
496
472
  this.#invocationHandles.set(id, handle);
497
473
  return handle;
498
474
  }
@@ -500,112 +476,8 @@ class Context {
500
476
  const param = {};
501
477
  const idempotencyKey = opts.idempotencyKeyFn(id);
502
478
  const storedPromise = await this.#resonate.promisesStore.create(id, idempotencyKey, false, undefined, opts.encoder.encode(param), Date.now() + opts.timeout, opts.tags);
503
- const runFunc = async () => {
504
- const eid = opts.eidFn(id);
505
- let value;
506
- // If the promise that comes back from the server is already completed, resolve or reject right away.
507
- switch (storedPromise.state) {
508
- case "RESOLVED":
509
- return opts.encoder.decode(storedPromise.value.data);
510
- case "REJECTED":
511
- throw opts.encoder.decode(storedPromise.value.data);
512
- case "REJECTED_CANCELED":
513
- throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, opts.encoder.decode(storedPromise.value.data));
514
- case "REJECTED_TIMEDOUT":
515
- throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(storedPromise.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
516
- }
517
- // storedPromise.state === "PENDING"
518
- try {
519
- // Acquire the lock if necessary
520
- if (opts.shouldLock) {
521
- const acquireLock = async () => {
522
- try {
523
- return await this.#resonate.locksStore.tryAcquire(id, eid);
524
- }
525
- catch (e) {
526
- // if lock is already acquired, return false so we can poll
527
- if (e instanceof errors_1.ResonateError && e.code === errors_1.ErrorCodes.STORE_FORBIDDEN) {
528
- return false;
529
- }
530
- throw e;
531
- }
532
- };
533
- while (!(await acquireLock())) {
534
- await (0, utils_1.sleep)(opts.pollFrequency);
535
- }
536
- }
537
- let error;
538
- const ctx = Context.createChildrenContext(this, { id, eid, name, opts });
539
- // we need to hold on to a boolean to determine if the function was successful,
540
- // we cannot rely on the value or error as these values could be undefined
541
- let success = true;
542
- try {
543
- value = await (0, retry_1.runWithRetry)(async () => {
544
- ctx.reset();
545
- return await func(ctx, ...args);
546
- }, opts.retryPolicy, storedPromise.timeout);
547
- }
548
- catch (e) {
549
- // We need to capture the error to be able to reject the durable promise,
550
- // after that we will then propagate this error by rejecting the result promise
551
- error = e;
552
- success = false;
553
- }
554
- finally {
555
- // Resonate will implicitly await all the invocationHandles as the last
556
- // thing it does with the context before it goes out of scope
557
- await ctx.finalize();
558
- }
559
- if (this.root.aborted) {
560
- throw new errors_1.ResonateError("Unrecoverable Error: Aborting", errors_1.ErrorCodes.ABORT, this.root.abortCause);
561
- }
562
- let completedPromiseRecord;
563
- if (success) {
564
- completedPromiseRecord = await this.#resonate.promisesStore.resolve(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(value));
565
- }
566
- else {
567
- completedPromiseRecord = await this.#resonate.promisesStore.reject(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(error));
568
- }
569
- // Because of eventual consistency and recovery paths it is possible that we get a
570
- // rejected promise even if we did call `resolve` on it or the other way around.
571
- // What should never happen is that we get a "PENDING" promise
572
- switch (completedPromiseRecord.state) {
573
- case "RESOLVED":
574
- return value;
575
- case "REJECTED":
576
- throw error;
577
- case "REJECTED_CANCELED":
578
- throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, error);
579
- case "REJECTED_TIMEDOUT":
580
- throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(completedPromiseRecord.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
581
- case "PENDING":
582
- throw new Error("Unreachable");
583
- }
584
- }
585
- catch (err) {
586
- if (err instanceof errors_1.ResonateError && (err.code === errors_1.ErrorCodes.CANCELED || err.code === errors_1.ErrorCodes.TIMEDOUT)) {
587
- // Cancel and timeout errors, just forward them
588
- throw err;
589
- }
590
- else if (err instanceof errors_1.ResonateError && err.code !== errors_1.ErrorCodes.ABORT) {
591
- // Any other instance of ResonateError we must abort the current execution.
592
- this.abort(err);
593
- throw new errors_1.ResonateError("Unrecoverable Error: Aborting", errors_1.ErrorCodes.ABORT, err);
594
- }
595
- else {
596
- throw err;
597
- }
598
- }
599
- finally {
600
- // release lock if necessary
601
- if (opts.shouldLock) {
602
- await this.#resonate.locksStore.release(id, eid);
603
- }
604
- }
605
- return value;
606
- };
607
- const resultPromise = runFunc();
608
- const invocationHandle = new InvocationHandle(resultPromise, id);
479
+ const resultPromise = _runFunc(func, ctx, args, idempotencyKey, storedPromise, this.#resonate.store.locks, this.#resonate.store.promises);
480
+ const invocationHandle = new InvocationHandle(id, resultPromise);
609
481
  this.#invocationHandles.set(id, invocationHandle);
610
482
  return invocationHandle;
611
483
  }
@@ -726,11 +598,11 @@ class Context {
726
598
  }
727
599
  exports.Context = Context;
728
600
  class InvocationHandle {
729
- resultPromise;
730
601
  invocationId;
731
- constructor(resultPromise, invocationId) {
732
- this.resultPromise = resultPromise;
602
+ resultPromise;
603
+ constructor(invocationId, resultPromise) {
733
604
  this.invocationId = invocationId;
605
+ this.resultPromise = resultPromise;
734
606
  }
735
607
  /**
736
608
  * get the current state of the resultPromise.
@@ -744,4 +616,103 @@ class InvocationHandle {
744
616
  }
745
617
  }
746
618
  exports.InvocationHandle = InvocationHandle;
619
+ const acquireLock = async (id, eid, locksStore) => {
620
+ try {
621
+ return await locksStore.tryAcquire(id, eid);
622
+ }
623
+ catch (e) {
624
+ // if lock is already acquired, return false so we can poll
625
+ if (e instanceof errors_1.ResonateError && e.code === errors_1.ErrorCodes.STORE_FORBIDDEN) {
626
+ return false;
627
+ }
628
+ throw e;
629
+ }
630
+ };
631
+ const _runFunc = async (func, ctx, args, idempotencyKey, storedPromise, locksStore, promisesStore) => {
632
+ const { id, eid, opts } = ctx.invocationData;
633
+ // If the promise that comes back from the server is already completed, resolve or reject right away.
634
+ switch (storedPromise.state) {
635
+ case "RESOLVED":
636
+ return opts.encoder.decode(storedPromise.value.data);
637
+ case "REJECTED":
638
+ throw opts.encoder.decode(storedPromise.value.data);
639
+ case "REJECTED_CANCELED":
640
+ throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, opts.encoder.decode(storedPromise.value.data));
641
+ case "REJECTED_TIMEDOUT":
642
+ throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(storedPromise.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
643
+ }
644
+ // storedPromise.state === "PENDING"
645
+ try {
646
+ // Acquire the lock if necessary
647
+ if (opts.shouldLock) {
648
+ while (!(await acquireLock(id, eid, locksStore))) {
649
+ await (0, utils_1.sleep)(opts.pollFrequency);
650
+ }
651
+ }
652
+ let error;
653
+ let value;
654
+ // we need to hold on to a boolean to determine if the function was successful,
655
+ // we cannot rely on the value or error as these values could be undefined
656
+ let success = true;
657
+ try {
658
+ value = await (0, retry_1.runWithRetry)(async () => await func(ctx, ...args), async () => await ctx.onRetry(), opts.retryPolicy, storedPromise.timeout);
659
+ }
660
+ catch (e) {
661
+ // We need to capture the error to be able to reject the durable promise,
662
+ // after that we will then propagate this error by rejecting the result promise
663
+ error = e;
664
+ success = false;
665
+ }
666
+ finally {
667
+ // Resonate will implicitly await all the invocationHandles as the last
668
+ // thing it does with the context before it goes out of scope
669
+ await ctx.finalize();
670
+ }
671
+ if (ctx.root.aborted) {
672
+ throw new errors_1.ResonateError("Unrecoverable Error: Aborting", errors_1.ErrorCodes.ABORT, ctx.root.abortCause);
673
+ }
674
+ let completedPromiseRecord;
675
+ if (success) {
676
+ completedPromiseRecord = await promisesStore.resolve(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(value));
677
+ }
678
+ else {
679
+ completedPromiseRecord = await promisesStore.reject(id, idempotencyKey, false, storedPromise.value.headers, opts.encoder.encode(error));
680
+ }
681
+ // Because of eventual consistency and recovery paths it is possible that we get a
682
+ // rejected promise even if we did call `resolve` on it or the other way around.
683
+ // What should never happen is that we get a "PENDING" promise
684
+ switch (completedPromiseRecord.state) {
685
+ case "RESOLVED":
686
+ return value;
687
+ case "REJECTED":
688
+ throw error;
689
+ case "REJECTED_CANCELED":
690
+ throw new errors_1.ResonateError("Resonate function canceled", errors_1.ErrorCodes.CANCELED, error);
691
+ case "REJECTED_TIMEDOUT":
692
+ throw new errors_1.ResonateError(`Resonate function timedout at ${new Date(completedPromiseRecord.timeout).toISOString()}`, errors_1.ErrorCodes.TIMEDOUT);
693
+ case "PENDING":
694
+ throw new Error("Unreachable");
695
+ }
696
+ }
697
+ catch (err) {
698
+ if (err instanceof errors_1.ResonateError && (err.code === errors_1.ErrorCodes.CANCELED || err.code === errors_1.ErrorCodes.TIMEDOUT)) {
699
+ // Cancel and timeout errors, just forward them
700
+ throw err;
701
+ }
702
+ else if (err instanceof errors_1.ResonateError && err.code !== errors_1.ErrorCodes.ABORT) {
703
+ // Any other instance of ResonateError we must abort the current execution.
704
+ ctx.abort(err);
705
+ throw new errors_1.ResonateError("Unrecoverable Error: Aborting", errors_1.ErrorCodes.ABORT, err);
706
+ }
707
+ else {
708
+ throw err;
709
+ }
710
+ }
711
+ finally {
712
+ // release lock if necessary
713
+ if (opts.shouldLock) {
714
+ await locksStore.release(id, eid);
715
+ }
716
+ }
717
+ };
747
718
  //# sourceMappingURL=resonate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resonatehq/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "TypeScript SDK for Resonate",
5
5
  "author": "Resonate Developers",
6
6
  "license": "Apache-2.0",
@@ -18,7 +18,7 @@
18
18
  "dist"
19
19
  ],
20
20
  "scripts": {
21
- "test": "jest --config jest.config.js",
21
+ "test": "jest --config jest.config.js",
22
22
  "build": "tsc --build tsconfig.build.json",
23
23
  "lint": "eslint .",
24
24
  "lint:fix": "eslint . --fix",
@@ -47,7 +47,7 @@
47
47
  "typedoc": "^0.25.7",
48
48
  "typedoc-material-theme": "^1.0.2",
49
49
  "typescript": "^5.2.2"
50
- },
50
+ },
51
51
  "engines": {
52
52
  "node": ">= 18"
53
53
  }