@calmo/task-runner 3.8.1 → 3.8.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.
- package/CHANGELOG.md +9 -0
- package/coverage/coverage-final.json +4 -3
- package/coverage/index.html +7 -7
- package/coverage/lcov-report/index.html +7 -7
- package/coverage/lcov-report/src/EventBus.ts.html +70 -34
- package/coverage/lcov-report/src/ExecutionConstants.ts.html +121 -0
- package/coverage/lcov-report/src/TaskGraphValidationError.ts.html +1 -1
- package/coverage/lcov-report/src/TaskGraphValidator.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunner.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunnerExecutionConfig.ts.html +1 -1
- package/coverage/lcov-report/src/TaskStateManager.ts.html +34 -34
- package/coverage/lcov-report/src/WorkflowExecutor.ts.html +151 -97
- package/coverage/lcov-report/src/contracts/ErrorTypes.ts.html +1 -1
- package/coverage/lcov-report/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/lcov-report/src/contracts/index.html +1 -1
- package/coverage/lcov-report/src/index.html +26 -11
- package/coverage/lcov-report/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/RetryingExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/StandardExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/index.html +1 -1
- package/coverage/lcov.info +216 -200
- package/coverage/src/EventBus.ts.html +70 -34
- package/coverage/src/ExecutionConstants.ts.html +121 -0
- package/coverage/src/TaskGraphValidationError.ts.html +1 -1
- package/coverage/src/TaskGraphValidator.ts.html +1 -1
- package/coverage/src/TaskRunner.ts.html +1 -1
- package/coverage/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/src/TaskRunnerExecutionConfig.ts.html +1 -1
- package/coverage/src/TaskStateManager.ts.html +34 -34
- package/coverage/src/WorkflowExecutor.ts.html +151 -97
- package/coverage/src/contracts/ErrorTypes.ts.html +1 -1
- package/coverage/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/src/contracts/index.html +1 -1
- package/coverage/src/index.html +26 -11
- package/coverage/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/RetryingExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/StandardExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/index.html +1 -1
- package/dist/EventBus.js +11 -2
- package/dist/EventBus.js.map +1 -1
- package/dist/ExecutionConstants.d.ts +12 -0
- package/dist/ExecutionConstants.js +13 -0
- package/dist/ExecutionConstants.js.map +1 -0
- package/dist/WorkflowExecutor.d.ts +4 -0
- package/dist/WorkflowExecutor.js +62 -49
- package/dist/WorkflowExecutor.js.map +1 -1
- package/package.json +1 -1
- package/src/EventBus.ts +27 -15
- package/src/ExecutionConstants.ts +12 -0
- package/src/WorkflowExecutor.ts +69 -51
- package/test-report.xml +155 -131
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>69/69</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>37/37</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>7/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>68/68</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -254,7 +254,25 @@
|
|
|
254
254
|
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
255
|
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
256
|
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
258
276
|
<span class="cline-any cline-neutral"> </span>
|
|
259
277
|
<span class="cline-any cline-neutral"> </span>
|
|
260
278
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -265,8 +283,8 @@
|
|
|
265
283
|
<span class="cline-any cline-neutral"> </span>
|
|
266
284
|
<span class="cline-any cline-neutral"> </span>
|
|
267
285
|
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-yes">64x</span>
|
|
269
286
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-yes">66x</span>
|
|
270
288
|
<span class="cline-any cline-neutral"> </span>
|
|
271
289
|
<span class="cline-any cline-neutral"> </span>
|
|
272
290
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -275,12 +293,12 @@
|
|
|
275
293
|
<span class="cline-any cline-neutral"> </span>
|
|
276
294
|
<span class="cline-any cline-neutral"> </span>
|
|
277
295
|
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">64x</span>
|
|
279
|
-
<span class="cline-any cline-yes">64x</span>
|
|
280
|
-
<span class="cline-any cline-yes">64x</span>
|
|
281
|
-
<span class="cline-any cline-yes">64x</span>
|
|
282
|
-
<span class="cline-any cline-yes">64x</span>
|
|
283
296
|
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-yes">66x</span>
|
|
298
|
+
<span class="cline-any cline-yes">66x</span>
|
|
299
|
+
<span class="cline-any cline-yes">66x</span>
|
|
300
|
+
<span class="cline-any cline-yes">66x</span>
|
|
301
|
+
<span class="cline-any cline-yes">66x</span>
|
|
284
302
|
<span class="cline-any cline-neutral"> </span>
|
|
285
303
|
<span class="cline-any cline-neutral"> </span>
|
|
286
304
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -292,11 +310,12 @@
|
|
|
292
310
|
<span class="cline-any cline-neutral"> </span>
|
|
293
311
|
<span class="cline-any cline-neutral"> </span>
|
|
294
312
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">64x</span>
|
|
296
|
-
<span class="cline-any cline-yes">64x</span>
|
|
297
313
|
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-yes">66x</span>
|
|
315
|
+
<span class="cline-any cline-yes">66x</span>
|
|
298
316
|
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-yes">66x</span>
|
|
300
319
|
<span class="cline-any cline-yes">3x</span>
|
|
301
320
|
<span class="cline-any cline-neutral"> </span>
|
|
302
321
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -305,22 +324,22 @@
|
|
|
305
324
|
<span class="cline-any cline-yes">3x</span>
|
|
306
325
|
<span class="cline-any cline-neutral"> </span>
|
|
307
326
|
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-yes">
|
|
327
|
+
<span class="cline-any cline-yes">63x</span>
|
|
309
328
|
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-yes">
|
|
329
|
+
<span class="cline-any cline-yes">63x</span>
|
|
311
330
|
<span class="cline-any cline-neutral"> </span>
|
|
312
331
|
<span class="cline-any cline-yes">11x</span>
|
|
313
332
|
<span class="cline-any cline-neutral"> </span>
|
|
314
333
|
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-yes">
|
|
334
|
+
<span class="cline-any cline-yes">63x</span>
|
|
316
335
|
<span class="cline-any cline-yes">11x</span>
|
|
317
336
|
<span class="cline-any cline-neutral"> </span>
|
|
318
337
|
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-yes">
|
|
338
|
+
<span class="cline-any cline-yes">63x</span>
|
|
320
339
|
<span class="cline-any cline-neutral"> </span>
|
|
321
|
-
<span class="cline-any cline-yes">
|
|
340
|
+
<span class="cline-any cline-yes">63x</span>
|
|
322
341
|
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">63x</span>
|
|
324
343
|
<span class="cline-any cline-neutral"> </span>
|
|
325
344
|
<span class="cline-any cline-neutral"> </span>
|
|
326
345
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -328,29 +347,31 @@
|
|
|
328
347
|
<span class="cline-any cline-neutral"> </span>
|
|
329
348
|
<span class="cline-any cline-neutral"> </span>
|
|
330
349
|
<span class="cline-any cline-neutral"> </span>
|
|
331
|
-
<span class="cline-any cline-yes">
|
|
350
|
+
<span class="cline-any cline-yes">111x</span>
|
|
332
351
|
<span class="cline-any cline-yes">2x</span>
|
|
333
352
|
<span class="cline-any cline-neutral"> </span>
|
|
334
353
|
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-yes">
|
|
354
|
+
<span class="cline-any cline-yes">109x</span>
|
|
336
355
|
<span class="cline-any cline-neutral"> </span>
|
|
337
356
|
<span class="cline-any cline-neutral"> </span>
|
|
338
|
-
<span class="cline-any cline-yes">
|
|
357
|
+
<span class="cline-any cline-yes">109x</span>
|
|
339
358
|
<span class="cline-any cline-yes">11x</span>
|
|
340
359
|
<span class="cline-any cline-neutral"> </span>
|
|
341
360
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">109x</span>
|
|
343
361
|
<span class="cline-any cline-neutral"> </span>
|
|
344
362
|
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-yes">98x</span>
|
|
345
364
|
<span class="cline-any cline-neutral"> </span>
|
|
346
365
|
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-yes">61x</span>
|
|
348
366
|
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-yes">61x</span>
|
|
350
|
-
<span class="cline-any cline-yes">61x</span>
|
|
351
|
-
<span class="cline-any cline-yes">61x</span>
|
|
352
367
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-yes">
|
|
368
|
+
<span class="cline-any cline-yes">63x</span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">63x</span>
|
|
371
|
+
<span class="cline-any cline-yes">63x</span>
|
|
372
|
+
<span class="cline-any cline-yes">63x</span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-yes">63x</span>
|
|
354
375
|
<span class="cline-any cline-yes">11x</span>
|
|
355
376
|
<span class="cline-any cline-neutral"> </span>
|
|
356
377
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -363,30 +384,47 @@
|
|
|
363
384
|
<span class="cline-any cline-neutral"> </span>
|
|
364
385
|
<span class="cline-any cline-neutral"> </span>
|
|
365
386
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-yes">
|
|
387
|
+
<span class="cline-any cline-yes">312x</span>
|
|
367
388
|
<span class="cline-any cline-neutral"> </span>
|
|
368
389
|
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-yes">
|
|
370
|
-
<span class="cline-any cline-yes">
|
|
390
|
+
<span class="cline-any cline-yes">312x</span>
|
|
391
|
+
<span class="cline-any cline-yes">151x</span>
|
|
371
392
|
<span class="cline-any cline-neutral"> </span>
|
|
372
393
|
<span class="cline-any cline-neutral"> </span>
|
|
373
394
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
395
|
+
<span class="cline-any cline-yes">312x</span>
|
|
375
396
|
<span class="cline-any cline-neutral"> </span>
|
|
376
397
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
378
|
-
<span class="cline-any cline-yes">
|
|
398
|
+
<span class="cline-any cline-yes">312x</span>
|
|
399
|
+
<span class="cline-any cline-yes">179x</span>
|
|
379
400
|
<span class="cline-any cline-neutral"> </span>
|
|
380
401
|
<span class="cline-any cline-neutral"> </span>
|
|
381
402
|
<span class="cline-any cline-neutral"> </span>
|
|
382
403
|
<span class="cline-any cline-yes">28x</span>
|
|
383
404
|
<span class="cline-any cline-neutral"> </span>
|
|
384
405
|
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-yes">
|
|
406
|
+
<span class="cline-any cline-yes">151x</span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-yes">151x</span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-yes">151x</span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-yes">151x</span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
|
+
<span class="cline-any cline-yes">151x</span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
418
|
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-
|
|
388
|
-
<span class="cline-any cline-
|
|
389
|
-
<span class="cline-any cline-
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-yes">151x</span>
|
|
427
|
+
<span class="cline-any cline-yes">151x</span>
|
|
390
428
|
<span class="cline-any cline-yes">7x</span>
|
|
391
429
|
<span class="cline-any cline-yes">7x</span>
|
|
392
430
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -420,7 +458,7 @@
|
|
|
420
458
|
<span class="cline-any cline-yes">2x</span>
|
|
421
459
|
<span class="cline-any cline-neutral"> </span>
|
|
422
460
|
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-yes">
|
|
461
|
+
<span class="cline-any cline-yes">145x</span>
|
|
424
462
|
<span class="cline-any cline-yes">1x</span>
|
|
425
463
|
<span class="cline-any cline-neutral"> </span>
|
|
426
464
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -428,20 +466,18 @@
|
|
|
428
466
|
<span class="cline-any cline-yes">1x</span>
|
|
429
467
|
<span class="cline-any cline-neutral"> </span>
|
|
430
468
|
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-yes">
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-yes">142x</span>
|
|
434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-yes">144x</span>
|
|
435
470
|
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-yes">144x</span>
|
|
472
|
+
<span class="cline-any cline-yes">144x</span>
|
|
436
473
|
<span class="cline-any cline-yes">142x</span>
|
|
437
474
|
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-yes">2x</span>
|
|
438
476
|
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-yes">149x</span>
|
|
440
477
|
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-yes">149x</span>
|
|
442
478
|
<span class="cline-any cline-neutral"> </span>
|
|
443
479
|
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-yes">
|
|
480
|
+
<span class="cline-any cline-yes">2x</span>
|
|
445
481
|
<span class="cline-any cline-neutral"> </span>
|
|
446
482
|
<span class="cline-any cline-neutral"> </span>
|
|
447
483
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -450,6 +486,7 @@ import { TaskResult } from "./TaskResult.js";
|
|
|
450
486
|
import { EventBus } from "./EventBus.js";
|
|
451
487
|
import { TaskStateManager } from "./TaskStateManager.js";
|
|
452
488
|
import { IExecutionStrategy } from "./strategies/IExecutionStrategy.js";
|
|
489
|
+
import { ExecutionConstants } from "./ExecutionConstants.js";
|
|
453
490
|
|
|
454
491
|
/**
|
|
455
492
|
* Handles the execution of the workflow steps.
|
|
@@ -489,7 +526,7 @@ export class WorkflowExecutor<TContext> {
|
|
|
489
526
|
// Check if already aborted
|
|
490
527
|
if (signal?.aborted) {
|
|
491
528
|
this.stateManager.cancelAllPending(
|
|
492
|
-
|
|
529
|
+
ExecutionConstants.CANCELLED_BEFORE_START
|
|
493
530
|
);
|
|
494
531
|
const results = this.stateManager.getResults();
|
|
495
532
|
this.eventBus.emit("workflowEnd", { context: this.context, results });
|
|
@@ -500,7 +537,7 @@ export class WorkflowExecutor<TContext> {
|
|
|
500
537
|
|
|
501
538
|
const onAbort = () => {
|
|
502
539
|
// Mark all pending tasks as cancelled
|
|
503
|
-
this.stateManager.cancelAllPending(
|
|
540
|
+
this.stateManager.cancelAllPending(ExecutionConstants.WORKFLOW_CANCELLED);
|
|
504
541
|
};
|
|
505
542
|
|
|
506
543
|
if (signal) {
|
|
@@ -527,7 +564,9 @@ export class WorkflowExecutor<TContext> {
|
|
|
527
564
|
}
|
|
528
565
|
|
|
529
566
|
if (signal?.aborted) {
|
|
530
|
-
this.stateManager.cancelAllPending(
|
|
567
|
+
this.stateManager.cancelAllPending(
|
|
568
|
+
ExecutionConstants.WORKFLOW_CANCELLED
|
|
569
|
+
);
|
|
531
570
|
} else {
|
|
532
571
|
// After a task finishes, check for new work
|
|
533
572
|
this.processLoop(executingPromises, signal);
|
|
@@ -535,7 +574,7 @@ export class WorkflowExecutor<TContext> {
|
|
|
535
574
|
}
|
|
536
575
|
|
|
537
576
|
// Ensure everything is accounted for (e.g. if loop exited early)
|
|
538
|
-
this.stateManager.cancelAllPending(
|
|
577
|
+
this.stateManager.cancelAllPending(ExecutionConstants.WORKFLOW_CANCELLED);
|
|
539
578
|
|
|
540
579
|
const results = this.stateManager.getResults();
|
|
541
580
|
this.eventBus.emit("workflowEnd", { context: this.context, results });
|
|
@@ -575,64 +614,79 @@ export class WorkflowExecutor<TContext> {
|
|
|
575
614
|
|
|
576
615
|
const step = this.readyQueue.shift()!;
|
|
577
616
|
|
|
578
|
-
const taskPromise = (
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
617
|
+
const taskPromise = this.executeTaskStep(step, signal)
|
|
618
|
+
.finally(() => {
|
|
619
|
+
executingPromises.delete(taskPromise);
|
|
620
|
+
// When a task finishes, we try to run more
|
|
621
|
+
this.processLoop(executingPromises, signal);
|
|
622
|
+
});
|
|
583
623
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
message: "Cancelled during condition evaluation.",
|
|
588
|
-
});
|
|
589
|
-
return;
|
|
590
|
-
}
|
|
624
|
+
executingPromises.add(taskPromise);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
591
627
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
status: "failure",
|
|
604
|
-
message:
|
|
605
|
-
error instanceof Error
|
|
606
|
-
? error.message
|
|
607
|
-
: "Condition evaluation failed",
|
|
608
|
-
error: error instanceof Error ? error.message : String(error),
|
|
609
|
-
};
|
|
610
|
-
this.stateManager.markCompleted(step, result);
|
|
611
|
-
return;
|
|
612
|
-
}
|
|
628
|
+
/**
|
|
629
|
+
* Executes a single task step, handling conditions and status updates.
|
|
630
|
+
*/
|
|
631
|
+
private async executeTaskStep(
|
|
632
|
+
step: TaskStep<TContext>,
|
|
633
|
+
signal?: AbortSignal
|
|
634
|
+
): Promise<void> {
|
|
635
|
+
try {
|
|
636
|
+
if (step.condition) {
|
|
637
|
+
const check = step.condition(this.context);
|
|
638
|
+
const shouldRun = check instanceof Promise ? await check : check;
|
|
613
639
|
|
|
614
640
|
if (signal?.aborted) {
|
|
615
641
|
this.stateManager.markCompleted(step, {
|
|
616
642
|
status: "cancelled",
|
|
617
|
-
message:
|
|
643
|
+
message: ExecutionConstants.CANCELLED_DURING_CONDITION,
|
|
618
644
|
});
|
|
619
645
|
return;
|
|
620
646
|
}
|
|
621
647
|
|
|
622
|
-
|
|
648
|
+
if (!shouldRun) {
|
|
649
|
+
const result: TaskResult = {
|
|
650
|
+
status: "skipped",
|
|
651
|
+
message: ExecutionConstants.SKIPPED_BY_CONDITION,
|
|
652
|
+
};
|
|
653
|
+
this.stateManager.markSkipped(step, result);
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
} catch (error) {
|
|
658
|
+
const result: TaskResult = {
|
|
659
|
+
status: "failure",
|
|
660
|
+
message:
|
|
661
|
+
error instanceof Error
|
|
662
|
+
? error.message
|
|
663
|
+
: ExecutionConstants.CONDITION_EVALUATION_FAILED,
|
|
664
|
+
error: error instanceof Error ? error.message : String(error),
|
|
665
|
+
};
|
|
666
|
+
this.stateManager.markCompleted(step, result);
|
|
667
|
+
return;
|
|
668
|
+
}
|
|
623
669
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
});
|
|
629
|
-
})().finally(() => {
|
|
630
|
-
executingPromises.delete(taskPromise);
|
|
631
|
-
// When a task finishes, we try to run more
|
|
632
|
-
this.processLoop(executingPromises, signal);
|
|
670
|
+
if (signal?.aborted) {
|
|
671
|
+
this.stateManager.markCompleted(step, {
|
|
672
|
+
status: "cancelled",
|
|
673
|
+
message: ExecutionConstants.TASK_CANCELLED_BEFORE_START,
|
|
633
674
|
});
|
|
675
|
+
return;
|
|
676
|
+
}
|
|
634
677
|
|
|
635
|
-
|
|
678
|
+
this.stateManager.markRunning(step);
|
|
679
|
+
|
|
680
|
+
try {
|
|
681
|
+
const result = await this.strategy.execute(step, this.context, signal);
|
|
682
|
+
this.stateManager.markCompleted(step, result);
|
|
683
|
+
} catch (error) {
|
|
684
|
+
const result: TaskResult = {
|
|
685
|
+
status: "failure",
|
|
686
|
+
message: ExecutionConstants.EXECUTION_STRATEGY_FAILED,
|
|
687
|
+
error: error instanceof Error ? error.message : String(error),
|
|
688
|
+
};
|
|
689
|
+
this.stateManager.markCompleted(step, result);
|
|
636
690
|
}
|
|
637
691
|
}
|
|
638
692
|
}
|
|
@@ -643,7 +697,7 @@ export class WorkflowExecutor<TContext> {
|
|
|
643
697
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
644
698
|
Code coverage generated by
|
|
645
699
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
646
|
-
at 2026-01-21T01:
|
|
700
|
+
at 2026-01-21T01:20:30.163Z
|
|
647
701
|
</div>
|
|
648
702
|
<script src="../prettify.js"></script>
|
|
649
703
|
<script>
|
|
@@ -88,7 +88,7 @@ export const ERROR_CYCLE = "cycle" as const;
|
|
|
88
88
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
89
89
|
Code coverage generated by
|
|
90
90
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
91
|
-
at 2026-01-21T01:
|
|
91
|
+
at 2026-01-21T01:20:30.163Z
|
|
92
92
|
</div>
|
|
93
93
|
<script src="../../prettify.js"></script>
|
|
94
94
|
<script>
|
|
@@ -202,7 +202,7 @@ export type ListenerMap<TContext> = {
|
|
|
202
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
203
203
|
Code coverage generated by
|
|
204
204
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
205
|
-
at 2026-01-21T01:
|
|
205
|
+
at 2026-01-21T01:20:30.163Z
|
|
206
206
|
</div>
|
|
207
207
|
<script src="../../prettify.js"></script>
|
|
208
208
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-01-21T01:
|
|
119
|
+
at 2026-01-21T01:20:30.163Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>261/261</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>99/99</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>258/258</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,13 +84,28 @@
|
|
|
84
84
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
86
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
87
|
+
<td data-value="17" class="abs high">17/17</td>
|
|
88
88
|
<td data-value="100" class="pct high">100%</td>
|
|
89
89
|
<td data-value="8" class="abs high">8/8</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
|
-
<td data-value="
|
|
91
|
+
<td data-value="6" class="abs high">6/6</td>
|
|
92
92
|
<td data-value="100" class="pct high">100%</td>
|
|
93
|
-
<td data-value="
|
|
93
|
+
<td data-value="17" class="abs high">17/17</td>
|
|
94
|
+
</tr>
|
|
95
|
+
|
|
96
|
+
<tr>
|
|
97
|
+
<td class="file high" data-value="ExecutionConstants.ts"><a href="ExecutionConstants.ts.html">ExecutionConstants.ts</a></td>
|
|
98
|
+
<td data-value="100" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
|
+
</td>
|
|
101
|
+
<td data-value="100" class="pct high">100%</td>
|
|
102
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
103
|
+
<td data-value="100" class="pct high">100%</td>
|
|
104
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
105
|
+
<td data-value="100" class="pct high">100%</td>
|
|
106
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
107
|
+
<td data-value="100" class="pct high">100%</td>
|
|
108
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
94
109
|
</tr>
|
|
95
110
|
|
|
96
111
|
<tr>
|
|
@@ -189,13 +204,13 @@
|
|
|
189
204
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
190
205
|
</td>
|
|
191
206
|
<td data-value="100" class="pct high">100%</td>
|
|
192
|
-
<td data-value="
|
|
207
|
+
<td data-value="69" class="abs high">69/69</td>
|
|
193
208
|
<td data-value="100" class="pct high">100%</td>
|
|
194
|
-
<td data-value="
|
|
209
|
+
<td data-value="37" class="abs high">37/37</td>
|
|
195
210
|
<td data-value="100" class="pct high">100%</td>
|
|
196
|
-
<td data-value="
|
|
211
|
+
<td data-value="7" class="abs high">7/7</td>
|
|
197
212
|
<td data-value="100" class="pct high">100%</td>
|
|
198
|
-
<td data-value="
|
|
213
|
+
<td data-value="68" class="abs high">68/68</td>
|
|
199
214
|
</tr>
|
|
200
215
|
|
|
201
216
|
</tbody>
|
|
@@ -206,7 +221,7 @@
|
|
|
206
221
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
207
222
|
Code coverage generated by
|
|
208
223
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
209
|
-
at 2026-01-21T01:
|
|
224
|
+
at 2026-01-21T01:20:30.163Z
|
|
210
225
|
</div>
|
|
211
226
|
<script src="../prettify.js"></script>
|
|
212
227
|
<script>
|
|
@@ -163,7 +163,7 @@ export class DryRunExecutionStrategy<
|
|
|
163
163
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
164
164
|
Code coverage generated by
|
|
165
165
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
166
|
-
at 2026-01-21T01:
|
|
166
|
+
at 2026-01-21T01:20:30.163Z
|
|
167
167
|
</div>
|
|
168
168
|
<script src="../../prettify.js"></script>
|
|
169
169
|
<script>
|
|
@@ -358,7 +358,7 @@ export class RetryingExecutionStrategy<
|
|
|
358
358
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
359
|
Code coverage generated by
|
|
360
360
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
361
|
-
at 2026-01-21T01:
|
|
361
|
+
at 2026-01-21T01:20:30.163Z
|
|
362
362
|
</div>
|
|
363
363
|
<script src="../../prettify.js"></script>
|
|
364
364
|
<script>
|
|
@@ -175,7 +175,7 @@ export class StandardExecutionStrategy<
|
|
|
175
175
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
176
176
|
Code coverage generated by
|
|
177
177
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
178
|
-
at 2026-01-21T01:
|
|
178
|
+
at 2026-01-21T01:20:30.163Z
|
|
179
179
|
</div>
|
|
180
180
|
<script src="../../prettify.js"></script>
|
|
181
181
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-01-21T01:
|
|
134
|
+
at 2026-01-21T01:20:30.163Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|