@push.rocks/taskbuffer 3.4.0 → 4.0.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.
Files changed (44) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/taskbuffer.classes.bufferrunner.js +17 -4
  3. package/dist_ts/taskbuffer.classes.cyclecounter.d.ts +1 -0
  4. package/dist_ts/taskbuffer.classes.cyclecounter.js +14 -1
  5. package/dist_ts/taskbuffer.classes.task.d.ts +5 -0
  6. package/dist_ts/taskbuffer.classes.task.js +54 -7
  7. package/dist_ts/taskbuffer.classes.taskchain.d.ts +2 -2
  8. package/dist_ts/taskbuffer.classes.taskchain.js +14 -5
  9. package/dist_ts/taskbuffer.classes.taskdebounced.js +14 -3
  10. package/dist_ts/taskbuffer.classes.taskmanager.js +13 -7
  11. package/dist_ts/taskbuffer.classes.taskparallel.js +4 -2
  12. package/dist_ts/taskbuffer.classes.taskrunner.d.ts +6 -6
  13. package/dist_ts/taskbuffer.classes.taskrunner.js +19 -13
  14. package/dist_ts/taskbuffer.interfaces.d.ts +2 -0
  15. package/dist_ts_web/ts/taskbuffer.classes.bufferrunner.js +17 -4
  16. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.d.ts +1 -0
  17. package/dist_ts_web/ts/taskbuffer.classes.cyclecounter.js +14 -1
  18. package/dist_ts_web/ts/taskbuffer.classes.task.d.ts +5 -0
  19. package/dist_ts_web/ts/taskbuffer.classes.task.js +54 -7
  20. package/dist_ts_web/ts/taskbuffer.classes.taskchain.d.ts +2 -2
  21. package/dist_ts_web/ts/taskbuffer.classes.taskchain.js +14 -5
  22. package/dist_ts_web/ts/taskbuffer.classes.taskdebounced.js +14 -3
  23. package/dist_ts_web/ts/taskbuffer.classes.taskmanager.js +13 -7
  24. package/dist_ts_web/ts/taskbuffer.classes.taskparallel.js +4 -2
  25. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.d.ts +6 -6
  26. package/dist_ts_web/ts/taskbuffer.classes.taskrunner.js +19 -13
  27. package/dist_ts_web/ts/taskbuffer.interfaces.d.ts +2 -0
  28. package/dist_ts_web/ts_web/00_commitinfo_data.js +1 -1
  29. package/dist_ts_web/ts_web/taskbuffer-dashboard.js +6 -14
  30. package/npmextra.json +14 -8
  31. package/package.json +22 -18
  32. package/readme.hints.md +28 -1
  33. package/readme.md +29 -4
  34. package/ts/00_commitinfo_data.ts +1 -1
  35. package/ts/taskbuffer.classes.bufferrunner.ts +14 -3
  36. package/ts/taskbuffer.classes.cyclecounter.ts +12 -0
  37. package/ts/taskbuffer.classes.task.ts +68 -17
  38. package/ts/taskbuffer.classes.taskchain.ts +17 -10
  39. package/ts/taskbuffer.classes.taskdebounced.ts +12 -2
  40. package/ts/taskbuffer.classes.taskmanager.ts +11 -6
  41. package/ts/taskbuffer.classes.taskparallel.ts +3 -1
  42. package/ts/taskbuffer.classes.taskrunner.ts +17 -12
  43. package/ts/taskbuffer.interfaces.ts +2 -0
  44. package/ts_web/00_commitinfo_data.ts +1 -1
@@ -4,9 +4,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
7
  import { DeesElement, customElement, html, css, property, state, cssManager } from '@design.estate/dees-element';
11
8
  /**
12
9
  * A web component that displays TaskManager tasks with progress visualization
@@ -531,27 +528,22 @@ let TaskbufferDashboard = class TaskbufferDashboard extends DeesElement {
531
528
  }
532
529
  };
533
530
  __decorate([
534
- property({ type: Object }),
535
- __metadata("design:type", Function)
531
+ property({ type: Object })
536
532
  ], TaskbufferDashboard.prototype, "taskManager", void 0);
537
533
  __decorate([
538
- property({ type: Number }),
539
- __metadata("design:type", Number)
534
+ property({ type: Number })
540
535
  ], TaskbufferDashboard.prototype, "refreshInterval", void 0);
541
536
  __decorate([
542
- state(),
543
- __metadata("design:type", Array)
537
+ state()
544
538
  ], TaskbufferDashboard.prototype, "tasks", void 0);
545
539
  __decorate([
546
- state(),
547
- __metadata("design:type", Array)
540
+ state()
548
541
  ], TaskbufferDashboard.prototype, "scheduledTasks", void 0);
549
542
  __decorate([
550
- state(),
551
- __metadata("design:type", Boolean)
543
+ state()
552
544
  ], TaskbufferDashboard.prototype, "isRunning", void 0);
553
545
  TaskbufferDashboard = __decorate([
554
546
  customElement('taskbuffer-dashboard')
555
547
  ], TaskbufferDashboard);
556
548
  export { TaskbufferDashboard };
557
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvdGFza2J1ZmZlci1kYXNoYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pIOztHQUVHO0FBRUksSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBb0IsU0FBUSxXQUFXO0lBQTdDOztRQUNMLGFBQWE7UUFFTixnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFHdkMsb0JBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxlQUFlO1FBRXRELGlCQUFpQjtRQUVULFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRzVCLG1CQUFjLEdBQXlCLEVBQUUsQ0FBQztRQUcxQyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBcWdCckMsQ0FBQztJQWpnQkMsU0FBUzthQUNGLFdBQU0sR0FBRztRQUNkLFVBQVUsQ0FBQyxhQUFhO1FBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7c0JBUWUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztpQkFXN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztzQkFXbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7OztzQkFLeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7aUJBZTdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7OztpQkFVeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Oztz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
549
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvdGFza2J1ZmZlci1kYXNoYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2pIOztHQUVHO0FBRUksSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBb0IsU0FBUSxXQUFXO0lBQTdDOztRQUNMLGFBQWE7UUFFTixnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFHdkMsb0JBQWUsR0FBVyxJQUFJLENBQUMsQ0FBQyxlQUFlO1FBRXRELGlCQUFpQjtRQUVULFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRzVCLG1CQUFjLEdBQXlCLEVBQUUsQ0FBQztRQUcxQyxjQUFTLEdBQVksS0FBSyxDQUFDO0lBcWdCckMsQ0FBQztJQWpnQkMsU0FBUzthQUNGLFdBQU0sR0FBRztRQUNkLFVBQVUsQ0FBQyxhQUFhO1FBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7c0JBUWUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztpQkFXN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztzQkFXbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7OztzQkFLeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7aUJBZTdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7OztpQkFVeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7OztzQkFX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
package/npmextra.json CHANGED
@@ -1,10 +1,5 @@
1
1
  {
2
- "npmci": {
3
- "npmGlobalTools": [],
4
- "npmAccessLevel": "public",
5
- "npmRegistryUrl": "registry.npmjs.org"
6
- },
7
- "gitzone": {
2
+ "@git.zone/cli": {
8
3
  "projectType": "npm",
9
4
  "module": {
10
5
  "githost": "code.foss.global",
@@ -25,9 +20,20 @@
25
20
  "debounced tasks",
26
21
  "distributed coordination"
27
22
  ]
23
+ },
24
+ "release": {
25
+ "registries": [
26
+ "https://verdaccio.lossless.digital",
27
+ "https://registry.npmjs.org"
28
+ ],
29
+ "accessLevel": "public"
28
30
  }
29
31
  },
30
- "tsdoc": {
32
+ "@git.zone/tsdoc": {
31
33
  "legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
34
+ },
35
+ "@ship.zone/szci": {
36
+ "npmGlobalTools": [],
37
+ "npmRegistryUrl": "registry.npmjs.org"
32
38
  }
33
- }
39
+ }
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@push.rocks/taskbuffer",
3
- "version": "3.4.0",
3
+ "version": "4.0.0",
4
4
  "private": false,
5
5
  "description": "A flexible task management library supporting TypeScript, allowing for task buffering, scheduling, and execution with dependency management.",
6
6
  "main": "dist_ts/index.js",
7
7
  "typings": "dist_ts/index.d.ts",
8
8
  "type": "module",
9
+ "scripts": {
10
+ "test": "(tstest test/ --verbose --logfile --timeout 120)",
11
+ "build": "(tsbuild tsfolders)",
12
+ "buildDocs": "tsdoc"
13
+ },
9
14
  "repository": {
10
15
  "type": "git",
11
16
  "url": "https://code.foss.global/push.rocks/taskbuffer.git"
@@ -29,21 +34,21 @@
29
34
  },
30
35
  "homepage": "https://code.foss.global/push.rocks/taskbuffer#readme",
31
36
  "dependencies": {
32
- "@design.estate/dees-element": "^2.1.2",
33
- "@push.rocks/lik": "^6.0.5",
37
+ "@design.estate/dees-element": "^2.1.3",
38
+ "@push.rocks/lik": "^6.2.2",
34
39
  "@push.rocks/smartdelay": "^3.0.5",
35
- "@push.rocks/smartlog": "^3.1.9",
36
- "@push.rocks/smartpromise": "^4.0.3",
37
- "@push.rocks/smartrx": "^3.0.6",
38
- "@push.rocks/smarttime": "^4.0.6",
39
- "@push.rocks/smartunique": "^3.0.6"
40
+ "@push.rocks/smartlog": "^3.1.10",
41
+ "@push.rocks/smartpromise": "^4.2.3",
42
+ "@push.rocks/smartrx": "^3.0.10",
43
+ "@push.rocks/smarttime": "^4.1.1",
44
+ "@push.rocks/smartunique": "^3.0.9"
40
45
  },
41
46
  "devDependencies": {
42
- "@git.zone/tsbuild": "^2.6.8",
43
- "@git.zone/tsbundle": "^2.0.8",
44
- "@git.zone/tsrun": "^1.2.44",
45
- "@git.zone/tstest": "^2.3.6",
46
- "@types/node": "^20.8.7"
47
+ "@git.zone/tsbuild": "^3.1.2",
48
+ "@git.zone/tsbundle": "^2.6.3",
49
+ "@git.zone/tsrun": "^2.0.0",
50
+ "@git.zone/tstest": "^3.1.3",
51
+ "@types/node": "^24.10.1"
47
52
  },
48
53
  "files": [
49
54
  "ts/**/*",
@@ -60,9 +65,8 @@
60
65
  "browserslist": [
61
66
  "last 1 chrome versions"
62
67
  ],
63
- "scripts": {
64
- "test": "(tstest test/ --verbose --logfile --timeout 120)",
65
- "build": "(tsbuild tsfolders)",
66
- "buildDocs": "tsdoc"
68
+ "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748",
69
+ "pnpm": {
70
+ "overrides": {}
67
71
  }
68
- }
72
+ }
package/readme.hints.md CHANGED
@@ -1 +1,28 @@
1
-
1
+ # Taskbuffer Hints
2
+
3
+ ## Error Handling (v3.6.0+)
4
+ - `Task` now has `catchErrors` constructor option (default: `false`)
5
+ - Default behavior: `trigger()` rejects when taskFunction throws (breaking change from pre-3.6)
6
+ - Set `catchErrors: true` to swallow errors (old behavior) - returns `undefined` on error
7
+ - Error state tracked via `lastError?: Error`, `errorCount: number`, `clearError()`
8
+ - `getMetadata()` status uses all four values: `'idle'` | `'running'` | `'completed'` | `'failed'`
9
+ - All peripheral classes (Taskchain, Taskparallel, TaskRunner, BufferRunner, TaskDebounced, TaskManager) have proper error propagation/handling
10
+ - `console.log` calls replaced with `logger.log()` throughout
11
+
12
+ ## Breaking API Rename (TaskRunner)
13
+ - `maxParrallelJobs` → `maxParallelJobs`
14
+ - `qeuedTasks` → `queuedTasks`
15
+ - JSDoc typos fixed: "qeue" → "queue", "wether" → "whether", "loose" → "lose"
16
+ - The `setMaxParallelJobs()` parameter also renamed from `maxParrallelJobsArg` to `maxParallelJobsArg`
17
+
18
+ ## Error Context Improvements
19
+ - **TaskChain**: Errors now wrap the original with context: chain name, failing task name, and task index. Original error preserved via `.cause`
20
+ - **BufferRunner**: When `catchErrors: false`, buffered task errors now reject the trigger promise (via `CycleCounter.informOfCycleError`) instead of silently resolving with `undefined`
21
+ - **TaskChain stubs completed**: `removeTask(task)` returns `boolean`, `shiftTask()` returns `Task | undefined`
22
+
23
+ ## Project Structure
24
+ - Source in `ts/`, web components in `ts_web/`
25
+ - Tests in `test/` - naming: `*.node.ts`, `*.browser.ts`, `*.both.ts`
26
+ - Logger: `ts/taskbuffer.logging.ts` exports `logger` (ConsoleLog from smartlog)
27
+ - Build: `pnpm build` (tsbuild tsfolders)
28
+ - Test: `pnpm test` or `tstest test/test.XX.name.ts --verbose`
package/readme.md CHANGED
@@ -162,9 +162,9 @@ console.log(`Saved ${savedCount} items`);
162
162
  Execute multiple tasks simultaneously:
163
163
 
164
164
  ```typescript
165
- import { TaskParallel } from '@push.rocks/taskbuffer';
165
+ import { Taskparallel } from '@push.rocks/taskbuffer';
166
166
 
167
- const parallel = new TaskParallel({
167
+ const parallel = new Taskparallel({
168
168
  name: 'ParallelProcessor',
169
169
  tasks: [
170
170
  emailTask,
@@ -179,6 +179,29 @@ const results = await parallel.trigger(notificationData);
179
179
  // results = [emailResult, smsResult, pushResult, webhookResult]
180
180
  ```
181
181
 
182
+ ### Debounced Tasks - Smart Trigger Coalescing
183
+
184
+ Coalesce rapid triggers into a single execution after a quiet period:
185
+
186
+ ```typescript
187
+ import { TaskDebounced } from '@push.rocks/taskbuffer';
188
+
189
+ const searchTask = new TaskDebounced({
190
+ name: 'SearchQuery',
191
+ debounceTimeInMillis: 300, // Wait 300ms after last trigger
192
+ taskFunction: async (query) => {
193
+ const results = await searchAPI(query);
194
+ return results;
195
+ }
196
+ });
197
+
198
+ // Rapid typing - only the last query executes
199
+ searchTask.trigger('h');
200
+ searchTask.trigger('he');
201
+ searchTask.trigger('hel');
202
+ searchTask.trigger('hello'); // Only this one executes after 300ms pause
203
+ ```
204
+
182
205
  ### TaskManager - Centralized Orchestration
183
206
 
184
207
  Manage all your tasks from a single point:
@@ -559,9 +582,11 @@ logger.level = 'debug';
559
582
  - **`Task<T, TSteps>`** - Basic task unit with optional step tracking
560
583
  - **`TaskManager`** - Central orchestrator for task management
561
584
  - **`Taskchain`** - Sequential task executor
562
- - **`TaskParallel`** - Concurrent task executor
585
+ - **`Taskparallel`** - Concurrent task executor
563
586
  - **`TaskOnce`** - Single-execution task
564
- - **`TaskLoop`** - Repeating task with conditions
587
+ - **`TaskDebounced`** - Debounced task that waits for a pause in triggers
588
+ - **`TaskRunner`** - Sequential task runner with scheduling support
589
+ - **`distributedCoordination`** - Namespace for distributed task coordination
565
590
 
566
591
  ### Key Methods
567
592
 
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/taskbuffer',
6
- version: '3.4.0',
6
+ version: '4.0.0',
7
7
  description: 'A flexible task management library supporting TypeScript, allowing for task buffering, scheduling, and execution with dependency management.'
8
8
  }
@@ -1,4 +1,5 @@
1
1
  import { Task } from './taskbuffer.classes.task.js';
2
+ import { logger } from './taskbuffer.logging.js';
2
3
 
3
4
  export class BufferRunner {
4
5
  public task: Task;
@@ -24,9 +25,19 @@ export class BufferRunner {
24
25
  private async _run(x: any) {
25
26
  this.task.running = true;
26
27
  while (this.bufferCounter > 0) {
27
- const result = await Task.runTask(this.task, { x: x });
28
- this.bufferCounter--;
29
- this.task.cycleCounter.informOfCycle(result);
28
+ try {
29
+ const result = await Task.runTask(this.task, { x: x });
30
+ this.bufferCounter--;
31
+ this.task.cycleCounter.informOfCycle(result);
32
+ } catch (err) {
33
+ logger.log('error', `BufferRunner: task "${this.task.name || 'unnamed'}" failed: ${err instanceof Error ? err.message : String(err)}`);
34
+ this.bufferCounter--;
35
+ if (this.task.catchErrors) {
36
+ this.task.cycleCounter.informOfCycle(undefined);
37
+ } else {
38
+ this.task.cycleCounter.informOfCycleError(err instanceof Error ? err : new Error(String(err)));
39
+ }
40
+ }
30
41
  }
31
42
  this.task.running = false;
32
43
  }
@@ -33,4 +33,16 @@ export class CycleCounter {
33
33
  });
34
34
  this.cycleObjectArray = newCycleObjectArray;
35
35
  }
36
+ public informOfCycleError(err: Error) {
37
+ const newCycleObjectArray: ICycleObject[] = [];
38
+ this.cycleObjectArray.forEach((cycleObjectArg) => {
39
+ cycleObjectArg.cycleCounter--;
40
+ if (cycleObjectArg.cycleCounter <= 0) {
41
+ cycleObjectArg.deferred.reject(err);
42
+ } else {
43
+ newCycleObjectArray.push(cycleObjectArg);
44
+ }
45
+ });
46
+ this.cycleObjectArray = newCycleObjectArray;
47
+ }
36
48
  }
@@ -87,24 +87,37 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
87
87
  taskToRun.running = true;
88
88
  taskToRun.runCount++;
89
89
  taskToRun.lastRun = new Date();
90
-
91
- // Reset steps at the beginning of task execution
90
+
91
+ // Reset steps and error state at the beginning of task execution
92
92
  taskToRun.resetSteps();
93
+ taskToRun.lastError = undefined;
93
94
 
94
- done.promise.then(async () => {
95
- taskToRun.running = false;
96
-
97
- // Complete all steps when task finishes
98
- taskToRun.completeAllSteps();
95
+ done.promise
96
+ .then(async () => {
97
+ taskToRun.running = false;
98
+
99
+ // Complete all steps when task finishes
100
+ taskToRun.completeAllSteps();
101
+
102
+ // When the task has finished running, resolve the finished promise
103
+ taskToRun.resolveFinished();
99
104
 
100
- // When the task has finished running, resolve the finished promise
101
- taskToRun.resolveFinished();
105
+ // Create a new finished promise for the next run
106
+ taskToRun.finished = new Promise((resolve) => {
107
+ taskToRun.resolveFinished = resolve;
108
+ });
109
+ })
110
+ .catch((err) => {
111
+ taskToRun.running = false;
102
112
 
103
- // Create a new finished promise for the next run
104
- taskToRun.finished = new Promise((resolve) => {
105
- taskToRun.resolveFinished = resolve;
113
+ // Resolve finished so blocking dependants don't hang
114
+ taskToRun.resolveFinished();
115
+
116
+ // Create a new finished promise for the next run
117
+ taskToRun.finished = new Promise((resolve) => {
118
+ taskToRun.resolveFinished = resolve;
119
+ });
106
120
  });
107
- });
108
121
 
109
122
  const options = {
110
123
  ...{ x: undefined, touchedTasksArray: [] },
@@ -133,7 +146,13 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
133
146
  try {
134
147
  return await taskToRun.taskFunction(x, taskToRun.setupValue);
135
148
  } catch (e) {
136
- console.log(e);
149
+ taskToRun.lastError = e instanceof Error ? e : new Error(String(e));
150
+ taskToRun.errorCount++;
151
+ logger.log('error', `Task "${taskToRun.name || 'unnamed'}" failed: ${taskToRun.lastError.message}`);
152
+ if (taskToRun.catchErrors) {
153
+ return undefined;
154
+ }
155
+ throw e;
137
156
  }
138
157
  })
139
158
  .then((x) => {
@@ -155,10 +174,18 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
155
174
  done.resolve(x);
156
175
  })
157
176
  .catch((err) => {
158
- console.log(err);
177
+ done.reject(err);
159
178
  });
160
179
  localDeferred.resolve();
161
- return await done.promise;
180
+
181
+ try {
182
+ return await done.promise;
183
+ } catch (err) {
184
+ if (taskToRun.catchErrors) {
185
+ return undefined;
186
+ }
187
+ throw err;
188
+ }
162
189
  };
163
190
 
164
191
  public name: string;
@@ -187,10 +214,19 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
187
214
  public lastRun?: Date;
188
215
  public runCount: number = 0;
189
216
 
217
+ // Error handling
218
+ public catchErrors: boolean = false;
219
+ public lastError?: Error;
220
+ public errorCount: number = 0;
221
+
190
222
  public get idle() {
191
223
  return !this.running;
192
224
  }
193
225
 
226
+ public clearError(): void {
227
+ this.lastError = undefined;
228
+ }
229
+
194
230
  public taskSetup: ITaskSetupFunction<T>;
195
231
  public setupValue: T;
196
232
 
@@ -210,6 +246,7 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
210
246
  name?: string;
211
247
  taskSetup?: ITaskSetupFunction<T>;
212
248
  steps?: TSteps;
249
+ catchErrors?: boolean;
213
250
  }) {
214
251
  this.taskFunction = optionsArg.taskFunction;
215
252
  this.preTask = optionsArg.preTask;
@@ -219,6 +256,7 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
219
256
  this.execDelay = optionsArg.execDelay;
220
257
  this.name = optionsArg.name;
221
258
  this.taskSetup = optionsArg.taskSetup;
259
+ this.catchErrors = optionsArg.catchErrors ?? false;
222
260
 
223
261
  // Initialize steps if provided
224
262
  if (optionsArg.steps) {
@@ -306,10 +344,21 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
306
344
 
307
345
  // Get task metadata
308
346
  public getMetadata(): ITaskMetadata {
347
+ let status: 'idle' | 'running' | 'completed' | 'failed';
348
+ if (this.running) {
349
+ status = 'running';
350
+ } else if (this.lastError) {
351
+ status = 'failed';
352
+ } else if (this.runCount > 0) {
353
+ status = 'completed';
354
+ } else {
355
+ status = 'idle';
356
+ }
357
+
309
358
  return {
310
359
  name: this.name || 'unnamed',
311
360
  version: this.version,
312
- status: this.running ? 'running' : 'idle',
361
+ status,
313
362
  steps: this.getStepsMetadata(),
314
363
  currentStep: this.currentStepName,
315
364
  currentProgress: this.getProgress(),
@@ -318,6 +367,8 @@ export class Task<T = undefined, TSteps extends ReadonlyArray<{ name: string; de
318
367
  bufferMax: this.bufferMax,
319
368
  timeout: this.timeout,
320
369
  cronSchedule: this.cronJob?.cronExpression,
370
+ lastError: this.lastError?.message,
371
+ errorCount: this.errorCount,
321
372
  };
322
373
  }
323
374
 
@@ -27,18 +27,20 @@ export class Taskchain extends Task {
27
27
  let taskCounter = 0; // counter for iterating async over the taskArray
28
28
  const iterateTasks = (x: any) => {
29
29
  if (typeof this.taskArray[taskCounter] !== 'undefined') {
30
- console.log(
31
- this.name + ' running: Task' + this.taskArray[taskCounter].name,
32
- );
30
+ logger.log('info', `${this.name} running: Task ${this.taskArray[taskCounter].name}`);
33
31
  this.taskArray[taskCounter].trigger(x).then((x) => {
34
32
  logger.log('info', this.taskArray[taskCounter].name);
35
33
  taskCounter++;
36
34
  iterateTasks(x);
35
+ }).catch((err) => {
36
+ const chainError = new Error(
37
+ `Taskchain "${this.name}": task "${this.taskArray[taskCounter].name || 'unnamed'}" (index ${taskCounter}) failed: ${err instanceof Error ? err.message : String(err)}`
38
+ );
39
+ (chainError as any).cause = err;
40
+ done.reject(chainError);
37
41
  });
38
42
  } else {
39
- console.log(
40
- 'Taskchain "' + this.name + '" completed successfully',
41
- );
43
+ logger.log('info', `Taskchain "${this.name}" completed successfully`);
42
44
  done.resolve(x);
43
45
  }
44
46
  };
@@ -53,10 +55,15 @@ export class Taskchain extends Task {
53
55
  addTask(taskArg: Task) {
54
56
  this.taskArray.push(taskArg);
55
57
  }
56
- removeTask(taskArg: Task) {
57
- // TODO:
58
+ removeTask(taskArg: Task): boolean {
59
+ const index = this.taskArray.indexOf(taskArg);
60
+ if (index === -1) {
61
+ return false;
62
+ }
63
+ this.taskArray.splice(index, 1);
64
+ return true;
58
65
  }
59
- shiftTask() {
60
- // TODO:
66
+ shiftTask(): Task | undefined {
67
+ return this.taskArray.shift();
61
68
  }
62
69
  }
@@ -1,6 +1,7 @@
1
1
  import * as plugins from './taskbuffer.plugins.js';
2
2
 
3
3
  import { Task, type ITaskFunction } from './taskbuffer.classes.task.js';
4
+ import { logger } from './taskbuffer.logging.js';
4
5
 
5
6
  export class TaskDebounced<T = unknown> extends Task {
6
7
  private _debouncedTaskFunction: ITaskFunction;
@@ -22,8 +23,17 @@ export class TaskDebounced<T = unknown> extends Task {
22
23
  .pipe(
23
24
  plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis),
24
25
  )
25
- .subscribe((x) => {
26
- this.taskFunction(x);
26
+ .subscribe({
27
+ next: async (x) => {
28
+ try {
29
+ await this.taskFunction(x);
30
+ } catch (err) {
31
+ logger.log('error', `TaskDebounced "${this.name || 'unnamed'}" failed: ${err instanceof Error ? err.message : String(err)}`);
32
+ }
33
+ },
34
+ error: (err) => {
35
+ logger.log('error', `TaskDebounced "${this.name || 'unnamed'}" observable error: ${err instanceof Error ? err.message : String(err)}`);
36
+ },
27
37
  });
28
38
  }
29
39
  }
@@ -5,6 +5,7 @@ import {
5
5
  type IDistributedTaskRequestResult,
6
6
  } from './taskbuffer.classes.distributedcoordinator.js';
7
7
  import type { ITaskMetadata, ITaskExecutionReport, IScheduledTaskInfo } from './taskbuffer.interfaces.js';
8
+ import { logger } from './taskbuffer.logging.js';
8
9
 
9
10
  export interface ICronJob {
10
11
  cronString: string;
@@ -75,31 +76,35 @@ export class TaskManager {
75
76
  triggerTime,
76
77
  );
77
78
  if (!announcementResult.shouldTrigger) {
78
- console.log('Distributed coordinator result: NOT EXECUTING');
79
+ logger.log('info', 'Distributed coordinator result: NOT EXECUTING');
79
80
  return;
80
81
  } else {
81
- console.log('Distributed coordinator result: CHOSEN AND EXECUTING');
82
+ logger.log('info', 'Distributed coordinator result: CHOSEN AND EXECUTING');
82
83
  }
83
84
  }
84
- await task.trigger();
85
+ try {
86
+ await task.trigger();
87
+ } catch (err) {
88
+ logger.log('error', `TaskManager: scheduled task "${task.name || 'unnamed'}" failed: ${err instanceof Error ? err.message : String(err)}`);
89
+ }
85
90
  },
86
91
  );
87
92
  task.cronJob = cronJob;
88
93
  }
89
94
 
90
95
  private logTaskState(task: Task<any, any>) {
91
- console.log(`Taskbuffer schedule triggered task >>${task.name}<<`);
96
+ logger.log('info', `Taskbuffer schedule triggered task >>${task.name}<<`);
92
97
  const bufferState = task.buffered
93
98
  ? `buffered with max ${task.bufferMax} buffered calls`
94
99
  : `unbuffered`;
95
- console.log(`Task >>${task.name}<< is ${bufferState}`);
100
+ logger.log('info', `Task >>${task.name}<< is ${bufferState}`);
96
101
  }
97
102
 
98
103
  private async performDistributedConsultation(
99
104
  task: Task<any, any>,
100
105
  triggerTime: number,
101
106
  ): Promise<IDistributedTaskRequestResult> {
102
- console.log('Found a distributed coordinator, performing consultation.');
107
+ logger.log('info', 'Found a distributed coordinator, performing consultation.');
103
108
 
104
109
  return this.options.distributedCoordinator.fireDistributedTaskRequest({
105
110
  submitterId: this.randomId,
@@ -13,7 +13,9 @@ export class Taskparallel extends Task {
13
13
  this.taskArray.forEach(function (taskArg) {
14
14
  promiseArray.push(taskArg.trigger());
15
15
  });
16
- Promise.all(promiseArray).then(done.resolve);
16
+ Promise.all(promiseArray)
17
+ .then((results) => done.resolve(results))
18
+ .catch((err) => done.reject(err));
17
19
  return done.promise;
18
20
  },
19
21
  },