@tsed/temporal 8.11.1 → 8.11.2-rc.1
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/lib/esm/TemporalModule.js +0 -1
- package/lib/esm/constants.js +0 -1
- package/lib/esm/decorators/activity.js +0 -1
- package/lib/esm/decorators/temporal.js +0 -1
- package/lib/esm/index.js +0 -1
- package/lib/esm/interfaces/TemporalStore.js +0 -1
- package/lib/esm/interfaces/interfaces.js +0 -1
- package/lib/esm/services/TemporalFactory.js +0 -1
- package/lib/esm/utils/worker.js +0 -1
- package/package.json +10 -7
- package/lib/esm/TemporalModule.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/decorators/activity.js.map +0 -1
- package/lib/esm/decorators/temporal.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interfaces/TemporalStore.js.map +0 -1
- package/lib/esm/interfaces/interfaces.js.map +0 -1
- package/lib/esm/services/TemporalFactory.js.map +0 -1
- package/lib/esm/utils/worker.js.map +0 -1
- package/src/TemporalModule.ts +0 -40
- package/src/constants.ts +0 -1
- package/src/decorators/activity.spec.ts +0 -41
- package/src/decorators/activity.ts +0 -15
- package/src/decorators/temporal.spec.ts +0 -12
- package/src/decorators/temporal.ts +0 -12
- package/src/index.ts +0 -11
- package/src/interfaces/TemporalStore.ts +0 -9
- package/src/interfaces/interfaces.ts +0 -13
- package/src/services/TemporalFactory.ts +0 -56
- package/src/utils/worker.ts +0 -45
- package/vitest.config.mts +0 -21
package/lib/esm/constants.js
CHANGED
package/lib/esm/index.js
CHANGED
package/lib/esm/utils/worker.js
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tsed/temporal",
|
|
3
3
|
"description": "Temporal.io package for Ts.ED framework",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "8.11.1",
|
|
5
|
+
"version": "8.11.2-rc.1",
|
|
6
6
|
"source": "./src/index.ts",
|
|
7
7
|
"main": "./lib/esm/index.js",
|
|
8
8
|
"module": "./lib/esm/index.js",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"@temporalio/client": "1.11.6",
|
|
30
30
|
"@temporalio/testing": "1.11.6",
|
|
31
31
|
"@temporalio/worker": "1.11.6",
|
|
32
|
-
"@tsed/barrels": "8.11.1",
|
|
33
|
-
"@tsed/core": "8.11.1",
|
|
34
|
-
"@tsed/di": "8.11.1",
|
|
35
|
-
"@tsed/platform-http": "8.11.1",
|
|
36
|
-
"@tsed/typescript": "8.11.1",
|
|
32
|
+
"@tsed/barrels": "8.11.2-rc.1",
|
|
33
|
+
"@tsed/core": "8.11.2-rc.1",
|
|
34
|
+
"@tsed/di": "8.11.2-rc.1",
|
|
35
|
+
"@tsed/platform-http": "8.11.2-rc.1",
|
|
36
|
+
"@tsed/typescript": "8.11.2-rc.1",
|
|
37
37
|
"cross-env": "7.0.3",
|
|
38
38
|
"eslint": "9.12.0",
|
|
39
39
|
"typescript": "5.4.5",
|
|
@@ -49,5 +49,8 @@
|
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://github.com/tsedio/tsed/tree/production/packages/third-parties/temporal",
|
|
51
51
|
"author": "Romain Lenzotti",
|
|
52
|
-
"license": "MIT"
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"publishConfig": {
|
|
54
|
+
"tag": "rc"
|
|
55
|
+
}
|
|
53
56
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalModule.js","sourceRoot":"","sources":["../../src/TemporalModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AACnE,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAgB,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAGtD,IAAM,cAAc,GAApB,MAAM,cAAc;IAUzB,YAAoD,gBAAuB;QAAvB,qBAAgB,GAAhB,gBAAgB,CAAO;IAAG,CAAC;IAExE,aAAa;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzI,CAAC;IAES,yBAAyB,CAAC,QAAa;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAExE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,EAAC,IAAI,EAAC,CAAC,EAAE,EAAE;YACzF,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,IAAI,WAAW,CAAC;YAEpC,OAAO;gBACL,GAAG,UAAU;gBACb,CAAC,OAAO,CAAC,EAAE,YAAY;aACxB,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF,CAAA;AA5BW;IADT,MAAM,EAAE;8BACU,MAAM;8CAAC;AAGhB;IADT,MAAM,EAAE;8BACY,eAAe;gDAAC;AAG3B;IADT,MAAM,EAAE;8BACU,cAAc;8CAAC;AARvB,cAAc;IAD1B,MAAM,EAAE;IAWM,WAAA,MAAM,CAAC,sBAAsB,CAAC,CAAA;;GAVhC,cAAc,CA8B1B"}
|
package/lib/esm/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/decorators/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAkB,kBAAkB,EAAgB,MAAM,gCAAgC,CAAC;AAElG,MAAM,UAAU,QAAQ,CAAC,UAA2B,EAAE;IACpD,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,EAAE;QACnD,MAAM,KAAK,GAAkB;YAC3B,UAAU,EAAE;gBACV,CAAC,WAAW,CAAC,EAAE,OAAO;aACvB;SACF,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../../src/decorators/temporal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC;AAEvD,MAAM,UAAU,QAAQ;IACtB,OAAO,aAAa,CAClB,UAAU,CAAC;QACT,IAAI,EAAE,sBAAsB;KAC7B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/lib/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalStore.js","sourceRoot":"","sources":["../../../src/interfaces/TemporalStore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalFactory.js","sourceRoot":"","sources":["../../../src/services/TemporalFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAGrC,gBAAgB,CAAC;IACf,KAAK,EAAE,kBAAkB;IACzB,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,eAAe,CAAC,QAAuB,EAAE,MAAc;QAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;YAC7F,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,gBAAgB,CAAC;IACf,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;IACzC,UAAU,CAAC,QAAuB,EAAE,UAA8B;QAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,UAAU;YACV,GAAG,QAAQ,CAAC,MAAM;SACnB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,EAAE;QACL,UAAU,EAAE,KAAK,EAAE,MAAqB,EAAE,EAAE;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/utils/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAA2B,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAQpD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAQ,EAAE,QAAgC;IAC9E,2CAA2C;IAC3C,MAAM,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvD,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAiB,cAAc,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,0DAA0D,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,CACb,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACV,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,UAA4B,CAAC;IACjC,IAAI,QAAQ,CAAC,UAAU,YAAY,gBAAgB,EAAE,CAAC;QACpD,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;QACxF,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,UAAU;QACV,GAAG,QAAQ,CAAC,MAAM;QAClB,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/src/TemporalModule.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import {classOf} from "@tsed/core";
|
|
2
|
-
import {Inject, InjectorService, Module, Provider} from "@tsed/di";
|
|
3
|
-
import {Logger} from "@tsed/logger";
|
|
4
|
-
|
|
5
|
-
import {PROVIDER_TYPE_TEMPORAL} from "./constants.js";
|
|
6
|
-
import {TEMPORAL_STORE_KEY, TemporalStore} from "./interfaces/TemporalStore.js";
|
|
7
|
-
import {TemporalClient} from "./services/TemporalFactory.js";
|
|
8
|
-
|
|
9
|
-
@Module()
|
|
10
|
-
export class TemporalModule {
|
|
11
|
-
@Inject()
|
|
12
|
-
protected logger!: Logger;
|
|
13
|
-
|
|
14
|
-
@Inject()
|
|
15
|
-
protected injector!: InjectorService;
|
|
16
|
-
|
|
17
|
-
@Inject()
|
|
18
|
-
protected client!: TemporalClient;
|
|
19
|
-
|
|
20
|
-
constructor(@Inject(PROVIDER_TYPE_TEMPORAL) private temporalServices: any[]) {}
|
|
21
|
-
|
|
22
|
-
public getActivities(): object {
|
|
23
|
-
return this.temporalServices.reduce((activities, instance) => Object.assign(activities, this.getActivitiesFromInstance(instance)), {});
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
protected getActivitiesFromInstance(instance: any) {
|
|
27
|
-
const provider = this.injector.getProvider(classOf(instance))!;
|
|
28
|
-
const store = provider.store.get<TemporalStore>(TEMPORAL_STORE_KEY, {});
|
|
29
|
-
|
|
30
|
-
return Object.entries(store.activities || {}).reduce((activities, [propertyKey, {name}]) => {
|
|
31
|
-
const jobProcessor = instance[propertyKey].bind(instance);
|
|
32
|
-
const jobName = name || propertyKey;
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
...activities,
|
|
36
|
-
[jobName]: jobProcessor
|
|
37
|
-
};
|
|
38
|
-
}, {});
|
|
39
|
-
}
|
|
40
|
-
}
|
package/src/constants.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const PROVIDER_TYPE_TEMPORAL = "PROVIDER_TYPE_TEMPORAL";
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import {Store} from "@tsed/core";
|
|
2
|
-
|
|
3
|
-
import {Activity} from "./activity.js";
|
|
4
|
-
import {Temporal} from "./temporal.js";
|
|
5
|
-
|
|
6
|
-
describe("@Activity()", () => {
|
|
7
|
-
it("should set metadata", () => {
|
|
8
|
-
@Temporal()
|
|
9
|
-
class Test {
|
|
10
|
-
@Activity()
|
|
11
|
-
testActivityDecorator() {
|
|
12
|
-
// test
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const store = Store.from(Test);
|
|
17
|
-
|
|
18
|
-
expect(store.get("temporal").activities).toEqual({
|
|
19
|
-
testActivityDecorator: {}
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it("should set options metadata", () => {
|
|
24
|
-
@Temporal()
|
|
25
|
-
class Test {
|
|
26
|
-
@Activity({
|
|
27
|
-
name: "testActivityDecoratorCustomName"
|
|
28
|
-
})
|
|
29
|
-
test() {
|
|
30
|
-
// test
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const store = Store.from(Test);
|
|
35
|
-
expect(store.get("temporal").activities).toEqual({
|
|
36
|
-
test: {
|
|
37
|
-
name: "testActivityDecoratorCustomName"
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {Store} from "@tsed/core";
|
|
2
|
-
|
|
3
|
-
import {ActivityOptions, TEMPORAL_STORE_KEY, TemporalStore} from "../interfaces/TemporalStore.js";
|
|
4
|
-
|
|
5
|
-
export function Activity(options: ActivityOptions = {}): MethodDecorator {
|
|
6
|
-
return (target: any, propertyKey: string | symbol) => {
|
|
7
|
-
const store: TemporalStore = {
|
|
8
|
-
activities: {
|
|
9
|
-
[propertyKey]: options
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
Store.from(target).merge(TEMPORAL_STORE_KEY, store);
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {GlobalProviders} from "@tsed/di";
|
|
2
|
-
|
|
3
|
-
import {Temporal} from "./temporal.js";
|
|
4
|
-
|
|
5
|
-
describe("@Activity()", () => {
|
|
6
|
-
it("should set metadata", () => {
|
|
7
|
-
@Temporal()
|
|
8
|
-
class Test {}
|
|
9
|
-
|
|
10
|
-
expect(GlobalProviders.get(Test)?.useClass).toEqual(Test);
|
|
11
|
-
});
|
|
12
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import {useDecorators} from "@tsed/core";
|
|
2
|
-
import {Injectable} from "@tsed/di";
|
|
3
|
-
|
|
4
|
-
import {PROVIDER_TYPE_TEMPORAL} from "../constants.js";
|
|
5
|
-
|
|
6
|
-
export function Temporal(): ClassDecorator {
|
|
7
|
-
return useDecorators(
|
|
8
|
-
Injectable({
|
|
9
|
-
type: PROVIDER_TYPE_TEMPORAL
|
|
10
|
-
})
|
|
11
|
-
);
|
|
12
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Automatically generated by @tsed/barrels.
|
|
3
|
-
*/
|
|
4
|
-
export * from "./constants.js";
|
|
5
|
-
export * from "./decorators/activity.js";
|
|
6
|
-
export * from "./decorators/temporal.js";
|
|
7
|
-
export * from "./interfaces/interfaces.js";
|
|
8
|
-
export * from "./interfaces/TemporalStore.js";
|
|
9
|
-
export * from "./services/TemporalFactory.js";
|
|
10
|
-
export * from "./TemporalModule.js";
|
|
11
|
-
export * from "./utils/worker.js";
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {ClientOptions, ConnectionOptions} from "@temporalio/client";
|
|
2
|
-
|
|
3
|
-
declare global {
|
|
4
|
-
namespace TsED {
|
|
5
|
-
interface Configuration {
|
|
6
|
-
temporal?: {
|
|
7
|
-
enabled?: boolean;
|
|
8
|
-
connection?: ConnectionOptions;
|
|
9
|
-
client?: Omit<ClientOptions, "connection">;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {Client, Connection} from "@temporalio/client";
|
|
2
|
-
import {Configuration, registerProvider} from "@tsed/di";
|
|
3
|
-
import {Logger} from "@tsed/logger";
|
|
4
|
-
|
|
5
|
-
export const TemporalConnection = Connection;
|
|
6
|
-
export type TemporalConnection = Connection;
|
|
7
|
-
|
|
8
|
-
export const TemporalClient = Client;
|
|
9
|
-
export type TemporalClient = Client;
|
|
10
|
-
|
|
11
|
-
registerProvider({
|
|
12
|
-
token: TemporalConnection,
|
|
13
|
-
deps: [Configuration, Logger],
|
|
14
|
-
async useAsyncFactory(settings: Configuration, logger: Logger) {
|
|
15
|
-
const temporal = settings.get("temporal");
|
|
16
|
-
|
|
17
|
-
if (!temporal?.enabled) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
logger.info("Connecting to Temporal Server: ", temporal.connection?.address || "default");
|
|
23
|
-
const connection = await Connection.connect(temporal.connection);
|
|
24
|
-
logger.info("... connected to Temporal Server: ", temporal.connection?.address || "default");
|
|
25
|
-
return connection;
|
|
26
|
-
} catch (error) {
|
|
27
|
-
logger.error("Failed to connect to Temporal Server:", error);
|
|
28
|
-
throw error;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
registerProvider({
|
|
34
|
-
token: TemporalClient,
|
|
35
|
-
deps: [Configuration, TemporalConnection],
|
|
36
|
-
useFactory(settings: Configuration, connection: TemporalConnection) {
|
|
37
|
-
const temporal = settings.get("temporal");
|
|
38
|
-
if (!temporal?.enabled) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const client = new TemporalClient({
|
|
43
|
-
connection,
|
|
44
|
-
...temporal.client
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return client;
|
|
48
|
-
},
|
|
49
|
-
hooks: {
|
|
50
|
-
$onDestroy: async (client: Client | null) => {
|
|
51
|
-
if (client) {
|
|
52
|
-
await client.connection.close();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
});
|
package/src/utils/worker.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {NativeConnection, NativeConnectionOptions, Worker, WorkerOptions} from "@temporalio/worker";
|
|
2
|
-
import {$log} from "@tsed/logger";
|
|
3
|
-
import {PlatformBuilderSettings} from "@tsed/platform-http";
|
|
4
|
-
import {PlatformTest} from "@tsed/platform-http/testing";
|
|
5
|
-
|
|
6
|
-
import {TemporalModule} from "../TemporalModule.js";
|
|
7
|
-
|
|
8
|
-
type BootstrapWorkerOptions = {
|
|
9
|
-
platform?: PlatformBuilderSettings;
|
|
10
|
-
worker: Omit<WorkerOptions, "activities">;
|
|
11
|
-
connection?: NativeConnection | NativeConnectionOptions;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export async function bootstrapWorker(mod: any, settings: BootstrapWorkerOptions) {
|
|
15
|
-
// TODO remove this code and use production
|
|
16
|
-
await PlatformTest.bootstrap(mod, settings.platform)();
|
|
17
|
-
const temporalioModule = PlatformTest.get<TemporalModule>(TemporalModule);
|
|
18
|
-
const activities = temporalioModule.getActivities();
|
|
19
|
-
$log.info('Starting temporal worker with queue "%s" and activities:', settings.worker.taskQueue);
|
|
20
|
-
|
|
21
|
-
if (Object.keys(activities).length > 0) {
|
|
22
|
-
$log.printTable(
|
|
23
|
-
Object.entries(activities).map((x) => ({
|
|
24
|
-
name: x[0],
|
|
25
|
-
activity: x[1].toString()
|
|
26
|
-
}))
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
let connection: NativeConnection;
|
|
31
|
-
if (settings.connection instanceof NativeConnection) {
|
|
32
|
-
connection = settings.connection;
|
|
33
|
-
} else {
|
|
34
|
-
$log.info("Connecting to Temporal Server: ", settings.connection?.address || "default");
|
|
35
|
-
connection = await NativeConnection.connect(settings.connection);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const worker = await Worker.create({
|
|
39
|
-
connection,
|
|
40
|
-
...settings.worker,
|
|
41
|
-
activities
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
return worker;
|
|
45
|
-
}
|
package/vitest.config.mts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import {presets} from "@tsed/vitest/presets";
|
|
3
|
-
import {defineConfig} from "vitest/config";
|
|
4
|
-
|
|
5
|
-
export default defineConfig(
|
|
6
|
-
{
|
|
7
|
-
...presets,
|
|
8
|
-
test: {
|
|
9
|
-
...presets.test,
|
|
10
|
-
coverage: {
|
|
11
|
-
...presets.test.coverage,
|
|
12
|
-
thresholds: {
|
|
13
|
-
statements: 0,
|
|
14
|
-
branches: 0,
|
|
15
|
-
functions: 0,
|
|
16
|
-
lines: 0
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
);
|