@decaf-ts/core 0.7.63 → 0.7.65
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/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/migrations/MigrationService.js +2 -4
- package/lib/esm/migrations/MigrationService.js.map +1 -1
- package/lib/esm/migrations/MigrationTasks.d.ts +9 -0
- package/lib/esm/migrations/MigrationTasks.js +69 -0
- package/lib/esm/migrations/MigrationTasks.js.map +1 -0
- package/lib/esm/migrations/index.d.ts +1 -0
- package/lib/esm/migrations/index.js +1 -0
- package/lib/esm/migrations/index.js.map +1 -1
- package/lib/esm/persistence/Context.d.ts +4 -0
- package/lib/esm/persistence/Context.js +6 -0
- package/lib/esm/persistence/Context.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.d.ts +2 -1
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +1 -0
- package/lib/esm/persistence/constants.js +1 -0
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/persistence/types.d.ts +1 -1
- package/lib/esm/ram/RamAdapter.js +9 -9
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/types.d.ts +2 -2
- package/lib/esm/services/PersistenceService.js +9 -1
- package/lib/esm/services/PersistenceService.js.map +1 -1
- package/lib/esm/tasks/TaskContext.d.ts +9 -4
- package/lib/esm/tasks/TaskContext.js +18 -3
- package/lib/esm/tasks/TaskContext.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.d.ts +8 -22
- package/lib/esm/tasks/TaskEngine.js +189 -112
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
- package/lib/esm/tasks/TaskEventBus.js +15 -7
- package/lib/esm/tasks/TaskEventBus.js.map +1 -1
- package/lib/esm/tasks/TaskHandler.js +9 -2
- package/lib/esm/tasks/TaskHandler.js.map +1 -1
- package/lib/esm/tasks/TaskService.d.ts +33 -3
- package/lib/esm/tasks/TaskService.js +181 -2
- package/lib/esm/tasks/TaskService.js.map +1 -1
- package/lib/esm/tasks/builder.d.ts +42 -0
- package/lib/esm/tasks/builder.js +180 -0
- package/lib/esm/tasks/builder.js.map +1 -0
- package/lib/esm/tasks/logging.d.ts +30 -0
- package/lib/esm/tasks/logging.js +73 -0
- package/lib/esm/tasks/logging.js.map +1 -0
- package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
- package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
- package/lib/esm/tasks/models/TaskModel.js +10 -3
- package/lib/esm/tasks/models/TaskModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/esm/tasks/types.d.ts +8 -4
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/migrations/MigrationService.cjs +2 -4
- package/lib/migrations/MigrationService.js.map +1 -1
- package/lib/migrations/MigrationTasks.cjs +72 -0
- package/lib/migrations/MigrationTasks.d.ts +9 -0
- package/lib/migrations/MigrationTasks.js.map +1 -0
- package/lib/migrations/index.cjs +1 -0
- package/lib/migrations/index.d.ts +1 -0
- package/lib/migrations/index.js.map +1 -1
- package/lib/persistence/Context.cjs +8 -1
- package/lib/persistence/Context.d.ts +4 -0
- package/lib/persistence/Context.js.map +1 -1
- package/lib/persistence/ObserverHandler.d.ts +2 -1
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/constants.cjs +1 -0
- package/lib/persistence/constants.d.ts +1 -0
- package/lib/persistence/constants.js.map +1 -1
- package/lib/persistence/types.d.ts +1 -1
- package/lib/ram/RamAdapter.cjs +8 -8
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/types.d.ts +2 -2
- package/lib/services/PersistenceService.cjs +9 -1
- package/lib/services/PersistenceService.js.map +1 -1
- package/lib/tasks/TaskContext.cjs +19 -4
- package/lib/tasks/TaskContext.d.ts +9 -4
- package/lib/tasks/TaskContext.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +187 -110
- package/lib/tasks/TaskEngine.d.ts +8 -22
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskEventBus.cjs +15 -7
- package/lib/tasks/TaskEventBus.d.ts +8 -3
- package/lib/tasks/TaskEventBus.js.map +1 -1
- package/lib/tasks/TaskHandler.cjs +9 -2
- package/lib/tasks/TaskHandler.js.map +1 -1
- package/lib/tasks/TaskService.cjs +179 -0
- package/lib/tasks/TaskService.d.ts +33 -3
- package/lib/tasks/TaskService.js.map +1 -1
- package/lib/tasks/builder.cjs +186 -0
- package/lib/tasks/builder.d.ts +42 -0
- package/lib/tasks/builder.js.map +1 -0
- package/lib/tasks/logging.cjs +77 -0
- package/lib/tasks/logging.d.ts +30 -0
- package/lib/tasks/logging.js.map +1 -0
- package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
- package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/tasks/models/TaskModel.cjs +10 -3
- package/lib/tasks/models/TaskModel.d.ts +2 -2
- package/lib/tasks/models/TaskModel.js.map +1 -1
- package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
- package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
- package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/tasks/types.d.ts +8 -4
- package/package.json +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
import { Adapter } from "./../persistence/Adapter.js";
|
|
8
|
+
import { PersistenceKeys } from "./../persistence/constants.js";
|
|
9
|
+
import { task } from "./../tasks/decorators.js";
|
|
10
|
+
import { TaskHandler } from "./../tasks/TaskHandler.js";
|
|
11
|
+
import { InternalError } from "@decaf-ts/db-decorators";
|
|
12
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
13
|
+
let MigrationTask = class MigrationTask extends TaskHandler {
|
|
14
|
+
async run(input, ctx) {
|
|
15
|
+
ctx.logger.info(`Executing migration ${input.reference}`);
|
|
16
|
+
const manifest = Metadata.migrations().find(([reference]) => reference === input.reference);
|
|
17
|
+
if (!manifest)
|
|
18
|
+
throw new InternalError(`Migration ${input.reference} is not registered with the metadata layer`);
|
|
19
|
+
const MigrationClass = manifest[1];
|
|
20
|
+
let migration;
|
|
21
|
+
try {
|
|
22
|
+
migration = new MigrationClass();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw new InternalError(`Failed to instantiate migration ${input.reference}: ${err}`);
|
|
26
|
+
}
|
|
27
|
+
const meta = Metadata.get(migration.constructor, PersistenceKeys.MIGRATION);
|
|
28
|
+
const flavour = meta?.flavour || migration.flavour;
|
|
29
|
+
const adapter = Adapter.get(flavour);
|
|
30
|
+
if (!adapter)
|
|
31
|
+
throw new InternalError(`Unable to resolve adapter for migration ${input.reference}`);
|
|
32
|
+
const qr = adapter.client;
|
|
33
|
+
const args = input.args ?? [];
|
|
34
|
+
//
|
|
35
|
+
// if (typeof (migration as any).boot === "function") {
|
|
36
|
+
// await (migration as any).boot(...args, ctx);
|
|
37
|
+
// }
|
|
38
|
+
try {
|
|
39
|
+
await migration.up(qr, adapter, ...args, ctx);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
ctx.logger.error(`Up phase for ${input.reference} failed: ${e}`);
|
|
43
|
+
// await ctx.flush();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await migration.migrate(qr, adapter, ...args, ctx);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
ctx.logger.error(`migration phase for ${input.reference} failed: ${e}`);
|
|
51
|
+
// await ctx.flush();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
await migration.down(qr, adapter, ...args, ctx);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
ctx.logger.error(`down phase for ${input.reference} failed: ${e}`);
|
|
59
|
+
// await ctx.flush();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
ctx.logger.info(`migration ${input.reference} completed`);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
MigrationTask = __decorate([
|
|
66
|
+
task("migration")
|
|
67
|
+
], MigrationTask);
|
|
68
|
+
export { MigrationTask };
|
|
69
|
+
//# sourceMappingURL=MigrationTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationTasks.js","sourceRoot":"","sources":["../../../src/migrations/MigrationTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,gCAA6B;AAC7B,+BAA4B;AAC5B,sCAAmC;AACnC,2BAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,gCAA6B;AAC7B,+BAA4B;AAC5B,sCAAmC;AACnC,oCAAiC;AACjC,2BAAwB"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Context as Ctx, ContextFlags } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { AdapterFlags } from "./types";
|
|
3
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
4
|
+
export declare class ContextLock extends Lock {
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
3
7
|
export declare class Context<F extends ContextFlags<any> = AdapterFlags<any>> extends Ctx<F> {
|
|
4
8
|
constructor(ctx?: Context<any>);
|
|
5
9
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { Context as Ctx } from "@decaf-ts/db-decorators";
|
|
2
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
3
|
+
export class ContextLock extends Lock {
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
}
|
|
7
|
+
}
|
|
2
8
|
export class Context extends Ctx {
|
|
3
9
|
constructor(ctx) {
|
|
4
10
|
super(ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/persistence/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAgB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/persistence/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAgB,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,MAAM,OAAO,WAAY,SAAQ,IAAI;IACnC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;CACF;AAED,MAAM,OAAO,OAEX,SAAQ,GAAM;IACd,YAAY,GAAkB;QAC5B,KAAK,CAAC,GAAe,CAAC,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -4,6 +4,7 @@ import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
|
4
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
5
|
import { Constructor } from "@decaf-ts/decoration";
|
|
6
6
|
import { ContextualArgs } from "../utils/ContextualLoggedClass";
|
|
7
|
+
import { Context } from "./Context";
|
|
7
8
|
/**
|
|
8
9
|
* @description Manages a collection of observers for database events
|
|
9
10
|
* @summary The ObserverHandler class implements the Observable interface and provides a centralized
|
|
@@ -33,7 +34,7 @@ import { ContextualArgs } from "../utils/ContextualLoggedClass";
|
|
|
33
34
|
* handler.unObserve(myObserver);
|
|
34
35
|
* ```
|
|
35
36
|
*/
|
|
36
|
-
export declare class ObserverHandler implements PersistenceObservable<
|
|
37
|
+
export declare class ObserverHandler<C extends Context<any> = Context> implements PersistenceObservable<C> {
|
|
37
38
|
/**
|
|
38
39
|
* @description Collection of registered observers
|
|
39
40
|
* @summary Array of observer objects along with their optional filters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObserverHandler.js","sourceRoot":"","sources":["../../../src/persistence/ObserverHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,qBAAkB;AAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,eAAe;IAA5B;
|
|
1
|
+
{"version":3,"file":"ObserverHandler.js","sourceRoot":"","sources":["../../../src/persistence/ObserverHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,qBAAkB;AAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,eAAe;IAA5B;QAGE;;;WAGG;QACgB,cAAS,GAGtB,EAAE,CAAC;IAoHX,CAAC;IAlHC;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAkB,EAAE,MAAuB;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,6BAA6B,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAkB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,KAAK,CAAC,eAAe,CACnB,KAA8B,EAC9B,KAAqD,EACrD,EAAY,EACZ,GAAG,IAAyB;QAE5B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CACrC,IAAI,CAAC,eAAe,EACpB,SAAS,EACT,KAAK,EACL,GAAG,IAAI,CACR,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,SAAS;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CACP,6BAA6B,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAC3D,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CACL,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;gBAC9B,GAAG,CAAC,KAAK,CACP,+BAA+B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAChF,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -55,6 +55,7 @@ export var PersistenceKeys;
|
|
|
55
55
|
PersistenceKeys["QUERY"] = "query";
|
|
56
56
|
PersistenceKeys["UUID"] = "uuid";
|
|
57
57
|
PersistenceKeys["INITIALIZATION"] = "initialization";
|
|
58
|
+
PersistenceKeys["SHUTDOWN"] = "shutdown";
|
|
58
59
|
PersistenceKeys["BY_KEY"] = "by-key";
|
|
59
60
|
})(PersistenceKeys || (PersistenceKeys = {}));
|
|
60
61
|
export const DefaultAdapterFlags = Object.assign({}, DefaultRepositoryFlags, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,gCAA2B;AAE3D;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,gCAA2B;AAE3D;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eAsEX;AAtED,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,0CAA0C;IAC1C,kCAAe,CAAA;IAEf,sDAAsD;IACtD,oCAAiB,CAAA;IAEjB,4CAA4C;IAC5C,sCAAmB,CAAA;IAEnB,yDAAyD;IACzD,2DAAwC,CAAA;IAExC,sCAAmB,CAAA;IACnB,+CAA+C;IAC/C,kCAAe,CAAA;IAEf,gDAAgD;IAChD,oCAAiB,CAAA;IAEjB,oDAAoD;IACpD,0CAAuB,CAAA;IAEvB,YAAY;IACZ,yDAAyD;IACzD,0CAAuB,CAAA;IAEvB,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,YAAY;IAEZ,sDAAsD;IACtD,4CAAyB,CAAA;IAEzB,sDAAsD;IACtD,wCAAqB,CAAA;IAErB,wDAAwD;IACxD,qDAAqC,CAAA;IAErC,yDAAyD;IACzD,uDAAuC,CAAA;IAEvC,yDAAyD;IACzD,uDAAuC,CAAA;IACvC,yDAAyD;IACzD,yDAAyC,CAAA;IAEzC,6CAA6C;IAC7C,wCAAqB,CAAA;IACrB,6CAA6C;IAC7C,8CAA2B,CAAA;IAC3B,6CAA6C;IAC7C,0CAAuB,CAAA;IAEvB,0CAAuB,CAAA;IAEvB,kCAAe,CAAA;IAEf,gCAAa,CAAA;IAEb,oDAAiC,CAAA;IACjC,wCAAqB,CAAA;IAErB,oCAAiB,CAAA;AACnB,CAAC,EAtEW,eAAe,KAAf,eAAe,QAsE1B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAiB,MAAM,CAAC,MAAM,CAC5D,EAAE,EACF,sBAAsB,EACtB;IACE,uBAAuB,EAAE,IAAI;IAC7B,kBAAkB,EAAE,IAAI;IACxB,yBAAyB,EAAE,KAAK;IAChC,0BAA0B,EAAE,KAAK;IACjC,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,KAAK;IACzB,MAAM,EAAE,KAAK;CACd,CACc,CAAC;AAElB,MAAM,CAAC,MAAM,wBAAwB,GAM/B;IACJ,aAAa,CAAC,MAAM;IACpB,aAAa,CAAC,MAAM;IACpB,aAAa,CAAC,MAAM;IACpB,qBAAqB,CAAC,UAAU;IAChC,qBAAqB,CAAC,UAAU;IAChC,qBAAqB,CAAC,UAAU;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAMlC,CAAC,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,mBAAmB,GAM1B,CAAC,eAAe,CAAC,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,2BAA2B,GAMlC;IACJ,eAAe,CAAC,KAAK;IACrB,qBAAqB,CAAC,OAAO;IAC7B,qBAAqB,CAAC,OAAO;IAC7B,qBAAqB,CAAC,OAAO;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAM9B,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -14,7 +14,7 @@ export type LoggerOfContext<C extends Context<any>> = LoggerOfFlags<FlagsOfConte
|
|
|
14
14
|
export type ContextOfRepository<R extends Repository<any, any>> = R extends Repository<any, infer A> ? ContextOf<A> : never;
|
|
15
15
|
export type FlagsOfRepository<R extends Repository<any, any>> = FlagsOfContext<ContextOfRepository<R>>;
|
|
16
16
|
export type LoggerOfRepository<R extends Repository<any, any>> = LoggerOfContext<ContextOfRepository<R>>;
|
|
17
|
-
export type ContextOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any> | ContextualLoggedClass<any>> = OBJ extends Adapter<any, any, any, infer C> ? C : OBJ extends Repository<any, any> ? ContextOfRepository<OBJ> : OBJ extends ContextualLoggedClass<infer C> ? C :
|
|
17
|
+
export type ContextOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any> | ContextualLoggedClass<any>> = OBJ extends Adapter<any, any, any, infer C> ? C : OBJ extends Repository<any, any> ? ContextOfRepository<OBJ> : OBJ extends ContextualLoggedClass<infer C> ? C : never;
|
|
18
18
|
export type ConfigOf<OBJ extends Adapter<any, any, any, any>> = OBJ extends Adapter<infer C, any, any, any> ? C : never;
|
|
19
19
|
export type LoggerOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? LoggerOfContext<C> : never;
|
|
20
20
|
export type FlagsOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? FlagsOfContext<C> : never;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RamStatement } from "./RamStatement.js";
|
|
2
2
|
import { Adapter, PersistenceKeys, Sequence, } from "./../persistence/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { MultiLock } from "@decaf-ts/transactional-decorators";
|
|
4
4
|
import { hashObj, Model } from "@decaf-ts/decorator-validation";
|
|
5
5
|
import { BaseError, ConflictError, DBKeys, InternalError, NotFoundError, onCreate, onCreateUpdate, } from "@decaf-ts/db-decorators";
|
|
6
6
|
import { createdByOnRamCreateUpdate } from "./handlers.js";
|
|
@@ -52,11 +52,11 @@ import { RamPaginator } from "./RamPaginator.js";
|
|
|
52
52
|
*/
|
|
53
53
|
export class RamAdapter extends Adapter {
|
|
54
54
|
constructor(conf = {
|
|
55
|
-
lock: new
|
|
55
|
+
lock: new MultiLock(),
|
|
56
56
|
}, alias) {
|
|
57
57
|
super(conf, RamFlavour, alias);
|
|
58
58
|
this.indexes = {};
|
|
59
|
-
this.lock = conf.lock || new
|
|
59
|
+
this.lock = conf.lock || new MultiLock();
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* @description Gets the repository constructor for a model
|
|
@@ -163,9 +163,9 @@ export class RamAdapter extends Adapter {
|
|
|
163
163
|
if (this.client.get(tableName) &&
|
|
164
164
|
this.client.get(tableName)?.has(id))
|
|
165
165
|
throw new ConflictError(`Record with id ${id} already exists in table ${tableName}`);
|
|
166
|
-
await this.lock.acquire();
|
|
166
|
+
await this.lock.acquire(tableName);
|
|
167
167
|
this.client.get(tableName)?.set(id, model);
|
|
168
|
-
this.lock.release();
|
|
168
|
+
this.lock.release(tableName);
|
|
169
169
|
return model;
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
@@ -241,9 +241,9 @@ export class RamAdapter extends Adapter {
|
|
|
241
241
|
throw new NotFoundError(`Table ${tableName} not found`);
|
|
242
242
|
if (!this.client.get(tableName)?.has(id))
|
|
243
243
|
throw new NotFoundError(`Record with id ${id} not found in table ${tableName}`);
|
|
244
|
-
await this.lock.acquire();
|
|
244
|
+
await this.lock.acquire(tableName);
|
|
245
245
|
this.client.get(tableName)?.set(id, model);
|
|
246
|
-
this.lock.release();
|
|
246
|
+
this.lock.release(tableName);
|
|
247
247
|
return model;
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
@@ -284,12 +284,12 @@ export class RamAdapter extends Adapter {
|
|
|
284
284
|
throw new NotFoundError(`Table ${tableName} not found`);
|
|
285
285
|
if (!this.client.get(tableName)?.has(id))
|
|
286
286
|
throw new NotFoundError(`Record with id ${id} not found in table ${tableName}`);
|
|
287
|
-
await this.lock.acquire();
|
|
287
|
+
await this.lock.acquire(tableName);
|
|
288
288
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
289
289
|
const table = this.client.get(tableName);
|
|
290
290
|
const natived = this.client.get(tableName)?.get(id);
|
|
291
291
|
this.client.get(tableName)?.delete(id);
|
|
292
|
-
this.lock.release();
|
|
292
|
+
this.lock.release(tableName);
|
|
293
293
|
return natived;
|
|
294
294
|
}
|
|
295
295
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../../src/ram/RamAdapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAG9C,OAAO,EACL,OAAO,EAEP,eAAe,EAEf,QAAQ,GACT,kCAAuB;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/ram/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Repository } from "../repository";
|
|
|
3
3
|
import { Constructor } from "@decaf-ts/decoration";
|
|
4
4
|
import { Adapter, AdapterFlags } from "../persistence";
|
|
5
5
|
import { Context } from "../persistence/Context";
|
|
6
|
-
import {
|
|
6
|
+
import { MultiLock } from "@decaf-ts/transactional-decorators";
|
|
7
7
|
/**
|
|
8
8
|
* @description In-memory storage structure for the RAM adapter
|
|
9
9
|
* @summary A nested Map structure that stores all entities by their table name and primary key.
|
|
@@ -53,5 +53,5 @@ export type RamRepository<M extends Model<boolean>> = Repository<M, Adapter<RamC
|
|
|
53
53
|
export type RamContext = Context<RamFlags>;
|
|
54
54
|
export type RamConfig = {
|
|
55
55
|
user: string;
|
|
56
|
-
lock?:
|
|
56
|
+
lock?: MultiLock;
|
|
57
57
|
};
|
|
@@ -13,7 +13,7 @@ export class PersistenceService extends ClientBasedService {
|
|
|
13
13
|
cfgs instanceof Context ||
|
|
14
14
|
!cfgs.every((c) => Array.isArray(c)))
|
|
15
15
|
throw new InternalError(`Missing/invalid configuration`);
|
|
16
|
-
const { log } = (await this.logCtx(args, PersistenceKeys.INITIALIZATION, true)).for(this.initialize);
|
|
16
|
+
const { log, ctxArgs } = (await this.logCtx(args, PersistenceKeys.INITIALIZATION, true)).for(this.initialize);
|
|
17
17
|
const clients = cfgs.map(([constr, cfg, ...args]) => {
|
|
18
18
|
try {
|
|
19
19
|
log.silly(`Initializing ${constr.name} with config: ${JSON.stringify(cfg)}`);
|
|
@@ -25,6 +25,14 @@ export class PersistenceService extends ClientBasedService {
|
|
|
25
25
|
throw new InternalError(`Failed to initialize ${constr.name}: ${e}`);
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
+
for (const c of clients) {
|
|
29
|
+
try {
|
|
30
|
+
await c.initialize(...ctxArgs);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
throw new InternalError(`Failed to initialize ${c.toString()}: ${e}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
28
36
|
return {
|
|
29
37
|
client: clients,
|
|
30
38
|
config: cfgs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersistenceService.js","sourceRoot":"","sources":["../../../src/services/PersistenceService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sBAAmB;AAIhD,OAAO,EAAE,OAAO,EAAE,oCAA+B;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,kCAA6B;AAEvD,MAAM,OAAO,kBAEX,SAAQ,kBAIT;IACC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,GAAG,IAAsC;QAKzC,MAAM,IAAI,GAAoD,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3E,IACE,CAAC,IAAI;YACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,IAAI,YAAY,OAAO;YACvB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEpC,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"PersistenceService.js","sourceRoot":"","sources":["../../../src/services/PersistenceService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sBAAmB;AAIhD,OAAO,EAAE,OAAO,EAAE,oCAA+B;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,kCAA6B;AAEvD,MAAM,OAAO,kBAEX,SAAQ,kBAIT;IACC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,GAAG,IAAsC;QAKzC,MAAM,IAAI,GAAoD,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3E,IACE,CAAC,IAAI;YACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,IAAI,YAAY,OAAO;YACvB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEpC,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,MAAM,OAAO,GAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC;gBACH,GAAG,CAAC,KAAK,CACP,gBAAgB,MAAM,CAAC,IAAI,iBAAiB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAClE,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAM,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAClD,OAAO,OAAO,CAAC;YACjB,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,wBAAwB,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import { Context } from "../persistence/
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { Context } from "../persistence/Context";
|
|
2
|
+
import { TaskFlags } from "./types";
|
|
3
|
+
import { TaskLogger } from "./logging";
|
|
4
|
+
export declare class TaskContext extends Context<TaskFlags> {
|
|
4
5
|
get taskId(): string;
|
|
5
|
-
get
|
|
6
|
+
get logger(): TaskLogger<any>;
|
|
7
|
+
get pipe(): any;
|
|
8
|
+
flush(): Promise<void>;
|
|
6
9
|
get attempt(): number;
|
|
7
10
|
get progress(): (data: any) => Promise<void>;
|
|
8
11
|
get heartbeat(): () => Promise<void>;
|
|
12
|
+
cacheResult(taskId: string, payload: any): void;
|
|
13
|
+
get resultCache(): Record<string, any> | undefined;
|
|
9
14
|
constructor(ctx?: Context<any>);
|
|
10
15
|
}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { Context } from "./../persistence/
|
|
1
|
+
import { Context } from "./../persistence/Context.js";
|
|
2
2
|
export class TaskContext extends Context {
|
|
3
3
|
get taskId() {
|
|
4
4
|
return this.get("taskId");
|
|
5
5
|
}
|
|
6
|
-
get
|
|
7
|
-
return
|
|
6
|
+
get logger() {
|
|
7
|
+
return super.logger;
|
|
8
|
+
}
|
|
9
|
+
get pipe() {
|
|
10
|
+
return this.get("pipe");
|
|
11
|
+
}
|
|
12
|
+
flush() {
|
|
13
|
+
return this.get("flush")();
|
|
8
14
|
}
|
|
9
15
|
get attempt() {
|
|
10
16
|
return this.get("attempt");
|
|
@@ -15,6 +21,15 @@ export class TaskContext extends Context {
|
|
|
15
21
|
get heartbeat() {
|
|
16
22
|
return this.get("heartbeat");
|
|
17
23
|
}
|
|
24
|
+
cacheResult(taskId, payload) {
|
|
25
|
+
const cache = (this.cache.has("resultCache") && this.cache.get("resultCache")) ||
|
|
26
|
+
{};
|
|
27
|
+
cache[taskId] = payload;
|
|
28
|
+
this.cache.put("resultCache", cache);
|
|
29
|
+
}
|
|
30
|
+
get resultCache() {
|
|
31
|
+
return this.get("resultCache");
|
|
32
|
+
}
|
|
18
33
|
constructor(ctx) {
|
|
19
34
|
super(ctx);
|
|
20
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskContext.js","sourceRoot":"","sources":["../../../src/tasks/TaskContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskContext.js","sourceRoot":"","sources":["../../../src/tasks/TaskContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oCAA+B;AAIjD,MAAM,OAAO,WAAY,SAAQ,OAAkB;IACjD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,IAAa,MAAM;QACjB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,OAAY;QACtC,MAAM,KAAK,GACT,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/D,EAA0B,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,GAAkB;QAC5B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF"}
|
|
@@ -3,9 +3,8 @@ import { Repo } from "../repository/Repository";
|
|
|
3
3
|
import { TaskEventModel } from "./models/TaskEventModel";
|
|
4
4
|
import { TaskHandlerRegistry } from "./TaskHandlerRegistry";
|
|
5
5
|
import { TaskEventBus } from "./TaskEventBus";
|
|
6
|
-
import { TaskBackoffModel } from "./models/TaskBackoffModel";
|
|
7
6
|
import { Adapter, ContextOf } from "../persistence/index";
|
|
8
|
-
import {
|
|
7
|
+
import { AbsContextual, MaybeContextualArg } from "../utils/ContextualLoggedClass";
|
|
9
8
|
export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
10
9
|
adapter: A;
|
|
11
10
|
bus: TaskEventBus;
|
|
@@ -16,9 +15,12 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
|
16
15
|
pollMsIdle: number;
|
|
17
16
|
pollMsBusy: number;
|
|
18
17
|
logTailMax: number;
|
|
18
|
+
streamBufferSize: number;
|
|
19
|
+
maxLoggingBuffer: number;
|
|
20
|
+
loggingBufferTruncation: number;
|
|
19
21
|
};
|
|
20
22
|
export declare const DefaultTaskEngineConfig: TaskEngineConfig<any>;
|
|
21
|
-
export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends
|
|
23
|
+
export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends AbsContextual<ContextOf<A>> {
|
|
22
24
|
private config;
|
|
23
25
|
private _tasks?;
|
|
24
26
|
private _events?;
|
|
@@ -29,25 +31,9 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends C
|
|
|
29
31
|
protected get events(): Repo<TaskEventModel>;
|
|
30
32
|
protected running: boolean;
|
|
31
33
|
constructor(config: TaskEngineConfig<A>);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
name?: string;
|
|
36
|
-
maxAttempts?: number;
|
|
37
|
-
backoff?: Partial<TaskBackoffModel>;
|
|
38
|
-
}): Promise<TaskModel>;
|
|
39
|
-
enqueueComposite(arg: {
|
|
40
|
-
id: string;
|
|
41
|
-
name?: string;
|
|
42
|
-
steps: Array<{
|
|
43
|
-
type: string;
|
|
44
|
-
input?: any;
|
|
45
|
-
}>;
|
|
46
|
-
maxAttempts?: number;
|
|
47
|
-
backoff?: Partial<TaskBackoffModel>;
|
|
48
|
-
}): Promise<TaskModel>;
|
|
49
|
-
getTask(id: string): Promise<TaskModel>;
|
|
50
|
-
cancelTask(id: string): Promise<TaskModel>;
|
|
34
|
+
isRunning(): boolean;
|
|
35
|
+
push(task: TaskModel, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
|
|
36
|
+
cancel(id: string, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
|
|
51
37
|
start(): void;
|
|
52
38
|
stop(): void;
|
|
53
39
|
private loop;
|