@resonatehq/sdk 0.5.2 → 0.5.5
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/dist/async.d.ts +23 -5
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +94 -22
- package/dist/async.js.map +1 -1
- package/dist/core/calls.d.ts +23 -0
- package/dist/core/calls.d.ts.map +1 -0
- package/dist/core/calls.js +13 -0
- package/dist/core/calls.js.map +1 -0
- package/dist/core/encoders/json.d.ts.map +1 -1
- package/dist/core/encoders/json.js +12 -0
- package/dist/core/encoders/json.js.map +1 -1
- package/dist/core/errors.d.ts +7 -6
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +7 -6
- package/dist/core/errors.js.map +1 -1
- package/dist/core/execution.d.ts +0 -10
- package/dist/core/execution.d.ts.map +1 -1
- package/dist/core/execution.js +10 -105
- package/dist/core/execution.js.map +1 -1
- package/dist/core/invocation.d.ts +4 -7
- package/dist/core/invocation.d.ts.map +1 -1
- package/dist/core/invocation.js +6 -28
- package/dist/core/invocation.js.map +1 -1
- package/dist/core/options.d.ts +58 -10
- package/dist/core/options.d.ts.map +1 -1
- package/dist/core/options.js.map +1 -1
- package/dist/core/promises/promises.d.ts +2 -2
- package/dist/core/promises/promises.d.ts.map +1 -1
- package/dist/core/promises/promises.js +8 -4
- package/dist/core/promises/promises.js.map +1 -1
- package/dist/core/promises/types.d.ts +10 -83
- package/dist/core/promises/types.d.ts.map +1 -1
- package/dist/core/promises/types.js +10 -10
- package/dist/core/promises/types.js.map +1 -1
- package/dist/core/retry.d.ts +35 -26
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +111 -14
- package/dist/core/retry.js.map +1 -1
- package/dist/core/storages/memory.d.ts.map +1 -1
- package/dist/core/storages/memory.js +2 -0
- package/dist/core/storages/memory.js.map +1 -1
- package/dist/core/storages/withTimeout.d.ts +6 -6
- package/dist/core/storages/withTimeout.d.ts.map +1 -1
- package/dist/core/storages/withTimeout.js +2 -13
- package/dist/core/storages/withTimeout.js.map +1 -1
- package/dist/core/store.d.ts +7 -7
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/stores/local.d.ts +16 -13
- package/dist/core/stores/local.d.ts.map +1 -1
- package/dist/core/stores/local.js +15 -11
- package/dist/core/stores/local.js.map +1 -1
- package/dist/core/stores/remote.d.ts +27 -24
- package/dist/core/stores/remote.d.ts.map +1 -1
- package/dist/core/stores/remote.js +162 -158
- package/dist/core/stores/remote.js.map +1 -1
- package/dist/core/utils.d.ts +27 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +37 -1
- package/dist/core/utils.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -7
- package/dist/index.js.map +1 -1
- package/dist/resonate.d.ts +12 -16
- package/dist/resonate.d.ts.map +1 -1
- package/dist/resonate.js +85 -47
- package/dist/resonate.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/retries/retry.d.ts +0 -20
- package/dist/core/retries/retry.d.ts.map +0 -1
- package/dist/core/retries/retry.js +0 -41
- package/dist/core/retries/retry.js.map +0 -1
- package/dist/generator.d.ts +0 -208
- package/dist/generator.d.ts.map +0 -1
- package/dist/generator.js +0 -427
- package/dist/generator.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
export * from "./resonate";
|
|
2
2
|
export * from "./async";
|
|
3
|
-
export * as async from "./async";
|
|
4
|
-
export * as generator from "./generator";
|
|
5
3
|
export * from "./core/errors";
|
|
6
4
|
export * from "./core/future";
|
|
7
5
|
export * from "./core/options";
|
|
8
6
|
export * as promises from "./core/promises/promises";
|
|
9
7
|
export * as schedules from "./core/schedules/schedules";
|
|
8
|
+
export * from "./core/retry";
|
|
10
9
|
export * from "./core/encoder";
|
|
11
10
|
export * from "./core/logger";
|
|
12
|
-
export * from "./core/retry";
|
|
13
11
|
export * from "./core/storage";
|
|
14
12
|
export * from "./core/store";
|
|
15
13
|
export * from "./core/encoders/base64";
|
|
16
14
|
export * from "./core/encoders/json";
|
|
17
15
|
export * from "./core/loggers/logger";
|
|
18
|
-
export * from "./core/retries/retry";
|
|
19
16
|
export * from "./core/storages/memory";
|
|
20
17
|
export * from "./core/storages/withTimeout";
|
|
21
18
|
export * from "./core/stores/local";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AAGxD,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAG7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,14 +26,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.utils = exports.schedules = exports.promises =
|
|
29
|
+
exports.utils = exports.schedules = exports.promises = void 0;
|
|
30
30
|
// resonate
|
|
31
31
|
__exportStar(require("./resonate"), exports);
|
|
32
|
-
// async
|
|
32
|
+
// async
|
|
33
33
|
__exportStar(require("./async"), exports);
|
|
34
|
-
exports.async = __importStar(require("./async"));
|
|
35
|
-
// generator
|
|
36
|
-
exports.generator = __importStar(require("./generator"));
|
|
37
34
|
// errors
|
|
38
35
|
__exportStar(require("./core/errors"), exports);
|
|
39
36
|
// futures
|
|
@@ -44,17 +41,17 @@ __exportStar(require("./core/options"), exports);
|
|
|
44
41
|
exports.promises = __importStar(require("./core/promises/promises"));
|
|
45
42
|
// schedules
|
|
46
43
|
exports.schedules = __importStar(require("./core/schedules/schedules"));
|
|
44
|
+
// retry policies
|
|
45
|
+
__exportStar(require("./core/retry"), exports);
|
|
47
46
|
// interfaces
|
|
48
47
|
__exportStar(require("./core/encoder"), exports);
|
|
49
48
|
__exportStar(require("./core/logger"), exports);
|
|
50
|
-
__exportStar(require("./core/retry"), exports);
|
|
51
49
|
__exportStar(require("./core/storage"), exports);
|
|
52
50
|
__exportStar(require("./core/store"), exports);
|
|
53
51
|
// implementations
|
|
54
52
|
__exportStar(require("./core/encoders/base64"), exports);
|
|
55
53
|
__exportStar(require("./core/encoders/json"), exports);
|
|
56
54
|
__exportStar(require("./core/loggers/logger"), exports);
|
|
57
|
-
__exportStar(require("./core/retries/retry"), exports);
|
|
58
55
|
__exportStar(require("./core/storages/memory"), exports);
|
|
59
56
|
__exportStar(require("./core/storages/withTimeout"), exports);
|
|
60
57
|
__exportStar(require("./core/stores/local"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,6CAA2B;AAE3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,WAAW;AACX,6CAA2B;AAE3B,QAAQ;AACR,0CAAwB;AAExB,SAAS;AACT,gDAA8B;AAE9B,UAAU;AACV,gDAA8B;AAE9B,UAAU;AACV,iDAA+B;AAE/B,WAAW;AACX,qEAAqD;AAErD,YAAY;AACZ,wEAAwD;AAExD,iBAAiB;AACjB,+CAA6B;AAE7B,aAAa;AACb,iDAA+B;AAC/B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAE7B,kBAAkB;AAClB,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,8DAA4C;AAC5C,sDAAoC;AACpC,uDAAqC;AAErC,QAAQ;AACR,sDAAsC"}
|
package/dist/resonate.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { TFC } from "./core/calls";
|
|
1
2
|
import { IEncoder } from "./core/encoder";
|
|
2
3
|
import { ResonatePromise } from "./core/future";
|
|
3
4
|
import { ILogger } from "./core/logger";
|
|
4
5
|
import { ResonateOptions, Options, PartialOptions } from "./core/options";
|
|
5
6
|
import * as promises from "./core/promises/promises";
|
|
6
|
-
import
|
|
7
|
+
import * as retryPolicy from "./core/retry";
|
|
7
8
|
import * as schedules from "./core/schedules/schedules";
|
|
8
9
|
import { IStore } from "./core/store";
|
|
9
10
|
type Func = (...args: any[]) => any;
|
|
@@ -17,25 +18,20 @@ export declare abstract class ResonateBase {
|
|
|
17
18
|
readonly tags: Record<string, string>;
|
|
18
19
|
readonly encoder: IEncoder<unknown, string | undefined>;
|
|
19
20
|
readonly logger: ILogger;
|
|
20
|
-
readonly retry:
|
|
21
|
+
readonly retry: retryPolicy.RetryPolicy;
|
|
21
22
|
readonly store: IStore;
|
|
22
23
|
private interval;
|
|
23
|
-
constructor({
|
|
24
|
+
constructor({ auth, encoder, heartbeat, // 15s
|
|
25
|
+
logger, pid, poll, // 5s
|
|
24
26
|
retry, store, tags, timeout, // 10s
|
|
25
27
|
url, }?: Partial<ResonateOptions>);
|
|
26
|
-
protected abstract execute(name: string, id: string, func: Func, args: any[], opts: Options,
|
|
28
|
+
protected abstract execute(name: string, id: string, func: Func, args: any[], opts: Options, durablePromise?: promises.DurablePromise<any>): ResonatePromise<any>;
|
|
27
29
|
register(name: string, func: Func, opts?: Partial<Options>): (id: string, ...args: any) => ResonatePromise<any>;
|
|
28
30
|
registerModule(module: Record<string, Func>, opts?: Partial<Options>): void;
|
|
29
|
-
|
|
30
|
-
* Run a Resonate function. Functions must first be registered with {@link register}.
|
|
31
|
-
*
|
|
32
|
-
* @template T The return type of the function.
|
|
33
|
-
* @param id A unique id for the function invocation.
|
|
34
|
-
* @param name The function name.
|
|
35
|
-
* @param argsWithOpts The function arguments.
|
|
36
|
-
* @returns A promise that resolve to the function return value.
|
|
37
|
-
*/
|
|
31
|
+
run<T>(tfc: TFC): ResonatePromise<T>;
|
|
38
32
|
run<T>(name: string, id: string, ...argsWithOpts: [...any, PartialOptions?]): ResonatePromise<T>;
|
|
33
|
+
private _run;
|
|
34
|
+
registeredOptions(name: string, version: number): Options;
|
|
39
35
|
schedule(name: string, cron: string, func: Func | string, ...argsWithOpts: [...any, PartialOptions?]): Promise<schedules.Schedule>;
|
|
40
36
|
/**
|
|
41
37
|
* Construct options.
|
|
@@ -45,7 +41,8 @@ export declare abstract class ResonateBase {
|
|
|
45
41
|
*/
|
|
46
42
|
options(opts?: Partial<Options>): PartialOptions;
|
|
47
43
|
/**
|
|
48
|
-
* Start the resonate service
|
|
44
|
+
* Start the resonate service which continually checks for pending promises
|
|
45
|
+
* every `delay` ms.
|
|
49
46
|
*
|
|
50
47
|
* @param delay Frequency in ms to check for pending promises.
|
|
51
48
|
*/
|
|
@@ -54,9 +51,8 @@ export declare abstract class ResonateBase {
|
|
|
54
51
|
* Stop the resonate service.
|
|
55
52
|
*/
|
|
56
53
|
stop(): void;
|
|
57
|
-
|
|
54
|
+
defaults({ durable, eidFn, encoder, idempotencyKeyFn, lock, poll, retry, tags, timeout, version, }?: Partial<Options>): Options;
|
|
58
55
|
private _start;
|
|
59
|
-
private split;
|
|
60
56
|
}
|
|
61
57
|
export interface ResonatePromises {
|
|
62
58
|
/**
|
package/dist/resonate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"resonate.d.ts","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAMpC,8BAAsB,YAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqE;IAE/F,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAC3C,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAE7C,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,SAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/D,SAAgB,MAAM,EAAE,OAAO,CAAC;IAChC,SAAgB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC;IAC/C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,EACV,IAAgB,EAChB,OAA2B,EAC3B,SAAiB,EAAE,MAAM;IACzB,MAAqB,EACrB,GAAsB,EACtB,IAAW,EAAE,KAAK;IAClB,KAAiC,EACjC,KAAiB,EACjB,IAAS,EACT,OAAe,EAAE,MAAM;IACvB,GAAe,GAChB,GAAE,OAAO,CAAC,eAAe,CAAM;IA+DhC,SAAS,CAAC,QAAQ,CAAC,OAAO,CACxB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,OAAO,EACb,cAAc,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAC5C,eAAe,CAAC,GAAG,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC;IA6BnH,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM;IAMxE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC;IACpC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAyChG,OAAO,CAAC,IAAI;IAkCZ,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IASzD,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,GAAG,YAAY,EAAE,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC,CAAC,GACzC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;IAsC9B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,cAAc;IAIpD;;;;;OAKG;IACH,KAAK,CAAC,KAAK,GAAE,MAAa;IAM1B;;OAEG;IACH,IAAI;IAIG,QAAQ,CAAC,EACd,OAAc,EACd,KAAsB,EACtB,OAAsB,EACtB,gBAA6B,EAC7B,IAAgB,EAChB,IAAgB,EAChB,KAAkB,EAClB,IAAS,EACT,OAAsB,EACtB,OAAW,GACZ,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO;YAmBpB,MAAM;CA6BrB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpH;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhH;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjH;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjH;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;;;;OAQG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAChC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACxC,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;CAC/C"}
|
package/dist/resonate.js
CHANGED
|
@@ -26,9 +26,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.ResonateBase = void 0;
|
|
27
27
|
const json_1 = require("./core/encoders/json");
|
|
28
28
|
const logger_1 = require("./core/loggers/logger");
|
|
29
|
-
const options_1 = require("./core/options");
|
|
30
29
|
const promises = __importStar(require("./core/promises/promises"));
|
|
31
|
-
const
|
|
30
|
+
const retryPolicy = __importStar(require("./core/retry"));
|
|
32
31
|
const schedules = __importStar(require("./core/schedules/schedules"));
|
|
33
32
|
const local_1 = require("./core/stores/local");
|
|
34
33
|
const remote_1 = require("./core/stores/remote");
|
|
@@ -49,8 +48,9 @@ class ResonateBase {
|
|
|
49
48
|
retry;
|
|
50
49
|
store;
|
|
51
50
|
interval;
|
|
52
|
-
constructor({
|
|
53
|
-
|
|
51
|
+
constructor({ auth = undefined, encoder = new json_1.JSONEncoder(), heartbeat = 15000, // 15s
|
|
52
|
+
logger = new logger_1.Logger(), pid = utils.randomId(), poll = 5000, // 5s
|
|
53
|
+
retry = retryPolicy.exponential(), store = undefined, tags = {}, timeout = 10000, // 10s
|
|
54
54
|
url = undefined, } = {}) {
|
|
55
55
|
this.encoder = encoder;
|
|
56
56
|
this.logger = logger;
|
|
@@ -63,10 +63,20 @@ class ResonateBase {
|
|
|
63
63
|
this.store = store;
|
|
64
64
|
}
|
|
65
65
|
else if (url) {
|
|
66
|
-
this.store = new remote_1.RemoteStore(url,
|
|
66
|
+
this.store = new remote_1.RemoteStore(url, {
|
|
67
|
+
auth,
|
|
68
|
+
heartbeat,
|
|
69
|
+
logger,
|
|
70
|
+
pid,
|
|
71
|
+
});
|
|
67
72
|
}
|
|
68
73
|
else {
|
|
69
|
-
this.store = new local_1.LocalStore(
|
|
74
|
+
this.store = new local_1.LocalStore({
|
|
75
|
+
auth,
|
|
76
|
+
heartbeat,
|
|
77
|
+
logger,
|
|
78
|
+
pid,
|
|
79
|
+
});
|
|
70
80
|
}
|
|
71
81
|
// promises
|
|
72
82
|
this.promises = {
|
|
@@ -120,42 +130,70 @@ class ResonateBase {
|
|
|
120
130
|
* @param argsWithOpts The function arguments.
|
|
121
131
|
* @returns A promise that resolve to the function return value.
|
|
122
132
|
*/
|
|
123
|
-
run(
|
|
124
|
-
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
133
|
+
run(nameOrTfc, id, ...argsWithOpts) {
|
|
134
|
+
let tfc;
|
|
135
|
+
if (typeof nameOrTfc === "string") {
|
|
136
|
+
const { args, opts: givenOpts } = utils.split(argsWithOpts);
|
|
137
|
+
const { durable, eidFn, idempotencyKeyFn, retry, tags, timeout, version } = givenOpts;
|
|
138
|
+
if (!id) {
|
|
139
|
+
throw new Error("Id was not set for a top level function call");
|
|
140
|
+
}
|
|
141
|
+
tfc = {
|
|
142
|
+
funcName: nameOrTfc,
|
|
143
|
+
id,
|
|
144
|
+
args,
|
|
145
|
+
optsOverrides: {
|
|
146
|
+
durable,
|
|
147
|
+
eidFn,
|
|
148
|
+
idempotencyKeyFn,
|
|
149
|
+
retry,
|
|
150
|
+
tags,
|
|
151
|
+
timeout,
|
|
152
|
+
version,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
141
155
|
}
|
|
142
156
|
else {
|
|
143
|
-
|
|
157
|
+
tfc = nameOrTfc;
|
|
144
158
|
}
|
|
145
|
-
|
|
146
|
-
|
|
159
|
+
return this._run(tfc);
|
|
160
|
+
}
|
|
161
|
+
_run(tfc) {
|
|
162
|
+
// Sets the defaults for the optional fields of TFC
|
|
163
|
+
tfc.optsOverrides = tfc.optsOverrides ?? {};
|
|
164
|
+
tfc.args = tfc.args ?? [];
|
|
165
|
+
tfc.optsOverrides.version = tfc.optsOverrides.version || 0;
|
|
166
|
+
if (!this.functions[tfc.funcName] || !this.functions[tfc.funcName][tfc.optsOverrides.version]) {
|
|
167
|
+
throw new Error(`Function ${tfc.funcName} version ${tfc.optsOverrides.version} not registered`);
|
|
147
168
|
}
|
|
169
|
+
// the options registered with the function are the defaults
|
|
170
|
+
const { func, opts: registeredOpts } = this.functions[tfc.funcName][tfc.optsOverrides.version];
|
|
148
171
|
// merge defaults with override to get opts
|
|
149
|
-
const opts =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
172
|
+
const opts = utils.mergeObjects(tfc.optsOverrides, registeredOpts);
|
|
173
|
+
// We want to preserve the version that was registered with the function
|
|
174
|
+
// when calling the function with `version=0` we will find the latest
|
|
175
|
+
// registered version of a function, but we want to make sure the registered
|
|
176
|
+
// version is preserved.
|
|
177
|
+
opts.version = registeredOpts.version;
|
|
178
|
+
// For tags we need to merge the objects themselves and add the
|
|
179
|
+
// resonate:invocation tag to identify a top level invocation
|
|
180
|
+
opts.tags = { ...registeredOpts.tags, ...tfc.optsOverrides.tags, "resonate:invocation": "true" };
|
|
153
181
|
// lock on top level is true by default
|
|
154
182
|
opts.lock = opts.lock ?? true;
|
|
155
|
-
return this.execute(
|
|
183
|
+
return this.execute(tfc.funcName, tfc.id, func, tfc.args, opts);
|
|
184
|
+
}
|
|
185
|
+
// Gets the registered options for a specific function and version
|
|
186
|
+
// that has been previously registered.
|
|
187
|
+
registeredOptions(name, version) {
|
|
188
|
+
if (!this.functions[name] || !this.functions[name][version]) {
|
|
189
|
+
throw new Error(`Function ${name} version ${version} not registered`);
|
|
190
|
+
}
|
|
191
|
+
const { opts } = this.functions[name][version];
|
|
192
|
+
return opts;
|
|
156
193
|
}
|
|
157
194
|
schedule(name, cron, func, ...argsWithOpts) {
|
|
158
|
-
const { args, opts } =
|
|
195
|
+
const { args, opts: givenOpts } = utils.split(argsWithOpts);
|
|
196
|
+
const opts = this.defaults(givenOpts);
|
|
159
197
|
if (typeof func === "function") {
|
|
160
198
|
// if function is provided, the default version is 1
|
|
161
199
|
// as opposed to 0 (alias for latest version)
|
|
@@ -166,11 +204,12 @@ class ResonateBase {
|
|
|
166
204
|
if (!this.functions[funcName] || !this.functions[funcName][opts.version]) {
|
|
167
205
|
throw new Error(`Function ${funcName} version ${opts.version} not registered`);
|
|
168
206
|
}
|
|
169
|
-
const { opts: { version, timeout, tags: promiseTags }, } = this.functions[funcName][opts.version];
|
|
170
|
-
const idempotencyKey =
|
|
207
|
+
const { opts: { retry, version, timeout, tags: promiseTags }, } = this.functions[funcName][opts.version];
|
|
208
|
+
const idempotencyKey = opts.idempotencyKeyFn(funcName);
|
|
171
209
|
const promiseParam = {
|
|
172
210
|
func: funcName,
|
|
173
211
|
version,
|
|
212
|
+
retryPolicy: retry,
|
|
174
213
|
args,
|
|
175
214
|
};
|
|
176
215
|
return this.schedules.create(name, cron, "{{.id}}.{{.timestamp}}", timeout, {
|
|
@@ -189,12 +228,14 @@ class ResonateBase {
|
|
|
189
228
|
return { ...opts, __resonate: true };
|
|
190
229
|
}
|
|
191
230
|
/**
|
|
192
|
-
* Start the resonate service
|
|
231
|
+
* Start the resonate service which continually checks for pending promises
|
|
232
|
+
* every `delay` ms.
|
|
193
233
|
*
|
|
194
234
|
* @param delay Frequency in ms to check for pending promises.
|
|
195
235
|
*/
|
|
196
236
|
start(delay = 5000) {
|
|
197
237
|
clearInterval(this.interval);
|
|
238
|
+
this._start();
|
|
198
239
|
this.interval = setInterval(() => this._start(), delay);
|
|
199
240
|
}
|
|
200
241
|
/**
|
|
@@ -203,15 +244,15 @@ class ResonateBase {
|
|
|
203
244
|
stop() {
|
|
204
245
|
clearInterval(this.interval);
|
|
205
246
|
}
|
|
206
|
-
defaults({ durable = true,
|
|
247
|
+
defaults({ durable = true, eidFn = utils.randomId, encoder = this.encoder, idempotencyKeyFn = utils.hash, lock = undefined, poll = this.poll, retry = this.retry, tags = {}, timeout = this.timeout, version = 0, } = {}) {
|
|
207
248
|
// merge tags
|
|
208
249
|
tags = { ...this.tags, ...tags };
|
|
209
250
|
return {
|
|
210
251
|
__resonate: true,
|
|
211
|
-
|
|
252
|
+
eidFn,
|
|
212
253
|
durable,
|
|
213
254
|
encoder,
|
|
214
|
-
|
|
255
|
+
idempotencyKeyFn,
|
|
215
256
|
lock,
|
|
216
257
|
poll,
|
|
217
258
|
retry,
|
|
@@ -232,9 +273,12 @@ class ResonateBase {
|
|
|
232
273
|
"version" in param &&
|
|
233
274
|
typeof param.version === "number" &&
|
|
234
275
|
"args" in param &&
|
|
235
|
-
Array.isArray(param.args)
|
|
276
|
+
Array.isArray(param.args) &&
|
|
277
|
+
"retryPolicy" in param &&
|
|
278
|
+
retryPolicy.isRetryPolicy(param.retryPolicy)) {
|
|
236
279
|
const { func, opts } = this.functions[param.func][param.version];
|
|
237
|
-
|
|
280
|
+
opts.retry = param.retryPolicy;
|
|
281
|
+
this.execute(param.func, promise.id, func, param.args, opts, promise);
|
|
238
282
|
}
|
|
239
283
|
}
|
|
240
284
|
}
|
|
@@ -245,12 +289,6 @@ class ResonateBase {
|
|
|
245
289
|
this.logger.error(e);
|
|
246
290
|
}
|
|
247
291
|
}
|
|
248
|
-
split(args) {
|
|
249
|
-
const part = args[args.length - 1];
|
|
250
|
-
return (0, options_1.isOptions)(part)
|
|
251
|
-
? { args: args.slice(0, -1), opts: this.defaults(part), part }
|
|
252
|
-
: { args, opts: this.defaults(), part: {} };
|
|
253
|
-
}
|
|
254
292
|
}
|
|
255
293
|
exports.ResonateBase = ResonateBase;
|
|
256
294
|
//# sourceMappingURL=resonate.js.map
|
package/dist/resonate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"resonate.js","sourceRoot":"","sources":["../lib/resonate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IRetry, IterableRetry } from "../retry";
|
|
2
|
-
export declare class Retry extends IterableRetry implements IRetry {
|
|
3
|
-
private initialDelay;
|
|
4
|
-
private backoffFactor;
|
|
5
|
-
private maxAttempts;
|
|
6
|
-
private maxDelay;
|
|
7
|
-
constructor(initialDelay: number, backoffFactor: number, maxAttempts: number, maxDelay: number);
|
|
8
|
-
static exponential(initialDelay?: number, backoffFactor?: number, maxAttempts?: number, maxDelay?: number): Retry;
|
|
9
|
-
static linear(delay?: number, // 1 second
|
|
10
|
-
maxAttempts?: number): Retry;
|
|
11
|
-
static never(): Retry;
|
|
12
|
-
next<T extends {
|
|
13
|
-
attempt: number;
|
|
14
|
-
timeout: number;
|
|
15
|
-
}>(ctx: T): {
|
|
16
|
-
done: boolean;
|
|
17
|
-
delay?: number;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../lib/core/retries/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,KAAM,SAAQ,aAAc,YAAW,MAAM;IAEtD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;gBAHR,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM;IAK1B,MAAM,CAAC,WAAW,CAChB,YAAY,GAAE,MAAY,EAC1B,aAAa,GAAE,MAAU,EACzB,WAAW,GAAE,MAAiB,EAC9B,QAAQ,GAAE,MAAc,GACvB,KAAK;IAIR,MAAM,CAAC,MAAM,CACX,KAAK,GAAE,MAAa,EAAE,WAAW;IACjC,WAAW,GAAE,MAAiB,GAC7B,KAAK;IAIR,MAAM,CAAC,KAAK,IAAI,KAAK;IAIrB,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,EAAE,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CAiBhG"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Retry = void 0;
|
|
4
|
-
const retry_1 = require("../retry");
|
|
5
|
-
class Retry extends retry_1.IterableRetry {
|
|
6
|
-
initialDelay;
|
|
7
|
-
backoffFactor;
|
|
8
|
-
maxAttempts;
|
|
9
|
-
maxDelay;
|
|
10
|
-
constructor(initialDelay, backoffFactor, maxAttempts, maxDelay) {
|
|
11
|
-
super();
|
|
12
|
-
this.initialDelay = initialDelay;
|
|
13
|
-
this.backoffFactor = backoffFactor;
|
|
14
|
-
this.maxAttempts = maxAttempts;
|
|
15
|
-
this.maxDelay = maxDelay;
|
|
16
|
-
}
|
|
17
|
-
static exponential(initialDelay = 100, backoffFactor = 2, maxAttempts = Infinity, maxDelay = 60000) {
|
|
18
|
-
return new Retry(initialDelay, backoffFactor, maxAttempts, maxDelay);
|
|
19
|
-
}
|
|
20
|
-
static linear(delay = 1000, // 1 second
|
|
21
|
-
maxAttempts = Infinity) {
|
|
22
|
-
return new Retry(delay, 1, maxAttempts, delay);
|
|
23
|
-
}
|
|
24
|
-
static never() {
|
|
25
|
-
return new Retry(0, 0, 1, 0);
|
|
26
|
-
}
|
|
27
|
-
next(ctx) {
|
|
28
|
-
// attempt 0: 0ms delay
|
|
29
|
-
// attampt n: {initial * factor^(attempt-1)}ms delay (or max delay)
|
|
30
|
-
const delay = Math.min(Math.min(ctx.attempt, 1) * this.initialDelay * Math.pow(this.backoffFactor, ctx.attempt - 1), this.maxDelay);
|
|
31
|
-
if (Date.now() + delay >= ctx.timeout || ctx.attempt >= this.maxAttempts) {
|
|
32
|
-
return { done: true };
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
done: false,
|
|
36
|
-
delay: delay,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.Retry = Retry;
|
|
41
|
-
//# sourceMappingURL=retry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../lib/core/retries/retry.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAEjD,MAAa,KAAM,SAAQ,qBAAa;IAE5B;IACA;IACA;IACA;IAJV,YACU,YAAoB,EACpB,aAAqB,EACrB,WAAmB,EACnB,QAAgB;QAExB,KAAK,EAAE,CAAC;QALA,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAQ;IAG1B,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,eAAuB,GAAG,EAC1B,gBAAwB,CAAC,EACzB,cAAsB,QAAQ,EAC9B,WAAmB,KAAK;QAExB,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,MAAM,CACX,QAAgB,IAAI,EAAE,WAAW;IACjC,cAAsB,QAAQ;QAE9B,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAiD,GAAM;QACzD,uBAAuB;QACvB,mEAAmE;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAC5F,IAAI,CAAC,QAAQ,CACd,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;CACF;AA/CD,sBA+CC"}
|