@calmo/task-runner 3.1.0 → 3.3.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/AGENTS.md +4 -0
- package/CHANGELOG.md +30 -0
- package/coverage/coverage-final.json +7 -6
- package/coverage/index.html +12 -12
- package/coverage/lcov-report/index.html +12 -12
- package/coverage/lcov-report/src/EventBus.ts.html +4 -4
- package/coverage/lcov-report/src/TaskGraphValidator.ts.html +33 -33
- package/coverage/lcov-report/src/TaskRunner.ts.html +30 -18
- package/coverage/lcov-report/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunnerExecutionConfig.ts.html +17 -2
- package/coverage/lcov-report/src/TaskStateManager.ts.html +35 -35
- package/coverage/lcov-report/src/WorkflowExecutor.ts.html +94 -34
- 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 +7 -7
- package/coverage/lcov-report/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/RetryingExecutionStrategy.ts.html +355 -0
- package/coverage/lcov-report/src/strategies/StandardExecutionStrategy.ts.html +3 -3
- package/coverage/lcov-report/src/strategies/index.html +20 -5
- package/coverage/lcov.info +328 -240
- package/coverage/src/EventBus.ts.html +4 -4
- package/coverage/src/TaskGraphValidator.ts.html +33 -33
- package/coverage/src/TaskRunner.ts.html +30 -18
- package/coverage/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/src/TaskRunnerExecutionConfig.ts.html +17 -2
- package/coverage/src/TaskStateManager.ts.html +35 -35
- package/coverage/src/WorkflowExecutor.ts.html +94 -34
- package/coverage/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/src/contracts/index.html +1 -1
- package/coverage/src/index.html +7 -7
- package/coverage/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/RetryingExecutionStrategy.ts.html +355 -0
- package/coverage/src/strategies/StandardExecutionStrategy.ts.html +3 -3
- package/coverage/src/strategies/index.html +20 -5
- package/dist/TaskRunner.js +3 -2
- package/dist/TaskRunner.js.map +1 -1
- package/dist/TaskRunnerExecutionConfig.d.ts +5 -0
- package/dist/TaskStep.d.ts +3 -0
- package/dist/WorkflowExecutor.d.ts +4 -1
- package/dist/WorkflowExecutor.js +19 -4
- package/dist/WorkflowExecutor.js.map +1 -1
- package/dist/contracts/TaskRetryConfig.d.ts +8 -0
- package/dist/contracts/TaskRetryConfig.js +2 -0
- package/dist/contracts/TaskRetryConfig.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/strategies/RetryingExecutionStrategy.d.ts +12 -0
- package/dist/strategies/RetryingExecutionStrategy.js +74 -0
- package/dist/strategies/RetryingExecutionStrategy.js.map +1 -0
- package/openspec/changes/archive/2026-01-18-add-task-retry-policy/tasks.md +10 -0
- package/openspec/changes/archive/2026-01-18-add-workflow-preview/tasks.md +7 -0
- package/openspec/project.md +1 -0
- package/package.json +1 -1
- package/src/TaskRunner.ts +6 -2
- package/src/TaskRunnerExecutionConfig.ts +5 -0
- package/src/TaskStep.ts +3 -0
- package/src/WorkflowExecutor.ts +24 -4
- package/src/contracts/TaskRetryConfig.ts +8 -0
- package/src/index.ts +2 -0
- package/src/strategies/RetryingExecutionStrategy.ts +90 -0
- package/test-report.xml +122 -92
- package/openspec/changes/add-task-retry-policy/tasks.md +0 -10
- package/openspec/changes/add-workflow-preview/tasks.md +0 -7
- /package/openspec/changes/{add-task-retry-policy → archive/2026-01-18-add-task-retry-policy}/proposal.md +0 -0
- /package/openspec/changes/{add-workflow-preview → archive/2026-01-18-add-workflow-preview}/proposal.md +0 -0
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
<span class="cline-any cline-neutral"> </span>
|
|
159
159
|
<span class="cline-any cline-neutral"> </span>
|
|
160
160
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-yes">
|
|
161
|
+
<span class="cline-any cline-yes">62x</span>
|
|
162
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
163
|
<span class="cline-any cline-neutral"> </span>
|
|
164
164
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -205,10 +205,10 @@
|
|
|
205
205
|
<span class="cline-any cline-neutral"> </span>
|
|
206
206
|
<span class="cline-any cline-neutral"> </span>
|
|
207
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
208
|
+
<span class="cline-any cline-yes">342x</span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
210
|
<span class="cline-any cline-neutral"> </span>
|
|
211
|
-
<span class="cline-any cline-yes">
|
|
211
|
+
<span class="cline-any cline-yes">342x</span>
|
|
212
212
|
<span class="cline-any cline-yes">14x</span>
|
|
213
213
|
<span class="cline-any cline-yes">14x</span>
|
|
214
214
|
<span class="cline-any cline-yes">14x</span>
|
|
@@ -322,7 +322,7 @@ export class EventBus<TContext> {
|
|
|
322
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
323
323
|
Code coverage generated by
|
|
324
324
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
325
|
-
at 2026-01-
|
|
325
|
+
at 2026-01-18T20:12:36.619Z
|
|
326
326
|
</div>
|
|
327
327
|
<script src="../prettify.js"></script>
|
|
328
328
|
<script>
|
|
@@ -243,25 +243,25 @@
|
|
|
243
243
|
<span class="cline-any cline-neutral"> </span>
|
|
244
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
246
|
+
<span class="cline-any cline-yes">60x</span>
|
|
247
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
248
|
<span class="cline-any cline-neutral"> </span>
|
|
249
|
-
<span class="cline-any cline-yes">
|
|
250
|
-
<span class="cline-any cline-yes">
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
249
|
+
<span class="cline-any cline-yes">60x</span>
|
|
250
|
+
<span class="cline-any cline-yes">60x</span>
|
|
251
|
+
<span class="cline-any cline-yes">20157x</span>
|
|
252
252
|
<span class="cline-any cline-yes">3x</span>
|
|
253
253
|
<span class="cline-any cline-neutral"> </span>
|
|
254
254
|
<span class="cline-any cline-neutral"> </span>
|
|
255
255
|
<span class="cline-any cline-neutral"> </span>
|
|
256
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">20154x</span>
|
|
259
259
|
<span class="cline-any cline-neutral"> </span>
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-yes">
|
|
264
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">60x</span>
|
|
264
|
+
<span class="cline-any cline-yes">20157x</span>
|
|
265
265
|
<span class="cline-any cline-yes">20168x</span>
|
|
266
266
|
<span class="cline-any cline-yes">6x</span>
|
|
267
267
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -274,9 +274,9 @@
|
|
|
274
274
|
<span class="cline-any cline-neutral"> </span>
|
|
275
275
|
<span class="cline-any cline-neutral"> </span>
|
|
276
276
|
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
277
|
+
<span class="cline-any cline-yes">60x</span>
|
|
278
278
|
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-yes">
|
|
279
|
+
<span class="cline-any cline-yes">60x</span>
|
|
280
280
|
<span class="cline-any cline-yes">5x</span>
|
|
281
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
282
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -284,21 +284,21 @@
|
|
|
284
284
|
<span class="cline-any cline-neutral"> </span>
|
|
285
285
|
<span class="cline-any cline-neutral"> </span>
|
|
286
286
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
288
|
-
<span class="cline-any cline-yes">
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
287
|
+
<span class="cline-any cline-yes">55x</span>
|
|
288
|
+
<span class="cline-any cline-yes">55x</span>
|
|
289
|
+
<span class="cline-any cline-yes">20149x</span>
|
|
290
290
|
<span class="cline-any cline-neutral"> </span>
|
|
291
291
|
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-yes">
|
|
293
|
-
<span class="cline-any cline-yes">
|
|
292
|
+
<span class="cline-any cline-yes">55x</span>
|
|
293
|
+
<span class="cline-any cline-yes">55x</span>
|
|
294
294
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
296
|
-
<span class="cline-any cline-yes">
|
|
295
|
+
<span class="cline-any cline-yes">55x</span>
|
|
296
|
+
<span class="cline-any cline-yes">20142x</span>
|
|
297
297
|
<span class="cline-any cline-yes">3x</span>
|
|
298
298
|
<span class="cline-any cline-neutral"> </span>
|
|
299
299
|
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-yes">
|
|
301
|
-
<span class="cline-any cline-yes">
|
|
300
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
301
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
302
302
|
<span class="cline-any cline-neutral"> </span>
|
|
303
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
304
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -315,7 +315,7 @@
|
|
|
315
315
|
<span class="cline-any cline-neutral"> </span>
|
|
316
316
|
<span class="cline-any cline-neutral"> </span>
|
|
317
317
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
318
|
+
<span class="cline-any cline-yes">55x</span>
|
|
319
319
|
<span class="cline-any cline-neutral"> </span>
|
|
320
320
|
<span class="cline-any cline-neutral"> </span>
|
|
321
321
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -339,24 +339,24 @@
|
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
341
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
343
343
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-yes">
|
|
346
|
-
<span class="cline-any cline-yes">
|
|
344
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
345
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
346
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
347
347
|
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-yes">
|
|
348
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
349
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
350
|
<span class="cline-any cline-neutral"> </span>
|
|
351
351
|
<span class="cline-any cline-neutral"> </span>
|
|
352
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
353
|
<span class="cline-any cline-neutral"> </span>
|
|
354
354
|
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-yes">
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
355
|
+
<span class="cline-any cline-yes">20139x</span>
|
|
356
|
+
<span class="cline-any cline-yes">40293x</span>
|
|
357
|
+
<span class="cline-any cline-yes">40293x</span>
|
|
358
358
|
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">40293x</span>
|
|
360
360
|
<span class="cline-any cline-yes">20159x</span>
|
|
361
361
|
<span class="cline-any cline-yes">20159x</span>
|
|
362
362
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -380,13 +380,13 @@
|
|
|
380
380
|
<span class="cline-any cline-neutral"> </span>
|
|
381
381
|
<span class="cline-any cline-neutral"> </span>
|
|
382
382
|
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
384
|
-
<span class="cline-any cline-yes">
|
|
385
|
-
<span class="cline-any cline-yes">
|
|
383
|
+
<span class="cline-any cline-yes">20134x</span>
|
|
384
|
+
<span class="cline-any cline-yes">20134x</span>
|
|
385
|
+
<span class="cline-any cline-yes">20134x</span>
|
|
386
386
|
<span class="cline-any cline-neutral"> </span>
|
|
387
387
|
<span class="cline-any cline-neutral"> </span>
|
|
388
388
|
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-yes">
|
|
389
|
+
<span class="cline-any cline-yes">20134x</span>
|
|
390
390
|
<span class="cline-any cline-neutral"> </span>
|
|
391
391
|
<span class="cline-any cline-neutral"> </span>
|
|
392
392
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ITaskGraphValidator } from "./contracts/ITaskGraphValidator.js";
|
|
@@ -559,7 +559,7 @@ export class TaskGraphValidator implements ITaskGraphValidator {
|
|
|
559
559
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
560
560
|
Code coverage generated by
|
|
561
561
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
562
|
-
at 2026-01-
|
|
562
|
+
at 2026-01-18T20:12:36.619Z
|
|
563
563
|
</div>
|
|
564
564
|
<script src="../prettify.js"></script>
|
|
565
565
|
<script>
|
|
@@ -256,7 +256,11 @@
|
|
|
256
256
|
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
257
|
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
258
|
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
260
264
|
<span class="cline-any cline-neutral"> </span>
|
|
261
265
|
<span class="cline-any cline-neutral"> </span>
|
|
262
266
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -278,14 +282,17 @@
|
|
|
278
282
|
<span class="cline-any cline-neutral"> </span>
|
|
279
283
|
<span class="cline-any cline-neutral"> </span>
|
|
280
284
|
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-yes">52x</span>
|
|
282
|
-
<span class="cline-any cline-yes">52x</span>
|
|
283
|
-
<span class="cline-any cline-yes">52x</span>
|
|
284
285
|
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-yes">56x</span>
|
|
287
|
+
<span class="cline-any cline-yes">56x</span>
|
|
288
|
+
<span class="cline-any cline-yes">56x</span>
|
|
285
289
|
<span class="cline-any cline-neutral"> </span>
|
|
286
290
|
<span class="cline-any cline-neutral"> </span>
|
|
287
291
|
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-yes">56x</span>
|
|
289
296
|
<span class="cline-any cline-neutral"> </span>
|
|
290
297
|
<span class="cline-any cline-neutral"> </span>
|
|
291
298
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -384,26 +391,27 @@
|
|
|
384
391
|
<span class="cline-any cline-neutral"> </span>
|
|
385
392
|
<span class="cline-any cline-neutral"> </span>
|
|
386
393
|
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-yes">
|
|
388
|
-
<span class="cline-any cline-yes">
|
|
394
|
+
<span class="cline-any cline-yes">51x</span>
|
|
395
|
+
<span class="cline-any cline-yes">139x</span>
|
|
389
396
|
<span class="cline-any cline-neutral"> </span>
|
|
390
397
|
<span class="cline-any cline-neutral"> </span>
|
|
391
398
|
<span class="cline-any cline-neutral"> </span>
|
|
392
399
|
<span class="cline-any cline-neutral"> </span>
|
|
393
400
|
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-yes">
|
|
395
|
-
<span class="cline-any cline-yes">
|
|
401
|
+
<span class="cline-any cline-yes">51x</span>
|
|
402
|
+
<span class="cline-any cline-yes">51x</span>
|
|
396
403
|
<span class="cline-any cline-yes">8x</span>
|
|
397
404
|
<span class="cline-any cline-neutral"> </span>
|
|
398
405
|
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-yes">
|
|
406
|
+
<span class="cline-any cline-yes">43x</span>
|
|
400
407
|
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
402
|
-
<span class="cline-any cline-yes">
|
|
408
|
+
<span class="cline-any cline-yes">43x</span>
|
|
409
|
+
<span class="cline-any cline-yes">43x</span>
|
|
403
410
|
<span class="cline-any cline-yes">2x</span>
|
|
404
411
|
<span class="cline-any cline-neutral"> </span>
|
|
405
412
|
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-yes">
|
|
413
|
+
<span class="cline-any cline-yes">43x</span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
415
|
<span class="cline-any cline-neutral"> </span>
|
|
408
416
|
<span class="cline-any cline-neutral"> </span>
|
|
409
417
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -411,7 +419,7 @@
|
|
|
411
419
|
<span class="cline-any cline-neutral"> </span>
|
|
412
420
|
<span class="cline-any cline-neutral"> </span>
|
|
413
421
|
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-yes">
|
|
422
|
+
<span class="cline-any cline-yes">51x</span>
|
|
415
423
|
<span class="cline-any cline-yes">5x</span>
|
|
416
424
|
<span class="cline-any cline-yes">5x</span>
|
|
417
425
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -445,7 +453,7 @@
|
|
|
445
453
|
<span class="cline-any cline-neutral"> </span>
|
|
446
454
|
<span class="cline-any cline-neutral"> </span>
|
|
447
455
|
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-yes">
|
|
456
|
+
<span class="cline-any cline-yes">38x</span>
|
|
449
457
|
<span class="cline-any cline-neutral"> </span>
|
|
450
458
|
<span class="cline-any cline-neutral"> </span>
|
|
451
459
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -460,6 +468,7 @@ import { TaskRunnerExecutionConfig } from "./TaskRunnerExecutionConfig.js";
|
|
|
460
468
|
import { TaskStateManager } from "./TaskStateManager.js";
|
|
461
469
|
import { IExecutionStrategy } from "./strategies/IExecutionStrategy.js";
|
|
462
470
|
import { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
471
|
+
import { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
463
472
|
import { DryRunExecutionStrategy } from "./strategies/DryRunExecutionStrategy.js";
|
|
464
473
|
|
|
465
474
|
// Re-export types for backward compatibility
|
|
@@ -473,7 +482,9 @@ export { RunnerEventPayloads, RunnerEventListener, TaskRunnerExecutionConfig };
|
|
|
473
482
|
export class TaskRunner<TContext> {
|
|
474
483
|
private eventBus = new EventBus<TContext>();
|
|
475
484
|
private validator = new TaskGraphValidator();
|
|
476
|
-
private executionStrategy: IExecutionStrategy<TContext> = new
|
|
485
|
+
private executionStrategy: IExecutionStrategy<TContext> = new RetryingExecutionStrategy(
|
|
486
|
+
new StandardExecutionStrategy()
|
|
487
|
+
);
|
|
477
488
|
|
|
478
489
|
/**
|
|
479
490
|
* @param context The shared context object to be passed to each task.
|
|
@@ -600,7 +611,8 @@ export class TaskRunner<TContext> {
|
|
|
600
611
|
this.context,
|
|
601
612
|
this.eventBus,
|
|
602
613
|
stateManager,
|
|
603
|
-
strategy
|
|
614
|
+
strategy,
|
|
615
|
+
config?.concurrency
|
|
604
616
|
);
|
|
605
617
|
|
|
606
618
|
// We need to handle the timeout cleanup properly.
|
|
@@ -649,7 +661,7 @@ export class TaskRunner<TContext> {
|
|
|
649
661
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
650
662
|
Code coverage generated by
|
|
651
663
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
652
|
-
at 2026-01-
|
|
664
|
+
at 2026-01-18T20:12:36.619Z
|
|
653
665
|
</div>
|
|
654
666
|
<script src="../prettify.js"></script>
|
|
655
667
|
<script>
|
|
@@ -298,7 +298,7 @@ export class TaskRunnerBuilder<TContext> {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
301
|
-
at 2026-01-
|
|
301
|
+
at 2026-01-18T20:12:36.619Z
|
|
302
302
|
</div>
|
|
303
303
|
<script src="../prettify.js"></script>
|
|
304
304
|
<script>
|
|
@@ -81,7 +81,17 @@
|
|
|
81
81
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
82
|
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
83
|
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-neutral"> </span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
85
95
|
<span class="cline-any cline-neutral"> </span>
|
|
86
96
|
<span class="cline-any cline-neutral"> </span>
|
|
87
97
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -116,6 +126,11 @@ export interface TaskRunnerExecutionConfig {
|
|
|
116
126
|
* Useful for verifying the execution order and graph structure.
|
|
117
127
|
*/
|
|
118
128
|
dryRun?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* The maximum number of tasks to run concurrently.
|
|
131
|
+
* If undefined, all ready tasks will be run in parallel.
|
|
132
|
+
*/
|
|
133
|
+
concurrency?: number;
|
|
119
134
|
}
|
|
120
135
|
</pre></td></tr></table></pre>
|
|
121
136
|
|
|
@@ -124,7 +139,7 @@ export interface TaskRunnerExecutionConfig {
|
|
|
124
139
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
140
|
Code coverage generated by
|
|
126
141
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
127
|
-
at 2026-01-
|
|
142
|
+
at 2026-01-18T20:12:36.619Z
|
|
128
143
|
</div>
|
|
129
144
|
<script src="../prettify.js"></script>
|
|
130
145
|
<script>
|
|
@@ -214,20 +214,20 @@
|
|
|
214
214
|
<span class="cline-any cline-neutral"> </span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
216
|
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-yes">
|
|
218
|
-
<span class="cline-any cline-yes">
|
|
219
|
-
<span class="cline-any cline-yes">
|
|
217
|
+
<span class="cline-any cline-yes">48x</span>
|
|
218
|
+
<span class="cline-any cline-yes">48x</span>
|
|
219
|
+
<span class="cline-any cline-yes">48x</span>
|
|
220
220
|
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-yes">
|
|
221
|
+
<span class="cline-any cline-yes">48x</span>
|
|
222
222
|
<span class="cline-any cline-neutral"> </span>
|
|
223
223
|
<span class="cline-any cline-neutral"> </span>
|
|
224
224
|
<span class="cline-any cline-neutral"> </span>
|
|
225
225
|
<span class="cline-any cline-neutral"> </span>
|
|
226
226
|
<span class="cline-any cline-neutral"> </span>
|
|
227
227
|
<span class="cline-any cline-neutral"> </span>
|
|
228
|
-
<span class="cline-any cline-yes">
|
|
229
|
-
<span class="cline-any cline-yes">
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
228
|
+
<span class="cline-any cline-yes">47x</span>
|
|
229
|
+
<span class="cline-any cline-yes">47x</span>
|
|
230
|
+
<span class="cline-any cline-yes">47x</span>
|
|
231
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
233
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -236,26 +236,26 @@
|
|
|
236
236
|
<span class="cline-any cline-neutral"> </span>
|
|
237
237
|
<span class="cline-any cline-neutral"> </span>
|
|
238
238
|
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-yes">
|
|
240
|
-
<span class="cline-any cline-yes">
|
|
239
|
+
<span class="cline-any cline-yes">232x</span>
|
|
240
|
+
<span class="cline-any cline-yes">232x</span>
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">
|
|
243
|
-
<span class="cline-any cline-yes">
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
242
|
+
<span class="cline-any cline-yes">232x</span>
|
|
243
|
+
<span class="cline-any cline-yes">374x</span>
|
|
244
|
+
<span class="cline-any cline-yes">374x</span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
249
|
-
<span class="cline-any cline-yes">
|
|
247
|
+
<span class="cline-any cline-yes">374x</span>
|
|
248
|
+
<span class="cline-any cline-yes">1133x</span>
|
|
249
|
+
<span class="cline-any cline-yes">1133x</span>
|
|
250
250
|
<span class="cline-any cline-neutral"> </span>
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
252
|
-
<span class="cline-any cline-yes">
|
|
251
|
+
<span class="cline-any cline-yes">980x</span>
|
|
252
|
+
<span class="cline-any cline-yes">153x</span>
|
|
253
253
|
<span class="cline-any cline-yes">8x</span>
|
|
254
254
|
<span class="cline-any cline-yes">8x</span>
|
|
255
255
|
<span class="cline-any cline-neutral"> </span>
|
|
256
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
258
|
+
<span class="cline-any cline-yes">374x</span>
|
|
259
259
|
<span class="cline-any cline-yes">8x</span>
|
|
260
260
|
<span class="cline-any cline-yes">8x</span>
|
|
261
261
|
<span class="cline-any cline-yes">8x</span>
|
|
@@ -265,18 +265,18 @@
|
|
|
265
265
|
<span class="cline-any cline-yes">8x</span>
|
|
266
266
|
<span class="cline-any cline-yes">8x</span>
|
|
267
267
|
<span class="cline-any cline-yes">8x</span>
|
|
268
|
-
<span class="cline-any cline-yes">
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
270
|
-
<span class="cline-any cline-yes">
|
|
268
|
+
<span class="cline-any cline-yes">366x</span>
|
|
269
|
+
<span class="cline-any cline-yes">119x</span>
|
|
270
|
+
<span class="cline-any cline-yes">119x</span>
|
|
271
271
|
<span class="cline-any cline-neutral"> </span>
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
273
|
<span class="cline-any cline-neutral"> </span>
|
|
274
274
|
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
275
|
+
<span class="cline-any cline-yes">232x</span>
|
|
276
|
+
<span class="cline-any cline-yes">127x</span>
|
|
277
277
|
<span class="cline-any cline-neutral"> </span>
|
|
278
278
|
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-yes">
|
|
279
|
+
<span class="cline-any cline-yes">232x</span>
|
|
280
280
|
<span class="cline-any cline-neutral"> </span>
|
|
281
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
282
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -284,8 +284,8 @@
|
|
|
284
284
|
<span class="cline-any cline-neutral"> </span>
|
|
285
285
|
<span class="cline-any cline-neutral"> </span>
|
|
286
286
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
288
|
-
<span class="cline-any cline-yes">
|
|
287
|
+
<span class="cline-any cline-yes">119x</span>
|
|
288
|
+
<span class="cline-any cline-yes">119x</span>
|
|
289
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
290
|
<span class="cline-any cline-neutral"> </span>
|
|
291
291
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -295,9 +295,9 @@
|
|
|
295
295
|
<span class="cline-any cline-neutral"> </span>
|
|
296
296
|
<span class="cline-any cline-neutral"> </span>
|
|
297
297
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
300
|
-
<span class="cline-any cline-yes">
|
|
298
|
+
<span class="cline-any cline-yes">120x</span>
|
|
299
|
+
<span class="cline-any cline-yes">120x</span>
|
|
300
|
+
<span class="cline-any cline-yes">120x</span>
|
|
301
301
|
<span class="cline-any cline-neutral"> </span>
|
|
302
302
|
<span class="cline-any cline-neutral"> </span>
|
|
303
303
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -306,7 +306,7 @@
|
|
|
306
306
|
<span class="cline-any cline-neutral"> </span>
|
|
307
307
|
<span class="cline-any cline-neutral"> </span>
|
|
308
308
|
<span class="cline-any cline-neutral"> </span>
|
|
309
|
-
<span class="cline-any cline-yes">
|
|
309
|
+
<span class="cline-any cline-yes">66x</span>
|
|
310
310
|
<span class="cline-any cline-neutral"> </span>
|
|
311
311
|
<span class="cline-any cline-neutral"> </span>
|
|
312
312
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -323,28 +323,28 @@
|
|
|
323
323
|
<span class="cline-any cline-neutral"> </span>
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-yes">
|
|
326
|
+
<span class="cline-any cline-yes">66x</span>
|
|
327
327
|
<span class="cline-any cline-neutral"> </span>
|
|
328
328
|
<span class="cline-any cline-neutral"> </span>
|
|
329
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
330
|
<span class="cline-any cline-neutral"> </span>
|
|
331
331
|
<span class="cline-any cline-neutral"> </span>
|
|
332
332
|
<span class="cline-any cline-neutral"> </span>
|
|
333
|
-
<span class="cline-any cline-yes">
|
|
333
|
+
<span class="cline-any cline-yes">48x</span>
|
|
334
334
|
<span class="cline-any cline-neutral"> </span>
|
|
335
335
|
<span class="cline-any cline-neutral"> </span>
|
|
336
336
|
<span class="cline-any cline-neutral"> </span>
|
|
337
337
|
<span class="cline-any cline-neutral"> </span>
|
|
338
338
|
<span class="cline-any cline-neutral"> </span>
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-yes">
|
|
340
|
+
<span class="cline-any cline-yes">92x</span>
|
|
341
341
|
<span class="cline-any cline-neutral"> </span>
|
|
342
342
|
<span class="cline-any cline-neutral"> </span>
|
|
343
343
|
<span class="cline-any cline-neutral"> </span>
|
|
344
344
|
<span class="cline-any cline-neutral"> </span>
|
|
345
345
|
<span class="cline-any cline-neutral"> </span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-yes">
|
|
347
|
+
<span class="cline-any cline-yes">122x</span>
|
|
348
348
|
<span class="cline-any cline-neutral"> </span>
|
|
349
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
350
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { TaskStep } from "./TaskStep.js";
|
|
@@ -496,7 +496,7 @@ export class TaskStateManager<TContext> {
|
|
|
496
496
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
497
497
|
Code coverage generated by
|
|
498
498
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
499
|
-
at 2026-01-
|
|
499
|
+
at 2026-01-18T20:12:36.619Z
|
|
500
500
|
</div>
|
|
501
501
|
<script src="../prettify.js"></script>
|
|
502
502
|
<script>
|