@temporalio/workflow 0.13.0 → 0.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,54 +0,0 @@
1
- /** v8 hook types */
2
- export declare type HookType = 'init' | 'resolve' | 'before' | 'after';
3
- /** Type of the PromiseHook callback */
4
- export declare type PromiseHook = (t: HookType, p: Promise<any>, pp?: Promise<any>) => void;
5
- /**
6
- * Interface for the native (c++) isolate extension, exposes method for working with the v8 Promise hook and custom Promise data
7
- */
8
- export interface IsolateExtension {
9
- registerPromiseHook(hook: PromiseHook): void;
10
- /** Associate a Promise with each hook's custom data */
11
- setPromiseData(p: Promise<any>, s: Map<PromiseHook, any>): void;
12
- /** Get the custom hook data associated with a Promise */
13
- getPromiseData(p: Promise<any>): Map<PromiseHook, any> | undefined;
14
- }
15
- /**
16
- * Uses the v8 PromiseHook callback to track the current `CancellationScope`
17
- */
18
- export declare class HookManager {
19
- protected readonly registeredHooks: Set<PromiseHook>;
20
- /**
21
- * A reference to the native isolate extension, lazily initialized along with the Workflow
22
- */
23
- protected isolateExtension?: IsolateExtension;
24
- protected constructor();
25
- static instance: HookManager;
26
- /**
27
- * To be called from the Workflow runtime library to set the native module reference
28
- */
29
- setIsolateExtension(isolateExtension: IsolateExtension): void;
30
- /**
31
- * Helper that ensures isolateExtension has been set
32
- */
33
- getIsolateExtension(): IsolateExtension;
34
- /**
35
- * Register a single promise hook callback
36
- */
37
- register(hook: PromiseHook): void;
38
- /**
39
- * Deregister a single promise hook callback
40
- */
41
- deregister(hook: PromiseHook): void;
42
- /**
43
- * The PromiseHook implementation, calls all registered hooks
44
- */
45
- protected hook(t: HookType, p: Promise<any>, pp?: Promise<any>): void;
46
- /**
47
- * Get custom promise data for a promise hook
48
- */
49
- getPromiseData(p: Promise<any>, hook: PromiseHook): unknown;
50
- /**
51
- * Set custom promise data for a promise hook
52
- */
53
- setPromiseData(p: Promise<any>, hook: PromiseHook, data: unknown): void;
54
- }
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HookManager = void 0;
4
- const common_1 = require("@temporalio/common");
5
- /**
6
- * Uses the v8 PromiseHook callback to track the current `CancellationScope`
7
- */
8
- class HookManager {
9
- constructor() {
10
- this.registeredHooks = new Set();
11
- // Prevent construction other than the singleton
12
- }
13
- /**
14
- * To be called from the Workflow runtime library to set the native module reference
15
- */
16
- setIsolateExtension(isolateExtension) {
17
- this.isolateExtension = isolateExtension;
18
- isolateExtension.registerPromiseHook(this.hook.bind(this));
19
- }
20
- /**
21
- * Helper that ensures isolateExtension has been set
22
- */
23
- getIsolateExtension() {
24
- if (this.isolateExtension === undefined) {
25
- throw new common_1.IllegalStateError('HookManager has not been properly initialized');
26
- }
27
- return this.isolateExtension;
28
- }
29
- /**
30
- * Register a single promise hook callback
31
- */
32
- register(hook) {
33
- this.registeredHooks.add(hook);
34
- }
35
- /**
36
- * Deregister a single promise hook callback
37
- */
38
- deregister(hook) {
39
- this.registeredHooks.delete(hook);
40
- }
41
- /**
42
- * The PromiseHook implementation, calls all registered hooks
43
- */
44
- hook(t, p, pp) {
45
- for (const hook of this.registeredHooks) {
46
- hook(t, p, pp);
47
- }
48
- }
49
- /**
50
- * Get custom promise data for a promise hook
51
- */
52
- getPromiseData(p, hook) {
53
- const data = this.getIsolateExtension().getPromiseData(p);
54
- if (data) {
55
- return data.get(hook);
56
- }
57
- }
58
- /**
59
- * Set custom promise data for a promise hook
60
- */
61
- setPromiseData(p, hook, data) {
62
- const isolateExtension = this.getIsolateExtension();
63
- let mapping = isolateExtension.getPromiseData(p);
64
- if (!mapping) {
65
- mapping = new Map();
66
- isolateExtension.setPromiseData(p, mapping);
67
- }
68
- mapping.set(hook, data);
69
- }
70
- }
71
- exports.HookManager = HookManager;
72
- // Singleton instance
73
- HookManager.instance = new HookManager();
74
- //# sourceMappingURL=promise-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promise-hooks.js","sourceRoot":"","sources":["../src/promise-hooks.ts"],"names":[],"mappings":";;;AAAA,+CAAuD;AAkBvD;;GAEG;AACH,MAAa,WAAW;IAOtB;QANmB,oBAAe,GAAG,IAAI,GAAG,EAAe,CAAC;QAO1D,gDAAgD;IAClD,CAAC;IAKD;;OAEG;IACH,mBAAmB,CAAC,gBAAkC;QACpD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,MAAM,IAAI,0BAAiB,CAAC,+CAA+C,CAAC,CAAC;SAC9E;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAiB;QACxB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAiB;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,CAAW,EAAE,CAAe,EAAE,EAAiB;QAC5D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;SAChB;IACH,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,CAAe,EAAE,IAAiB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACvB;IACH,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,CAAe,EAAE,IAAiB,EAAE,IAAa;QACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,gBAAgB,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC7C;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;;AA5EH,kCA6EC;AAlEC,qBAAqB;AACP,oBAAQ,GAAG,IAAI,WAAW,EAAE,CAAC"}