@temporalio/workflow 0.9.0 → 0.13.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.
- package/LICENSE.md +1 -1
- package/README.md +4 -2
- package/lib/cancellation-scope.d.ts +1 -1
- package/lib/cancellation-scope.js.map +1 -1
- package/lib/dependencies.d.ts +8 -56
- package/lib/dependencies.js +3 -49
- package/lib/dependencies.js.map +1 -1
- package/lib/index.d.ts +12 -12
- package/lib/index.js +13 -13
- package/lib/index.js.map +1 -1
- package/lib/interceptors.d.ts +8 -11
- package/lib/interfaces.d.ts +3 -1
- package/lib/internals.d.ts +39 -13
- package/lib/internals.js +75 -26
- package/lib/internals.js.map +1 -1
- package/lib/trigger.d.ts +3 -5
- package/lib/trigger.js +3 -5
- package/lib/trigger.js.map +1 -1
- package/lib/worker-interface.d.ts +15 -46
- package/lib/worker-interface.js +76 -112
- package/lib/worker-interface.js.map +1 -1
- package/lib/workflow-handle.d.ts +21 -20
- package/lib/workflow.d.ts +142 -23
- package/lib/workflow.js +169 -89
- package/lib/workflow.js.map +1 -1
- package/package.json +6 -6
package/lib/internals.js
CHANGED
|
@@ -46,15 +46,33 @@ const cancellation_scope_1 = require("./cancellation-scope");
|
|
|
46
46
|
protobufjs.util.Long = long_1.default;
|
|
47
47
|
protobufjs.configure();
|
|
48
48
|
class Activator {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
constructor() {
|
|
50
|
+
this.workflowFunctionWasCalled = false;
|
|
51
|
+
}
|
|
52
|
+
async startWorkflowNextHandler({ args }) {
|
|
53
|
+
const { workflow } = exports.state;
|
|
54
|
+
if (workflow === undefined) {
|
|
51
55
|
throw new common_1.IllegalStateError('Workflow uninitialized');
|
|
52
56
|
}
|
|
53
|
-
|
|
57
|
+
let promise;
|
|
58
|
+
try {
|
|
59
|
+
promise = workflow(...args);
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
// Guarantee this runs even if there was an exception when invoking the Workflow function
|
|
63
|
+
// Otherwise this Workflow will now be queryable.
|
|
64
|
+
this.workflowFunctionWasCalled = true;
|
|
65
|
+
// Empty the buffer
|
|
66
|
+
const buffer = exports.state.bufferedQueries.splice(0);
|
|
67
|
+
for (const activation of buffer) {
|
|
68
|
+
this.queryWorkflow(activation);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return await promise;
|
|
54
72
|
}
|
|
55
73
|
startWorkflow(activation) {
|
|
56
|
-
const {
|
|
57
|
-
if (
|
|
74
|
+
const { info } = exports.state;
|
|
75
|
+
if (info === undefined) {
|
|
58
76
|
throw new common_1.IllegalStateError('Workflow has not been initialized');
|
|
59
77
|
}
|
|
60
78
|
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'execute', this.startWorkflowNextHandler.bind(this));
|
|
@@ -145,19 +163,23 @@ class Activator {
|
|
|
145
163
|
reject(await (0, common_1.failureToError)(failure, exports.state.dataConverter));
|
|
146
164
|
}
|
|
147
165
|
}
|
|
148
|
-
async queryWorkflowNextHandler(
|
|
149
|
-
const fn = exports.state.
|
|
166
|
+
async queryWorkflowNextHandler({ queryName, args }) {
|
|
167
|
+
const fn = exports.state.queryListeners.get(queryName);
|
|
150
168
|
if (fn === undefined) {
|
|
151
169
|
// Fail the query
|
|
152
|
-
throw new ReferenceError(`Workflow did not register a handler for ${
|
|
170
|
+
throw new ReferenceError(`Workflow did not register a handler for ${queryName}`);
|
|
153
171
|
}
|
|
154
|
-
const ret = fn(...
|
|
172
|
+
const ret = fn(...args);
|
|
155
173
|
if (ret instanceof Promise) {
|
|
156
174
|
throw new errors_1.DeterminismViolationError('Query handlers should not return a Promise');
|
|
157
175
|
}
|
|
158
176
|
return ret;
|
|
159
177
|
}
|
|
160
178
|
queryWorkflow(activation) {
|
|
179
|
+
if (!this.workflowFunctionWasCalled) {
|
|
180
|
+
exports.state.bufferedQueries.push(activation);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
161
183
|
const { queryType, queryId } = activation;
|
|
162
184
|
if (!(queryType && queryId)) {
|
|
163
185
|
throw new TypeError('Missing query activation attributes');
|
|
@@ -169,20 +191,29 @@ class Activator {
|
|
|
169
191
|
queryId,
|
|
170
192
|
}).then((result) => completeQuery(queryId, result), (reason) => failQuery(queryId, reason));
|
|
171
193
|
}
|
|
172
|
-
async signalWorkflowNextHandler(
|
|
173
|
-
|
|
194
|
+
async signalWorkflowNextHandler({ signalName, args }) {
|
|
195
|
+
const fn = exports.state.signalListeners.get(signalName);
|
|
196
|
+
if (fn === undefined) {
|
|
197
|
+
throw new common_1.IllegalStateError(`No registered signal listener for signal ${signalName}`);
|
|
198
|
+
}
|
|
199
|
+
return fn(...args);
|
|
174
200
|
}
|
|
175
201
|
signalWorkflow(activation) {
|
|
176
202
|
const { signalName } = activation;
|
|
177
203
|
if (!signalName) {
|
|
178
204
|
throw new TypeError('Missing activation signalName');
|
|
179
205
|
}
|
|
180
|
-
const fn = exports.state.
|
|
206
|
+
const fn = exports.state.signalListeners.get(signalName);
|
|
181
207
|
if (fn === undefined) {
|
|
182
|
-
|
|
183
|
-
|
|
208
|
+
let buffer = exports.state.bufferedSignals.get(signalName);
|
|
209
|
+
if (buffer === undefined) {
|
|
210
|
+
buffer = [];
|
|
211
|
+
exports.state.bufferedSignals.set(signalName, buffer);
|
|
212
|
+
}
|
|
213
|
+
buffer.push(activation);
|
|
214
|
+
return;
|
|
184
215
|
}
|
|
185
|
-
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'handleSignal', this.signalWorkflowNextHandler.bind(this
|
|
216
|
+
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'handleSignal', this.signalWorkflowNextHandler.bind(this));
|
|
186
217
|
execute({
|
|
187
218
|
args: (0, common_1.arrayFromPayloadsSync)(exports.state.dataConverter, activation.input),
|
|
188
219
|
signalName,
|
|
@@ -246,6 +277,26 @@ class State {
|
|
|
246
277
|
signalWorkflow: new Map(),
|
|
247
278
|
cancelWorkflow: new Map(),
|
|
248
279
|
};
|
|
280
|
+
/**
|
|
281
|
+
* Holds buffered signal calls until a listener is registered
|
|
282
|
+
*/
|
|
283
|
+
this.bufferedSignals = new Map();
|
|
284
|
+
/**
|
|
285
|
+
* Holds buffered query calls until a listener is registered.
|
|
286
|
+
*
|
|
287
|
+
* **IMPORTANT** queries are only buffered until workflow is started.
|
|
288
|
+
* This is required because async interceptors might block workflow function invocation
|
|
289
|
+
* which delays query handler registration.
|
|
290
|
+
*/
|
|
291
|
+
this.bufferedQueries = Array();
|
|
292
|
+
/**
|
|
293
|
+
* Mapping of signal name to listener
|
|
294
|
+
*/
|
|
295
|
+
this.signalListeners = new Map();
|
|
296
|
+
/**
|
|
297
|
+
* Mapping of signal name to listener
|
|
298
|
+
*/
|
|
299
|
+
this.queryListeners = new Map();
|
|
249
300
|
/**
|
|
250
301
|
* Loaded in {@link initRuntime}
|
|
251
302
|
*/
|
|
@@ -255,9 +306,10 @@ class State {
|
|
|
255
306
|
*/
|
|
256
307
|
this.commands = [];
|
|
257
308
|
/**
|
|
258
|
-
|
|
309
|
+
/**
|
|
310
|
+
* Stores all {@link condition}s that haven't been unblocked yet
|
|
259
311
|
*/
|
|
260
|
-
this.
|
|
312
|
+
this.blockedConditions = new Map();
|
|
261
313
|
/**
|
|
262
314
|
* Is this Workflow completed
|
|
263
315
|
*/
|
|
@@ -273,9 +325,9 @@ class State {
|
|
|
273
325
|
timer: 1,
|
|
274
326
|
activity: 1,
|
|
275
327
|
childWorkflow: 1,
|
|
276
|
-
dependency: 1,
|
|
277
328
|
signalWorkflow: 1,
|
|
278
329
|
cancelWorkflow: 1,
|
|
330
|
+
condition: 1,
|
|
279
331
|
};
|
|
280
332
|
/**
|
|
281
333
|
* This is set every time the workflow executes an activation
|
|
@@ -287,7 +339,6 @@ class State {
|
|
|
287
339
|
this.random = function () {
|
|
288
340
|
throw new common_1.IllegalStateError('Tried to use Math.random before Workflow has been initialized');
|
|
289
341
|
};
|
|
290
|
-
this.dependencies = {};
|
|
291
342
|
this.dataConverter = common_1.defaultDataConverter;
|
|
292
343
|
/**
|
|
293
344
|
* Patches we know the status of for this workflow, as in {@link patched}
|
|
@@ -297,6 +348,7 @@ class State {
|
|
|
297
348
|
* Patches we sent to core {@link patched}
|
|
298
349
|
*/
|
|
299
350
|
this.sentPatches = new Set();
|
|
351
|
+
this.externalCalls = Array();
|
|
300
352
|
}
|
|
301
353
|
get now() {
|
|
302
354
|
if (__classPrivateFieldGet(this, _State_now, "f") === undefined) {
|
|
@@ -307,13 +359,10 @@ class State {
|
|
|
307
359
|
set now(value) {
|
|
308
360
|
__classPrivateFieldSet(this, _State_now, value, "f");
|
|
309
361
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
return ret;
|
|
315
|
-
}
|
|
316
|
-
return [];
|
|
362
|
+
getAndResetExternalCalls() {
|
|
363
|
+
const { externalCalls } = this;
|
|
364
|
+
this.externalCalls = [];
|
|
365
|
+
return externalCalls;
|
|
317
366
|
}
|
|
318
367
|
/**
|
|
319
368
|
* Buffer a Workflow command to be collected at the end of the current activation.
|
package/lib/internals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
|
package/lib/trigger.d.ts
CHANGED
|
@@ -4,12 +4,10 @@
|
|
|
4
4
|
* Trigger is CancellationScope aware, it is linked to the current scope on
|
|
5
5
|
* construction and throws when that scope is cancelled.
|
|
6
6
|
*
|
|
7
|
-
* Useful for e.g. waiting for a
|
|
8
|
-
* @example
|
|
9
|
-
* <!--SNIPSTART nodejs-blocked-interface-->
|
|
10
|
-
* <!--SNIPEND-->
|
|
7
|
+
* Useful for e.g. waiting for unblocking a Workflow from a signal.
|
|
11
8
|
*
|
|
12
|
-
*
|
|
9
|
+
* @example
|
|
10
|
+
* <!--SNIPSTART typescript-blocked-workflow-->
|
|
13
11
|
* <!--SNIPEND-->
|
|
14
12
|
*/
|
|
15
13
|
export declare class Trigger<T> implements PromiseLike<T> {
|
package/lib/trigger.js
CHANGED
|
@@ -8,12 +8,10 @@ const cancellation_scope_1 = require("./cancellation-scope");
|
|
|
8
8
|
* Trigger is CancellationScope aware, it is linked to the current scope on
|
|
9
9
|
* construction and throws when that scope is cancelled.
|
|
10
10
|
*
|
|
11
|
-
* Useful for e.g. waiting for a
|
|
12
|
-
* @example
|
|
13
|
-
* <!--SNIPSTART nodejs-blocked-interface-->
|
|
14
|
-
* <!--SNIPEND-->
|
|
11
|
+
* Useful for e.g. waiting for unblocking a Workflow from a signal.
|
|
15
12
|
*
|
|
16
|
-
*
|
|
13
|
+
* @example
|
|
14
|
+
* <!--SNIPSTART typescript-blocked-workflow-->
|
|
17
15
|
* <!--SNIPEND-->
|
|
18
16
|
*/
|
|
19
17
|
class Trigger {
|
package/lib/trigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../src/trigger.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../src/trigger.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD;;;;;;;;;;;GAWG;AACH,MAAa,OAAO;IAclB;QACE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,sCAAiB,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,WAAW,EAAE;gBAClD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACrC;YACD,6DAA6D;YAC7D,aAAa;YACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,6DAA6D;YAC7D,aAAa;YACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,6BAA6B;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AA/BD,0BA+BC"}
|
|
@@ -1,45 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exported functions for the Worker to interact with the Workflow isolate
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
import ivm from 'isolated-vm';
|
|
7
1
|
import { WorkflowInfo } from './interfaces';
|
|
8
2
|
import { state } from './internals';
|
|
3
|
+
import { ExternalCall } from './dependencies';
|
|
9
4
|
import { IsolateExtension } from './promise-hooks';
|
|
10
|
-
import { ApplyMode, ExternalDependencyFunction, ExternalCall } from './dependencies';
|
|
11
5
|
export declare function setRequireFunc(fn: Exclude<typeof state['require'], undefined>): void;
|
|
12
6
|
export declare function overrideGlobals(): void;
|
|
13
|
-
/** Mock DOM element for Webpack dynamic imports */
|
|
14
|
-
export interface MockElement {
|
|
15
|
-
getAttribute(name: string): unknown;
|
|
16
|
-
setAttribute(name: string, value: unknown): void;
|
|
17
|
-
}
|
|
18
|
-
/** Mock document object for Webpack dynamic imports */
|
|
19
|
-
export interface MockDocument {
|
|
20
|
-
head: {
|
|
21
|
-
appendChild(): void;
|
|
22
|
-
};
|
|
23
|
-
getElementsByTagName(): MockElement[];
|
|
24
|
-
createElement(): MockElement;
|
|
25
|
-
}
|
|
26
7
|
/**
|
|
27
|
-
*
|
|
8
|
+
* Initialize the isolate runtime.
|
|
9
|
+
*
|
|
10
|
+
* Sets required internal state and instantiates the workflow and interceptors.
|
|
28
11
|
*/
|
|
29
|
-
export declare function
|
|
30
|
-
export
|
|
12
|
+
export declare function initRuntime(info: WorkflowInfo, interceptorModules: string[], randomnessSeed: number[], now: number, isolateExtension: IsolateExtension): Promise<void>;
|
|
13
|
+
export interface ActivationResult {
|
|
14
|
+
numBlockedConditions: number;
|
|
15
|
+
}
|
|
31
16
|
/**
|
|
32
17
|
* Run a chunk of activation jobs
|
|
33
18
|
* @returns a boolean indicating whether job was processed or ignored
|
|
34
19
|
*/
|
|
35
|
-
export declare function activate(encodedActivation: Uint8Array, batchIndex: number): Promise<
|
|
36
|
-
declare type ActivationConclusion = {
|
|
37
|
-
type: 'pending';
|
|
38
|
-
pendingExternalCalls: ExternalCall[];
|
|
39
|
-
} | {
|
|
40
|
-
type: 'complete';
|
|
41
|
-
encoded: Uint8Array;
|
|
42
|
-
};
|
|
20
|
+
export declare function activate(encodedActivation: Uint8Array, batchIndex: number): Promise<ActivationResult>;
|
|
43
21
|
/**
|
|
44
22
|
* Conclude a single activation.
|
|
45
23
|
* Should be called after processing all activation jobs and queued microtasks.
|
|
@@ -47,20 +25,11 @@ declare type ActivationConclusion = {
|
|
|
47
25
|
* Activation may be in either `complete` or `pending` state according to pending external dependency calls.
|
|
48
26
|
* Activation failures are handled in the main Node.js isolate.
|
|
49
27
|
*/
|
|
50
|
-
export declare function concludeActivation():
|
|
51
|
-
export declare function
|
|
28
|
+
export declare function concludeActivation(): Uint8Array;
|
|
29
|
+
export declare function getAndResetExternalCalls(): ExternalCall[];
|
|
52
30
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
|
|
56
|
-
export declare function inject(ifaceName: string, fnName: string, dependency: ivm.Reference<ExternalDependencyFunction>, applyMode: ApplyMode, transferOptions: ivm.TransferOptionsBidirectional): void;
|
|
57
|
-
export interface ExternalDependencyResult {
|
|
58
|
-
seq: number;
|
|
59
|
-
result: any;
|
|
60
|
-
error: any;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve external dependency function calls with given results.
|
|
31
|
+
* Loop through all blocked conditions, evaluate and unblock if possible.
|
|
32
|
+
*
|
|
33
|
+
* @returns number of unblocked conditions.
|
|
64
34
|
*/
|
|
65
|
-
export declare function
|
|
66
|
-
export {};
|
|
35
|
+
export declare function tryUnblockConditions(): number;
|
package/lib/worker-interface.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.tryUnblockConditions = exports.getAndResetExternalCalls = exports.concludeActivation = exports.activate = exports.initRuntime = exports.overrideGlobals = exports.setRequireFunc = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Exported functions for the Worker to interact with the Workflow isolate
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
4
9
|
const common_1 = require("@temporalio/common");
|
|
5
10
|
const coresdk_1 = require("@temporalio/proto/lib/coresdk");
|
|
6
11
|
const internals_1 = require("./internals");
|
|
7
12
|
const alea_1 = require("./alea");
|
|
8
|
-
const promise_hooks_1 = require("./promise-hooks");
|
|
9
13
|
const errors_1 = require("./errors");
|
|
10
|
-
const
|
|
14
|
+
const promise_hooks_1 = require("./promise-hooks");
|
|
11
15
|
function setRequireFunc(fn) {
|
|
12
16
|
internals_1.state.require = fn;
|
|
13
17
|
}
|
|
14
18
|
exports.setRequireFunc = setRequireFunc;
|
|
15
19
|
function overrideGlobals() {
|
|
16
20
|
const global = globalThis;
|
|
17
|
-
// Mock any weak reference
|
|
21
|
+
// Mock any weak reference because GC is non-deterministic and the effect is observable from the Workflow.
|
|
18
22
|
// WeakRef is implemented in V8 8.4 which is embedded in node >=14.6.0.
|
|
19
23
|
// Workflow developer will get a meaningful exception if they try to use these.
|
|
20
|
-
global.WeakMap = function () {
|
|
21
|
-
throw new errors_1.DeterminismViolationError('WeakMap cannot be used in workflows because v8 GC is non-deterministic');
|
|
22
|
-
};
|
|
23
|
-
global.WeakSet = function () {
|
|
24
|
-
throw new errors_1.DeterminismViolationError('WeakSet cannot be used in workflows because v8 GC is non-deterministic');
|
|
25
|
-
};
|
|
26
24
|
global.WeakRef = function () {
|
|
27
25
|
throw new errors_1.DeterminismViolationError('WeakRef cannot be used in workflows because v8 GC is non-deterministic');
|
|
28
26
|
};
|
|
27
|
+
global.FinalizationRegistry = function () {
|
|
28
|
+
throw new errors_1.DeterminismViolationError('FinalizationRegistry cannot be used in workflows because v8 GC is non-deterministic');
|
|
29
|
+
};
|
|
29
30
|
const OriginalDate = globalThis.Date;
|
|
30
31
|
global.Date = function (...args) {
|
|
31
32
|
if (args.length > 0) {
|
|
@@ -39,18 +40,22 @@ function overrideGlobals() {
|
|
|
39
40
|
global.Date.parse = OriginalDate.parse.bind(OriginalDate);
|
|
40
41
|
global.Date.UTC = OriginalDate.UTC.bind(OriginalDate);
|
|
41
42
|
global.Date.prototype = OriginalDate.prototype;
|
|
43
|
+
/**
|
|
44
|
+
* @param ms sleep duration - number of milliseconds. If given a negative number, value will be set to 1.
|
|
45
|
+
*/
|
|
42
46
|
global.setTimeout = function (cb, ms, ...args) {
|
|
47
|
+
ms = Math.max(1, ms);
|
|
43
48
|
const seq = internals_1.state.nextSeqs.timer++;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
});
|
|
49
|
+
// Create a Promise for AsyncLocalStorage to be able to track this completion using promise hooks.
|
|
50
|
+
new Promise((resolve, reject) => {
|
|
51
|
+
internals_1.state.completions.timer.set(seq, { resolve, reject });
|
|
52
|
+
internals_1.state.pushCommand({
|
|
53
|
+
startTimer: {
|
|
54
|
+
seq,
|
|
55
|
+
startToFireTimeout: (0, common_1.msToTs)(ms),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}).then(() => cb(...args), () => undefined /* ignore cancellation */);
|
|
54
59
|
return seq;
|
|
55
60
|
};
|
|
56
61
|
global.clearTimeout = function (handle) {
|
|
@@ -67,44 +72,27 @@ function overrideGlobals() {
|
|
|
67
72
|
}
|
|
68
73
|
exports.overrideGlobals = overrideGlobals;
|
|
69
74
|
/**
|
|
70
|
-
*
|
|
75
|
+
* Initialize the isolate runtime.
|
|
76
|
+
*
|
|
77
|
+
* Sets required internal state and instantiates the workflow and interceptors.
|
|
71
78
|
*/
|
|
72
|
-
function
|
|
73
|
-
const attrs = new Map();
|
|
74
|
-
const el = {
|
|
75
|
-
getAttribute: (name) => attrs.get(name),
|
|
76
|
-
setAttribute: (name, value) => {
|
|
77
|
-
attrs.set(name, value);
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
return {
|
|
81
|
-
head: {
|
|
82
|
-
appendChild: () => undefined,
|
|
83
|
-
},
|
|
84
|
-
getElementsByTagName: () => {
|
|
85
|
-
return [el];
|
|
86
|
-
},
|
|
87
|
-
createElement: () => {
|
|
88
|
-
return el;
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
exports.mockBrowserDocumentForWebpack = mockBrowserDocumentForWebpack;
|
|
93
|
-
async function initRuntime(info, interceptorModules, randomnessSeed, isolateExtension, encodedStartWorkflow) {
|
|
79
|
+
async function initRuntime(info, interceptorModules, randomnessSeed, now, isolateExtension) {
|
|
94
80
|
// Globals are overridden while building the isolate before loading user code.
|
|
95
81
|
// For some reason the `WeakRef` mock is not restored properly when creating an isolate from snapshot in node 14 (at least on ubuntu), override again.
|
|
96
82
|
globalThis.WeakRef = function () {
|
|
97
83
|
throw new errors_1.DeterminismViolationError('WeakRef cannot be used in workflows because v8 GC is non-deterministic');
|
|
98
84
|
};
|
|
99
85
|
internals_1.state.info = info;
|
|
86
|
+
internals_1.state.now = now;
|
|
100
87
|
internals_1.state.random = (0, alea_1.alea)(randomnessSeed);
|
|
101
88
|
promise_hooks_1.HookManager.instance.setIsolateExtension(isolateExtension);
|
|
102
89
|
const { require: req } = internals_1.state;
|
|
103
90
|
if (req === undefined) {
|
|
104
91
|
throw new common_1.IllegalStateError('Workflow has not been initialized');
|
|
105
92
|
}
|
|
106
|
-
for (const
|
|
107
|
-
const
|
|
93
|
+
for (const modName of interceptorModules) {
|
|
94
|
+
const mod = await req(modName);
|
|
95
|
+
const factory = mod.interceptors;
|
|
108
96
|
if (factory !== undefined) {
|
|
109
97
|
if (typeof factory !== 'function') {
|
|
110
98
|
throw new TypeError(`interceptors must be a function, got: ${factory}`);
|
|
@@ -115,27 +103,21 @@ async function initRuntime(info, interceptorModules, randomnessSeed, isolateExte
|
|
|
115
103
|
internals_1.state.interceptors.internals.push(...(interceptors.internals ?? []));
|
|
116
104
|
}
|
|
117
105
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
throw new TypeError(`'${info.workflowType}' is not a function`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
const failure = common_1.ApplicationFailure.nonRetryable((0, common_1.errorMessage)(err), 'ReferenceError');
|
|
129
|
-
failure.stack = failure.stack?.split('\n')[0];
|
|
130
|
-
throw failure;
|
|
106
|
+
let workflow;
|
|
107
|
+
try {
|
|
108
|
+
const mod = await req(undefined);
|
|
109
|
+
workflow = mod[info.workflowType];
|
|
110
|
+
if (typeof workflow !== 'function') {
|
|
111
|
+
throw new TypeError(`'${info.workflowType}' is not a function`);
|
|
131
112
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
const failure = common_1.ApplicationFailure.nonRetryable((0, common_1.errorMessage)(err), 'ReferenceError');
|
|
116
|
+
failure.stack = failure.stack?.split('\n')[0];
|
|
117
|
+
(0, internals_1.handleWorkflowFailure)(failure);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
internals_1.state.workflow = workflow;
|
|
139
121
|
}
|
|
140
122
|
exports.initRuntime = initRuntime;
|
|
141
123
|
/**
|
|
@@ -143,6 +125,7 @@ exports.initRuntime = initRuntime;
|
|
|
143
125
|
* @returns a boolean indicating whether job was processed or ignored
|
|
144
126
|
*/
|
|
145
127
|
async function activate(encodedActivation, batchIndex) {
|
|
128
|
+
const activation = coresdk_1.coresdk.workflow_activation.WFActivation.decodeDelimited(encodedActivation);
|
|
146
129
|
const intercept = (0, common_1.composeInterceptors)(internals_1.state.interceptors.internals, 'activate', async ({ activation, batchIndex }) => {
|
|
147
130
|
if (batchIndex === 0) {
|
|
148
131
|
if (internals_1.state.info === undefined) {
|
|
@@ -175,13 +158,16 @@ async function activate(encodedActivation, batchIndex) {
|
|
|
175
158
|
return;
|
|
176
159
|
}
|
|
177
160
|
await internals_1.state.activator[job.variant](variant /* TODO: TS is struggling with `true` and `{}` */);
|
|
161
|
+
tryUnblockConditions();
|
|
178
162
|
}));
|
|
179
163
|
});
|
|
180
164
|
await intercept({
|
|
181
|
-
activation
|
|
165
|
+
activation,
|
|
182
166
|
batchIndex,
|
|
183
167
|
});
|
|
184
|
-
return
|
|
168
|
+
return {
|
|
169
|
+
numBlockedConditions: internals_1.state.blockedConditions.size,
|
|
170
|
+
};
|
|
185
171
|
}
|
|
186
172
|
exports.activate = activate;
|
|
187
173
|
/**
|
|
@@ -192,64 +178,42 @@ exports.activate = activate;
|
|
|
192
178
|
* Activation failures are handled in the main Node.js isolate.
|
|
193
179
|
*/
|
|
194
180
|
function concludeActivation() {
|
|
195
|
-
const pendingExternalCalls = internals_1.state.getAndResetPendingExternalCalls();
|
|
196
|
-
if (pendingExternalCalls.length > 0) {
|
|
197
|
-
return { type: 'pending', pendingExternalCalls };
|
|
198
|
-
}
|
|
199
181
|
const intercept = (0, common_1.composeInterceptors)(internals_1.state.interceptors.internals, 'concludeActivation', (input) => input);
|
|
200
182
|
const { info } = internals_1.state;
|
|
201
183
|
const { commands } = intercept({ commands: internals_1.state.commands });
|
|
202
|
-
|
|
184
|
+
internals_1.state.commands = [];
|
|
185
|
+
return coresdk_1.coresdk.workflow_completion.WFActivationCompletion.encodeDelimited({
|
|
203
186
|
runId: info?.runId,
|
|
204
187
|
successful: { commands },
|
|
205
188
|
}).finish();
|
|
206
|
-
internals_1.state.commands = [];
|
|
207
|
-
return { type: 'complete', encoded };
|
|
208
189
|
}
|
|
209
190
|
exports.concludeActivation = concludeActivation;
|
|
210
|
-
function
|
|
211
|
-
return internals_1.state.
|
|
191
|
+
function getAndResetExternalCalls() {
|
|
192
|
+
return internals_1.state.getAndResetExternalCalls();
|
|
212
193
|
}
|
|
213
|
-
exports.
|
|
194
|
+
exports.getAndResetExternalCalls = getAndResetExternalCalls;
|
|
214
195
|
/**
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
|
|
218
|
-
function inject(ifaceName, fnName, dependency, applyMode, transferOptions) {
|
|
219
|
-
if (internals_1.state.dependencies[ifaceName] === undefined) {
|
|
220
|
-
internals_1.state.dependencies[ifaceName] = {};
|
|
221
|
-
}
|
|
222
|
-
if (applyMode === dependencies_1.ApplyMode.ASYNC) {
|
|
223
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => new Promise((resolve, reject) => {
|
|
224
|
-
const seq = internals_1.state.nextSeqs.dependency++;
|
|
225
|
-
internals_1.state.completions.dependency.set(seq, {
|
|
226
|
-
resolve,
|
|
227
|
-
reject,
|
|
228
|
-
});
|
|
229
|
-
internals_1.state.pendingExternalCalls.push({ ifaceName, fnName, args, seq });
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
else if (applyMode === dependencies_1.ApplyMode.ASYNC_IGNORED) {
|
|
233
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => internals_1.state.pendingExternalCalls.push({ ifaceName, fnName, args });
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => dependency[applyMode](undefined, args, transferOptions);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
exports.inject = inject;
|
|
240
|
-
/**
|
|
241
|
-
* Resolve external dependency function calls with given results.
|
|
196
|
+
* Loop through all blocked conditions, evaluate and unblock if possible.
|
|
197
|
+
*
|
|
198
|
+
* @returns number of unblocked conditions.
|
|
242
199
|
*/
|
|
243
|
-
function
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
200
|
+
function tryUnblockConditions() {
|
|
201
|
+
let numUnblocked = 0;
|
|
202
|
+
for (;;) {
|
|
203
|
+
const prevUnblocked = numUnblocked;
|
|
204
|
+
for (const [seq, cond] of internals_1.state.blockedConditions.entries()) {
|
|
205
|
+
if (cond.fn()) {
|
|
206
|
+
cond.resolve();
|
|
207
|
+
numUnblocked++;
|
|
208
|
+
// It is safe to delete elements during map iteration
|
|
209
|
+
internals_1.state.blockedConditions.delete(seq);
|
|
210
|
+
}
|
|
248
211
|
}
|
|
249
|
-
|
|
250
|
-
|
|
212
|
+
if (prevUnblocked === numUnblocked) {
|
|
213
|
+
break;
|
|
251
214
|
}
|
|
252
215
|
}
|
|
216
|
+
return numUnblocked;
|
|
253
217
|
}
|
|
254
|
-
exports.
|
|
218
|
+
exports.tryUnblockConditions = tryUnblockConditions;
|
|
255
219
|
//# sourceMappingURL=worker-interface.js.map
|