@decaf-ts/core 0.7.73 → 0.8.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/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/decorators.js +1 -0
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interfaces/Observable.d.ts +2 -3
- package/lib/esm/interfaces/Observable.js +1 -3
- package/lib/esm/interfaces/Observable.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +1 -1
- package/lib/esm/overrides/overrides.js +1 -1
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +2 -2
- package/lib/esm/persistence/Adapter.js +9 -6
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/Dispatch.d.ts +1 -1
- package/lib/esm/persistence/Dispatch.js +1 -0
- package/lib/esm/persistence/Dispatch.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.d.ts +1 -1
- package/lib/esm/persistence/ObserverHandler.js +1 -0
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/decorators.d.ts +1 -1
- package/lib/esm/persistence/decorators.js +2 -2
- package/lib/esm/persistence/event-filters.d.ts +1 -1
- package/lib/esm/ram/RamAdapter.js +11 -6
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamStatement.d.ts +2 -1
- package/lib/esm/ram/RamStatement.js.map +1 -1
- package/lib/esm/repository/Repository.d.ts +2 -2
- package/lib/esm/repository/Repository.js +2 -1
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/services/ModelService.d.ts +2 -2
- package/lib/esm/services/ModelService.js +2 -2
- package/lib/esm/services/ModelService.js.map +1 -1
- package/lib/esm/services/PersistenceService.js +1 -1
- package/lib/esm/services/PersistenceService.js.map +1 -1
- package/lib/esm/services/services.d.ts +1 -1
- package/lib/esm/services/services.js +2 -1
- package/lib/esm/services/services.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.d.ts +21 -17
- package/lib/esm/tasks/TaskEngine.js +180 -108
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskEventBus.d.ts +10 -4
- package/lib/esm/tasks/TaskEventBus.js +26 -6
- package/lib/esm/tasks/TaskEventBus.js.map +1 -1
- package/lib/esm/tasks/TaskHandler.d.ts +2 -2
- package/lib/esm/tasks/TaskHandler.js +3 -3
- package/lib/esm/tasks/TaskHandler.js.map +1 -1
- package/lib/esm/tasks/TaskService.d.ts +22 -8
- package/lib/esm/tasks/TaskService.js +16 -5
- package/lib/esm/tasks/TaskService.js.map +1 -1
- package/lib/esm/tasks/TaskTracker.d.ts +27 -0
- package/lib/esm/tasks/TaskTracker.js +77 -0
- package/lib/esm/tasks/TaskTracker.js.map +1 -0
- package/lib/esm/tasks/builder.d.ts +1 -1
- package/lib/esm/tasks/builder.js +4 -0
- package/lib/esm/tasks/builder.js.map +1 -1
- package/lib/esm/tasks/constants.d.ts +4 -1
- package/lib/esm/tasks/constants.js +12 -0
- package/lib/esm/tasks/constants.js.map +1 -1
- package/lib/esm/tasks/index.d.ts +9 -0
- package/lib/esm/tasks/index.js +9 -0
- package/lib/esm/tasks/index.js.map +1 -1
- package/lib/esm/tasks/logging.d.ts +2 -1
- package/lib/esm/tasks/logging.js +83 -4
- package/lib/esm/tasks/logging.js.map +1 -1
- package/lib/esm/tasks/models/TaskBackoffModel.d.ts +2 -3
- package/lib/esm/tasks/models/TaskBackoffModel.js +2 -3
- package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskEventModel.d.ts +3 -2
- package/lib/esm/tasks/models/TaskEventModel.js +13 -9
- package/lib/esm/tasks/models/TaskEventModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskLogEntryModel.js +6 -3
- package/lib/esm/tasks/models/TaskLogEntryModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskModel.d.ts +3 -3
- package/lib/esm/tasks/models/TaskModel.js +1 -0
- package/lib/esm/tasks/models/TaskModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepResultModel.js +3 -0
- package/lib/esm/tasks/models/TaskStepResultModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js +4 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/esm/tasks/types.d.ts +26 -1
- package/lib/identity/decorators.cjs +1 -0
- package/lib/identity/decorators.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/Observable.cjs +0 -4
- package/lib/interfaces/Observable.d.ts +2 -3
- package/lib/interfaces/Observable.js.map +1 -1
- package/lib/overrides/Metadata.d.ts +1 -1
- package/lib/overrides/overrides.cjs +2 -2
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +9 -6
- package/lib/persistence/Adapter.d.ts +2 -2
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/Dispatch.cjs +1 -0
- package/lib/persistence/Dispatch.d.ts +1 -1
- package/lib/persistence/Dispatch.js.map +1 -1
- package/lib/persistence/ObserverHandler.cjs +1 -0
- package/lib/persistence/ObserverHandler.d.ts +1 -1
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/decorators.cjs +2 -2
- package/lib/persistence/decorators.d.ts +1 -1
- package/lib/persistence/event-filters.d.ts +1 -1
- package/lib/ram/RamAdapter.cjs +11 -6
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamStatement.d.ts +2 -1
- package/lib/ram/RamStatement.js.map +1 -1
- package/lib/repository/Repository.cjs +2 -1
- package/lib/repository/Repository.d.ts +2 -2
- package/lib/repository/Repository.js.map +1 -1
- package/lib/services/ModelService.cjs +8 -8
- package/lib/services/ModelService.d.ts +2 -2
- package/lib/services/ModelService.js.map +1 -1
- package/lib/services/PersistenceService.cjs +2 -2
- package/lib/services/PersistenceService.js.map +1 -1
- package/lib/services/services.cjs +2 -1
- package/lib/services/services.d.ts +1 -1
- package/lib/services/services.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +180 -108
- package/lib/tasks/TaskEngine.d.ts +21 -17
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskEventBus.cjs +26 -6
- package/lib/tasks/TaskEventBus.d.ts +10 -4
- package/lib/tasks/TaskEventBus.js.map +1 -1
- package/lib/tasks/TaskHandler.cjs +2 -2
- package/lib/tasks/TaskHandler.d.ts +2 -2
- package/lib/tasks/TaskHandler.js.map +1 -1
- package/lib/tasks/TaskService.cjs +31 -20
- package/lib/tasks/TaskService.d.ts +22 -8
- package/lib/tasks/TaskService.js.map +1 -1
- package/lib/tasks/TaskTracker.cjs +81 -0
- package/lib/tasks/TaskTracker.d.ts +27 -0
- package/lib/tasks/TaskTracker.js.map +1 -0
- package/lib/tasks/builder.cjs +4 -0
- package/lib/tasks/builder.d.ts +1 -1
- package/lib/tasks/builder.js.map +1 -1
- package/lib/tasks/constants.cjs +13 -1
- package/lib/tasks/constants.d.ts +4 -1
- package/lib/tasks/constants.js.map +1 -1
- package/lib/tasks/index.cjs +9 -0
- package/lib/tasks/index.d.ts +9 -0
- package/lib/tasks/index.js.map +1 -1
- package/lib/tasks/logging.cjs +83 -3
- package/lib/tasks/logging.d.ts +2 -1
- package/lib/tasks/logging.js.map +1 -1
- package/lib/tasks/models/TaskBackoffModel.cjs +1 -2
- package/lib/tasks/models/TaskBackoffModel.d.ts +2 -3
- package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/tasks/models/TaskEventModel.cjs +13 -9
- package/lib/tasks/models/TaskEventModel.d.ts +3 -2
- package/lib/tasks/models/TaskEventModel.js.map +1 -1
- package/lib/tasks/models/TaskLogEntryModel.cjs +5 -2
- package/lib/tasks/models/TaskLogEntryModel.js.map +1 -1
- package/lib/tasks/models/TaskModel.cjs +1 -0
- package/lib/tasks/models/TaskModel.d.ts +3 -3
- package/lib/tasks/models/TaskModel.js.map +1 -1
- package/lib/tasks/models/TaskStepResultModel.cjs +3 -0
- package/lib/tasks/models/TaskStepResultModel.js.map +1 -1
- package/lib/tasks/models/TaskStepSpecModel.cjs +3 -0
- package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/tasks/types.d.ts +26 -1
- package/package.json +1 -1
- package/lib/esm/tasks/TaskEventRepository.d.ts +0 -10
- package/lib/esm/tasks/TaskEventRepository.js +0 -35
- package/lib/esm/tasks/TaskEventRepository.js.map +0 -1
- package/lib/tasks/TaskEventRepository.cjs +0 -38
- package/lib/tasks/TaskEventRepository.d.ts +0 -10
- package/lib/tasks/TaskEventRepository.js.map +0 -1
package/lib/tasks/logging.cjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TaskLogger = void 0;
|
|
4
|
+
exports.getLogPipe = getLogPipe;
|
|
4
5
|
const logging_1 = require("@decaf-ts/logging");
|
|
6
|
+
const constants_1 = require("./constants.cjs");
|
|
7
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
5
8
|
class TaskLogger {
|
|
6
9
|
constructor(logger, bufferSize = 150, maxBufferSize = 300, pipe) {
|
|
7
10
|
this.logger = logger;
|
|
@@ -14,7 +17,7 @@ class TaskLogger {
|
|
|
14
17
|
this[level] = new Proxy(this[level], {
|
|
15
18
|
apply: (target, thisArg, argArray) => {
|
|
16
19
|
target.apply(thisArg, argArray);
|
|
17
|
-
thisArg.push(...argArray);
|
|
20
|
+
thisArg.push(level, ...argArray);
|
|
18
21
|
},
|
|
19
22
|
});
|
|
20
23
|
});
|
|
@@ -27,8 +30,10 @@ class TaskLogger {
|
|
|
27
30
|
flush(pipe) {
|
|
28
31
|
const result = this.history;
|
|
29
32
|
this.history = [];
|
|
30
|
-
if (pipe)
|
|
31
|
-
return pipe(result)
|
|
33
|
+
if (pipe && result.length)
|
|
34
|
+
return pipe(result)
|
|
35
|
+
.catch((e) => this.logger.error(`Failed to pipe logs`, e))
|
|
36
|
+
.finally(() => (this.history = []));
|
|
32
37
|
this.history = [];
|
|
33
38
|
return result;
|
|
34
39
|
}
|
|
@@ -74,4 +79,79 @@ class TaskLogger {
|
|
|
74
79
|
}
|
|
75
80
|
}
|
|
76
81
|
exports.TaskLogger = TaskLogger;
|
|
82
|
+
function getLogPipe(log, opts = { logProgress: true, logStatus: true, style: true }) {
|
|
83
|
+
return async function logPipe(evt) {
|
|
84
|
+
log = log.for(evt.taskId, {
|
|
85
|
+
style: false,
|
|
86
|
+
timestamp: false,
|
|
87
|
+
logLevel: false,
|
|
88
|
+
});
|
|
89
|
+
switch (evt.classification) {
|
|
90
|
+
case constants_1.TaskEventType.LOG: {
|
|
91
|
+
const logs = evt.payload;
|
|
92
|
+
// eslint-disable-next-line prefer-const
|
|
93
|
+
for (let [level, msg, payload] of logs) {
|
|
94
|
+
if (!opts.style) {
|
|
95
|
+
msg = (0, logging_1.style)(msg);
|
|
96
|
+
msg = msg.clear().toString();
|
|
97
|
+
}
|
|
98
|
+
const args = [msg];
|
|
99
|
+
switch (level) {
|
|
100
|
+
case logging_1.LogLevel.verbose:
|
|
101
|
+
args.push(1);
|
|
102
|
+
// eslint-disable-next-line no-fallthrough
|
|
103
|
+
default:
|
|
104
|
+
args.push(payload);
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
log[level](...args);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
log.error(`Failed to pipe task logs`, e);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
case constants_1.TaskEventType.PROGRESS: {
|
|
116
|
+
if (opts.logProgress) {
|
|
117
|
+
const { currentStep, totalSteps } = evt.payload;
|
|
118
|
+
log.info(`### STEP ${currentStep}/${totalSteps}`);
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case constants_1.TaskEventType.STATUS: {
|
|
123
|
+
if (opts.logStatus) {
|
|
124
|
+
const statusValue = evt.payload?.status ?? evt.payload;
|
|
125
|
+
let status = (0, logging_1.style)(statusValue);
|
|
126
|
+
switch (statusValue) {
|
|
127
|
+
case constants_1.TaskStatus.SUCCEEDED:
|
|
128
|
+
status = status.green.bold;
|
|
129
|
+
break;
|
|
130
|
+
case constants_1.TaskStatus.RUNNING:
|
|
131
|
+
status = status.blue.bold;
|
|
132
|
+
break;
|
|
133
|
+
case constants_1.TaskStatus.PENDING:
|
|
134
|
+
status = status.yellow;
|
|
135
|
+
break;
|
|
136
|
+
case constants_1.TaskStatus.WAITING_RETRY:
|
|
137
|
+
status = status.yellow.bold;
|
|
138
|
+
break;
|
|
139
|
+
case constants_1.TaskStatus.FAILED:
|
|
140
|
+
status = status.red.bold;
|
|
141
|
+
break;
|
|
142
|
+
case constants_1.TaskStatus.CANCELED:
|
|
143
|
+
status = status.red;
|
|
144
|
+
break;
|
|
145
|
+
default:
|
|
146
|
+
throw new db_decorators_1.InternalError(`Received unknown task status: ${evt.payload}`);
|
|
147
|
+
}
|
|
148
|
+
log.info(`### STATUS ${status}`);
|
|
149
|
+
}
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
default:
|
|
153
|
+
throw new db_decorators_1.InternalError(`Unknown task event classification: ${evt.classification}`);
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
}
|
|
77
157
|
//# sourceMappingURL=logging.js.map
|
package/lib/tasks/logging.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnyFunction, Logger, LoggingConfig, LogLevel, LogMeta, StringLike } from "@decaf-ts/logging";
|
|
2
|
-
import { LogPipe } from "./types";
|
|
2
|
+
import { EventPipe, LogPipe, LogPipeOptions } from "./types";
|
|
3
3
|
export declare class TaskLogger<LOG extends Logger> implements Logger {
|
|
4
4
|
protected logger: Logger;
|
|
5
5
|
protected bufferSize: number;
|
|
@@ -28,3 +28,4 @@ export declare class TaskLogger<LOG extends Logger> implements Logger {
|
|
|
28
28
|
verbose(msg: StringLike, verbosity?: number | LogMeta, meta?: LogMeta): void;
|
|
29
29
|
warn(msg: StringLike, meta?: LogMeta): void;
|
|
30
30
|
}
|
|
31
|
+
export declare function getLogPipe<LOG extends Logger>(log: LOG, opts?: LogPipeOptions): EventPipe;
|
package/lib/tasks/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/tasks/logging.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/tasks/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,7 @@ exports.TaskBackoffModel = void 0;
|
|
|
13
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
14
|
const constants_1 = require("./../constants.cjs");
|
|
15
15
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
|
|
17
|
-
let TaskBackoffModel = class TaskBackoffModel extends TaskBaseModel_1.TaskBaseModel {
|
|
16
|
+
let TaskBackoffModel = class TaskBackoffModel extends decorator_validation_1.Model {
|
|
18
17
|
constructor(arg) {
|
|
19
18
|
super(arg);
|
|
20
19
|
this.strategy = constants_1.BackoffStrategy.EXPONENTIAL;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { BackoffStrategy, JitterStrategy } from "../constants";
|
|
3
|
-
|
|
4
|
-
export declare class TaskBackoffModel extends TaskBaseModel {
|
|
3
|
+
export declare class TaskBackoffModel extends Model {
|
|
5
4
|
strategy: BackoffStrategy;
|
|
6
5
|
baseMs: number;
|
|
7
6
|
maxMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskBackoffModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskBackoffModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskBackoffModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskBackoffModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAOwC;AACxC,kDAA+D;AAC/D,qDAAmD;AAG5C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,4BAAK;IAoBzC,YAAY,GAAgC;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;QAhBb,aAAQ,GAAoB,2BAAe,CAAC,WAAW,CAAC;QAIxD,WAAM,GAAW,IAAI,CAAC;QAItB,UAAK,GAAW,MAAM,CAAC;QAKvB,WAAM,GAAoB,0BAAc,CAAC,IAAI,CAAC;IAI9C,CAAC;CACF,CAAA;AAvBY,4CAAgB;AAK3B;IAJC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,2BAAe,CAAC;IACvB,IAAA,wBAAW,EAAC,sBAAsB,CAAC;;kDACoB;AAIxD;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,gCAAgC,CAAC;;gDACxB;AAItB;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,cAAc,CAAC;;+CACL;AAKvB;IAHC,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,0BAAc,CAAC;IACtB,IAAA,wBAAW,EAAC,0BAA0B,CAAC;;gDACM;2BAlBnC,gBAAgB;IAD5B,IAAA,4BAAK,GAAE;;GACK,gBAAgB,CAuB5B"}
|
|
@@ -10,28 +10,31 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TaskEventModel = void 0;
|
|
13
|
-
const
|
|
13
|
+
const decorators_1 = require("./../../identity/decorators.cjs");
|
|
14
14
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
15
|
-
const
|
|
15
|
+
const decorators_2 = require("./../../model/decorators.cjs");
|
|
16
16
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
17
17
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
18
18
|
const constants_1 = require("./../constants.cjs");
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const decorators_3 = require("./../../persistence/decorators.cjs");
|
|
20
|
+
const BaseModel_1 = require("./../../model/BaseModel.cjs");
|
|
21
|
+
let TaskEventModel = class TaskEventModel extends BaseModel_1.BaseModel {
|
|
21
22
|
constructor(arg) {
|
|
22
23
|
super(arg);
|
|
24
|
+
this.ts = new Date();
|
|
23
25
|
}
|
|
24
26
|
};
|
|
25
27
|
exports.TaskEventModel = TaskEventModel;
|
|
26
28
|
__decorate([
|
|
27
|
-
(0, db_decorators_1.composed)(["taskId", "uuid", ":"
|
|
28
|
-
(0,
|
|
29
|
+
(0, db_decorators_1.composed)(["taskId", "classification", "uuid"], ":"),
|
|
30
|
+
(0, decorators_1.pk)(),
|
|
29
31
|
__metadata("design:type", String)
|
|
30
32
|
], TaskEventModel.prototype, "id", void 0);
|
|
31
33
|
__decorate([
|
|
32
|
-
(0, decorators_1.uuid)(false),
|
|
33
34
|
(0, db_decorators_1.readonly)(),
|
|
34
35
|
(0, decorator_validation_1.required)(),
|
|
36
|
+
(0, db_decorators_1.transient)(),
|
|
37
|
+
(0, decorators_3.uuid)(false),
|
|
35
38
|
__metadata("design:type", String)
|
|
36
39
|
], TaskEventModel.prototype, "uuid", void 0);
|
|
37
40
|
__decorate([
|
|
@@ -40,7 +43,8 @@ __decorate([
|
|
|
40
43
|
__metadata("design:type", String)
|
|
41
44
|
], TaskEventModel.prototype, "taskId", void 0);
|
|
42
45
|
__decorate([
|
|
43
|
-
(0,
|
|
46
|
+
(0, decorator_validation_1.date)(),
|
|
47
|
+
(0, decorator_validation_1.required)(),
|
|
44
48
|
__metadata("design:type", Date)
|
|
45
49
|
], TaskEventModel.prototype, "ts", void 0);
|
|
46
50
|
__decorate([
|
|
@@ -56,7 +60,7 @@ __decorate([
|
|
|
56
60
|
__metadata("design:type", Object)
|
|
57
61
|
], TaskEventModel.prototype, "payload", void 0);
|
|
58
62
|
exports.TaskEventModel = TaskEventModel = __decorate([
|
|
59
|
-
(0,
|
|
63
|
+
(0, decorators_2.table)("task_event"),
|
|
60
64
|
(0, decorator_validation_1.model)(),
|
|
61
65
|
__metadata("design:paramtypes", [Object])
|
|
62
66
|
], TaskEventModel);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { TaskEventType } from "../constants";
|
|
3
|
-
|
|
3
|
+
import { BaseModel } from "../../model/BaseModel";
|
|
4
|
+
export declare class TaskEventModel extends BaseModel {
|
|
4
5
|
id: string;
|
|
5
6
|
uuid: string;
|
|
6
7
|
taskId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskEventModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskEventModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskEventModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskEventModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA+C;AAC/C,yEAMwC;AACxC,6DAA+C;AAC/C,qDAA4C;AAC5C,2DAKiC;AACjC,kDAA6C;AAC7C,mEAAoD;AACpD,2DAAkD;AAI3C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,qBAAS;IA6B3C,YAAY,GAA8B;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;QAbb,OAAE,GAAS,IAAI,IAAI,EAAE,CAAC;IActB,CAAC;CACF,CAAA;AAhCY,wCAAc;AAGzB;IAFC,IAAA,wBAAQ,EAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACnD,IAAA,eAAE,GAAE;;0CACO;AAMZ;IAJC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,EAAC,KAAK,CAAC;;4CACE;AAId;IAFC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;;8CACK;AAIhB;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,+BAAQ,GAAE;8BACP,IAAI;0CAAc;AAKtB;IAHC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;IACV,IAAA,6BAAM,EAAC,yBAAa,CAAC;;sDACS;AAK/B;IAHC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;;+CACE;yBA3BH,cAAc;IAF1B,IAAA,kBAAK,EAAC,YAAY,CAAC;IACnB,IAAA,4BAAK,GAAE;;GACK,cAAc,CAgC1B"}
|
|
@@ -13,24 +13,27 @@ exports.TaskLogEntryModel = void 0;
|
|
|
13
13
|
const logging_1 = require("@decaf-ts/logging");
|
|
14
14
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
15
15
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
const index_1 = require("./../../model/index.cjs");
|
|
17
16
|
let TaskLogEntryModel = class TaskLogEntryModel extends decorator_validation_1.Model {
|
|
18
17
|
constructor(arg) {
|
|
19
18
|
super(arg);
|
|
19
|
+
this.ts = new Date();
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
exports.TaskLogEntryModel = TaskLogEntryModel;
|
|
23
23
|
__decorate([
|
|
24
|
-
(0,
|
|
24
|
+
(0, decorator_validation_1.date)(),
|
|
25
|
+
(0, decorator_validation_1.required)(),
|
|
25
26
|
__metadata("design:type", Date)
|
|
26
27
|
], TaskLogEntryModel.prototype, "ts", void 0);
|
|
27
28
|
__decorate([
|
|
28
29
|
(0, decorator_validation_1.required)(),
|
|
30
|
+
(0, decoration_1.prop)(),
|
|
29
31
|
(0, decorator_validation_1.option)(logging_1.LogLevel),
|
|
30
32
|
__metadata("design:type", String)
|
|
31
33
|
], TaskLogEntryModel.prototype, "level", void 0);
|
|
32
34
|
__decorate([
|
|
33
35
|
(0, decorator_validation_1.required)(),
|
|
36
|
+
(0, decoration_1.prop)(),
|
|
34
37
|
__metadata("design:type", String)
|
|
35
38
|
], TaskLogEntryModel.prototype, "msg", void 0);
|
|
36
39
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskLogEntryModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskLogEntryModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"TaskLogEntryModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskLogEntryModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6C;AAC7C,yEAOwC;AACxC,qDAA4C;AAGrC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;IAiB1C,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;QAfb,OAAE,GAAS,IAAI,IAAI,EAAE,CAAC;IAgBtB,CAAC;CACF,CAAA;AApBY,8CAAiB;AAG5B;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,+BAAQ,GAAE;8BACP,IAAI;6CAAc;AAKtB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;IACN,IAAA,6BAAM,EAAC,kBAAQ,CAAC;;gDACA;AAIjB;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;;8CACM;AAGb;IADC,IAAA,iBAAI,GAAE;;+CACI;4BAfA,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAoB7B"}
|
|
@@ -6,13 +6,13 @@ import { TaskBackoffModel } from "./TaskBackoffModel";
|
|
|
6
6
|
import { TaskStepSpecModel } from "./TaskStepSpecModel";
|
|
7
7
|
import { TaskStepResultModel } from "./TaskStepResultModel";
|
|
8
8
|
import { TaskLogEntryModel } from "./TaskLogEntryModel";
|
|
9
|
-
export declare class TaskModel extends TaskBaseModel {
|
|
9
|
+
export declare class TaskModel<INPUT = any, OUTPUT = any> extends TaskBaseModel {
|
|
10
10
|
id: string;
|
|
11
11
|
atomicity: TaskType;
|
|
12
12
|
classification: string;
|
|
13
13
|
status: TaskStatus;
|
|
14
|
-
input?:
|
|
15
|
-
output?:
|
|
14
|
+
input?: INPUT;
|
|
15
|
+
output?: OUTPUT;
|
|
16
16
|
error?: TaskErrorModel;
|
|
17
17
|
attempt: number;
|
|
18
18
|
maxAttempts: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAgD;AAChD,yEAQwC;AACxC,gEAA+C;AAC/C,kDAAoD;AACpD,yDAAkD;AAClD,6DAAsD;AAGtD,qDAAyD;AACzD,2DAAoD;AACpD,6DAA+C;AAKxC,IAAM,SAAS,GAAf,MAAM,
|
|
1
|
+
{"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAgD;AAChD,yEAQwC;AACxC,gEAA+C;AAC/C,kDAAoD;AACpD,yDAAkD;AAClD,6DAAsD;AAGtD,qDAAyD;AACzD,2DAAoD;AACpD,6DAA+C;AAKxC,IAAM,SAAS,GAAf,MAAM,SAAqC,SAAQ,6BAAa;IA6ErE,YAAY,GAAyB;QACnC,KAAK,CAAC,GAAG,CAAC,CAAC;QA1Eb,8BAA8B;QAI9B,cAAS,GAAa,oBAAQ,CAAC,MAAM,CAAC,CAAC,qCAAqC;QAK5E,YAAY;QAIZ,WAAM,GAAe,sBAAU,CAAC,OAAO,CAAC;QAsDxC,UAAU;QAIV,YAAO,GAAyB,EAAE,CAAC;IAInC,CAAC;CACF,CAAA;AAhFY,8BAAS;AAEpB;IADC,IAAA,eAAE,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACT;AAMZ;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,oBAAQ,CAAC;;4CACqB;AAGtC;IADC,IAAA,+BAAQ,GAAE;;iDACa;AAMxB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,sBAAU,CAAC;;yCACqB;AAIxC;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACE;AAId;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;yCACI;AAIhB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;8BACJ,+BAAc;wCAAC;AAKvB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;0CACM;AAIjB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;8CACU;AAKrB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;IACX,IAAA,wBAAW,EAAC,uBAAuB,CAAC;8BAC3B,mCAAgB;0CAAC;AAI3B;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,0BAA0B,CAAC;8BAC5B,IAAI;4CAAC;AAKjB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,6BAA6B,CAAC;;6CACvB;AAIpB;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iCAAiC,CAAC;8BACjC,IAAI;8CAAC;AAKnB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACgB;AAI5B;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,iBAAI,GAAE;;8CACc;AAIrB;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;8CAC6B;AAMpC;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;0CAC4B;oBA3ExB,SAAS;IAFrB,IAAA,kBAAK,EAAC,OAAO,CAAC;IACd,IAAA,4BAAK,GAAE;;GACK,SAAS,CAgFrB"}
|
|
@@ -14,6 +14,7 @@ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
|
14
14
|
const constants_1 = require("./../constants.cjs");
|
|
15
15
|
const TaskErrorModel_1 = require("./TaskErrorModel.cjs");
|
|
16
16
|
const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
|
|
17
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
17
18
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
18
19
|
let TaskStepResultModel = class TaskStepResultModel extends TaskBaseModel_1.TaskBaseModel {
|
|
19
20
|
constructor(arg) {
|
|
@@ -23,7 +24,9 @@ let TaskStepResultModel = class TaskStepResultModel extends TaskBaseModel_1.Task
|
|
|
23
24
|
exports.TaskStepResultModel = TaskStepResultModel;
|
|
24
25
|
__decorate([
|
|
25
26
|
(0, decorator_validation_1.required)(),
|
|
27
|
+
(0, decoration_1.prop)(),
|
|
26
28
|
(0, decoration_1.description)("The status of a step"),
|
|
29
|
+
(0, db_decorators_1.serialize)(),
|
|
27
30
|
__metadata("design:type", String)
|
|
28
31
|
], TaskStepResultModel.prototype, "status", void 0);
|
|
29
32
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStepResultModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepResultModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,kDAA0C;AAC1C,yDAAkD;AAClD,uDAAgD;AAChD,qDAAyD;AAGlD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,6BAAa;
|
|
1
|
+
{"version":3,"file":"TaskStepResultModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepResultModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,kDAA0C;AAC1C,yDAAkD;AAClD,uDAAgD;AAChD,2DAAoD;AACpD,qDAAyD;AAGlD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,6BAAa;IAepD,YAAY,GAAmC;QAC7C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAlBY,kDAAmB;AAK9B;IAJC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,sBAAsB,CAAC;IACnC,IAAA,yBAAS,GAAE;;mDACQ;AAIpB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iCAAiC,CAAC;;mDAClC;AAIb;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,4BAA4B,CAAC;8BAClC,+BAAc;kDAAC;8BAbZ,mBAAmB;IAD/B,IAAA,4BAAK,GAAE;;GACK,mBAAmB,CAkB/B"}
|
|
@@ -22,11 +22,14 @@ let TaskStepSpecModel = class TaskStepSpecModel extends TaskBaseModel_1.TaskBase
|
|
|
22
22
|
exports.TaskStepSpecModel = TaskStepSpecModel;
|
|
23
23
|
__decorate([
|
|
24
24
|
(0, decorator_validation_1.required)(),
|
|
25
|
+
(0, decoration_1.prop)(),
|
|
25
26
|
(0, decoration_1.description)("task handler type"),
|
|
27
|
+
(0, db_decorators_1.serialize)(),
|
|
26
28
|
__metadata("design:type", String)
|
|
27
29
|
], TaskStepSpecModel.prototype, "classification", void 0);
|
|
28
30
|
__decorate([
|
|
29
31
|
(0, decoration_1.description)("optional task step input"),
|
|
32
|
+
(0, decoration_1.prop)(),
|
|
30
33
|
(0, db_decorators_1.serialize)(),
|
|
31
34
|
__metadata("design:type", Object)
|
|
32
35
|
], TaskStepSpecModel.prototype, "input", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,uDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,uDAAgD;AAChD,qDAAyD;AACzD,2DAAoD;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,6BAAa;IAYlD,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAfY,8CAAiB;AAK5B;IAJC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,mBAAmB,CAAC;IAChC,IAAA,yBAAS,GAAE;;yDACY;AAKxB;IAHC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;IACvC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;gDACA;4BAVD,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAe7B"}
|
package/lib/tasks/types.d.ts
CHANGED
|
@@ -2,10 +2,22 @@ import { TaskContext } from "./TaskContext";
|
|
|
2
2
|
import { ContextFlags } from "@decaf-ts/db-decorators";
|
|
3
3
|
import { TaskLogger } from "./logging";
|
|
4
4
|
import { LogLevel } from "@decaf-ts/logging";
|
|
5
|
+
import { Adapter } from "../persistence/index";
|
|
6
|
+
import { TaskEventBus } from "./TaskEventBus";
|
|
7
|
+
import { TaskHandlerRegistry } from "./TaskHandlerRegistry";
|
|
8
|
+
import { TaskEventModel } from "./models/TaskEventModel";
|
|
9
|
+
import { TaskStatus } from "./constants";
|
|
10
|
+
import { TaskErrorModel } from "./models/TaskErrorModel";
|
|
5
11
|
export interface ITaskHandler<I = any, O = any> {
|
|
6
12
|
type: string;
|
|
7
13
|
run(input: I, ctx: TaskContext): Promise<O>;
|
|
8
14
|
}
|
|
15
|
+
export type LogPipeOptions = {
|
|
16
|
+
style: boolean;
|
|
17
|
+
logProgress: boolean;
|
|
18
|
+
logStatus: boolean;
|
|
19
|
+
};
|
|
20
|
+
export type EventPipe = (evt: TaskEventModel, ...args: any[]) => Promise<void>;
|
|
9
21
|
export type LogPipe = (logs: [LogLevel, string, any][]) => Promise<void>;
|
|
10
22
|
export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extends ContextFlags<LOG> {
|
|
11
23
|
taskId: string;
|
|
@@ -16,11 +28,24 @@ export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extend
|
|
|
16
28
|
heartbeat: () => Promise<void>;
|
|
17
29
|
resultCache?: Record<string, any>;
|
|
18
30
|
}
|
|
19
|
-
export type
|
|
31
|
+
export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
32
|
+
adapter: A;
|
|
33
|
+
bus: TaskEventBus;
|
|
34
|
+
registry: TaskHandlerRegistry;
|
|
20
35
|
workerId: string;
|
|
21
36
|
concurrency: number;
|
|
22
37
|
leaseMs: number;
|
|
23
38
|
pollMsIdle: number;
|
|
24
39
|
pollMsBusy: number;
|
|
25
40
|
logTailMax: number;
|
|
41
|
+
streamBufferSize: number;
|
|
42
|
+
maxLoggingBuffer: number;
|
|
43
|
+
loggingBufferTruncation: number;
|
|
44
|
+
};
|
|
45
|
+
export type TaskProgressPayload = {
|
|
46
|
+
status: TaskStatus;
|
|
47
|
+
currentStep?: number;
|
|
48
|
+
totalSteps?: number;
|
|
49
|
+
output?: any;
|
|
50
|
+
error?: TaskErrorModel;
|
|
26
51
|
};
|
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TaskEventModel } from "./models/TaskEventModel";
|
|
2
|
-
import { ModelService } from "../services/ModelService";
|
|
3
|
-
import { Constructor } from "@decaf-ts/decoration";
|
|
4
|
-
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
5
|
-
import { ContextOf, EventIds } from "../persistence/types";
|
|
6
|
-
import { ContextualArgs } from "../utils/ContextualLoggedClass";
|
|
7
|
-
export declare class TaskEventRepository extends ModelService<TaskEventModel> {
|
|
8
|
-
constructor();
|
|
9
|
-
protected onCreate(table: Constructor<TaskEventModel>, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, payload: TaskEventModel, ...args: ContextualArgs<ContextOf<this["repo"]>>): Promise<void>;
|
|
10
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
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
|
-
import { TaskEventModel } from "./models/TaskEventModel.js";
|
|
11
|
-
import { service } from "./../utils/decorators.js";
|
|
12
|
-
import { ModelService } from "./../services/ModelService.js";
|
|
13
|
-
import { InternalError, } from "@decaf-ts/db-decorators";
|
|
14
|
-
import { Context } from "./../persistence/index.js";
|
|
15
|
-
import { TaskModel } from "./models/TaskModel.js";
|
|
16
|
-
let TaskEventRepository = class TaskEventRepository extends ModelService {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(TaskEventModel);
|
|
19
|
-
this.observe({ refresh: this.onCreate.bind(this) }, this.repo.filters.onlyOnCreate);
|
|
20
|
-
}
|
|
21
|
-
onCreate(table, event, id, payload, ...args) {
|
|
22
|
-
if (payload instanceof Context) {
|
|
23
|
-
throw new InternalError("Task handlers require the payload to be included");
|
|
24
|
-
}
|
|
25
|
-
const { log, ctxArgs } = this.logCtx(args, this.onCreate);
|
|
26
|
-
log.verbose(`handling task event: ${event} for task ${payload.taskId}: issuing ${payload.classification}`);
|
|
27
|
-
return this.updateObservers(TaskModel, payload.classification, payload.taskId, payload, ...ctxArgs);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
TaskEventRepository = __decorate([
|
|
31
|
-
service(TaskEventModel),
|
|
32
|
-
__metadata("design:paramtypes", [])
|
|
33
|
-
], TaskEventRepository);
|
|
34
|
-
export { TaskEventRepository };
|
|
35
|
-
//# sourceMappingURL=TaskEventRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskEventRepository.js","sourceRoot":"","sources":["../../../src/tasks/TaskEventRepository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,OAAO,EAAE,iCAA4B;AAC9C,OAAO,EAAE,YAAY,EAAE,sCAAiC;AAExD,OAAO,EAEL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAC/C,OAAO,EAAE,SAAS,EAAE,8BAA2B;AAGxC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,YAA4B;IACnE;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CACV,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAC/B,CAAC;IACJ,CAAC;IAES,QAAQ,CAChB,KAAkC,EAClC,KAAqD,EACrD,EAAY,EACZ,OAAuB,EACvB,GAAG,IAA6C;QAEhD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,aAAa,CACrB,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CACT,wBAAwB,KAAK,aAAa,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,cAAc,EAAE,CAC9F,CAAC;QACF,OAAO,IAAI,CAAC,eAAe,CACzB,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,EACd,OAAO,EACP,GAAG,OAAO,CACX,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,mBAAmB;IAD/B,OAAO,CAAC,cAAc,CAAC;;GACX,mBAAmB,CAiC/B"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TaskEventRepository = void 0;
|
|
13
|
-
const TaskEventModel_1 = require("./models/TaskEventModel.cjs");
|
|
14
|
-
const decorators_1 = require("./../utils/decorators.cjs");
|
|
15
|
-
const ModelService_1 = require("./../services/ModelService.cjs");
|
|
16
|
-
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
17
|
-
const index_1 = require("./../persistence/index.cjs");
|
|
18
|
-
const TaskModel_1 = require("./models/TaskModel.cjs");
|
|
19
|
-
let TaskEventRepository = class TaskEventRepository extends ModelService_1.ModelService {
|
|
20
|
-
constructor() {
|
|
21
|
-
super(TaskEventModel_1.TaskEventModel);
|
|
22
|
-
this.observe({ refresh: this.onCreate.bind(this) }, this.repo.filters.onlyOnCreate);
|
|
23
|
-
}
|
|
24
|
-
onCreate(table, event, id, payload, ...args) {
|
|
25
|
-
if (payload instanceof index_1.Context) {
|
|
26
|
-
throw new db_decorators_1.InternalError("Task handlers require the payload to be included");
|
|
27
|
-
}
|
|
28
|
-
const { log, ctxArgs } = this.logCtx(args, this.onCreate);
|
|
29
|
-
log.verbose(`handling task event: ${event} for task ${payload.taskId}: issuing ${payload.classification}`);
|
|
30
|
-
return this.updateObservers(TaskModel_1.TaskModel, payload.classification, payload.taskId, payload, ...ctxArgs);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
exports.TaskEventRepository = TaskEventRepository;
|
|
34
|
-
exports.TaskEventRepository = TaskEventRepository = __decorate([
|
|
35
|
-
(0, decorators_1.service)(TaskEventModel_1.TaskEventModel),
|
|
36
|
-
__metadata("design:paramtypes", [])
|
|
37
|
-
], TaskEventRepository);
|
|
38
|
-
//# sourceMappingURL=TaskEventRepository.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TaskEventModel } from "./models/TaskEventModel";
|
|
2
|
-
import { ModelService } from "../services/ModelService";
|
|
3
|
-
import { Constructor } from "@decaf-ts/decoration";
|
|
4
|
-
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
5
|
-
import { ContextOf, EventIds } from "../persistence/types";
|
|
6
|
-
import { ContextualArgs } from "../utils/ContextualLoggedClass";
|
|
7
|
-
export declare class TaskEventRepository extends ModelService<TaskEventModel> {
|
|
8
|
-
constructor();
|
|
9
|
-
protected onCreate(table: Constructor<TaskEventModel>, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, payload: TaskEventModel, ...args: ContextualArgs<ContextOf<this["repo"]>>): Promise<void>;
|
|
10
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaskEventRepository.js","sourceRoot":"","sources":["../../src/tasks/TaskEventRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAAyD;AACzD,0DAA8C;AAC9C,iEAAwD;AAExD,2DAIiC;AAGjC,sDAA+C;AAC/C,sDAA+C;AAGxC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,2BAA4B;IACnE;QACE,KAAK,CAAC,+BAAc,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CACV,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAC/B,CAAC;IACJ,CAAC;IAES,QAAQ,CAChB,KAAkC,EAClC,KAAqD,EACrD,EAAY,EACZ,OAAuB,EACvB,GAAG,IAA6C;QAEhD,IAAI,OAAO,YAAY,eAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,6BAAa,CACrB,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,GAAG,CAAC,OAAO,CACT,wBAAwB,KAAK,aAAa,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,cAAc,EAAE,CAC9F,CAAC;QACF,OAAO,IAAI,CAAC,eAAe,CACzB,qBAAS,EACT,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,EACd,OAAO,EACP,GAAG,OAAO,CACX,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,oBAAO,EAAC,+BAAc,CAAC;;GACX,mBAAmB,CAiC/B"}
|