nestjs-temporal-core 2.0.7 → 3.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.
- package/README.md +124 -558
- package/dist/client/temporal-client.module.d.ts +4 -2
- package/dist/client/temporal-client.module.js +59 -78
- package/dist/client/temporal-client.module.js.map +1 -1
- package/dist/client/temporal-client.service.d.ts +4 -3
- package/dist/client/temporal-client.service.js +43 -27
- package/dist/client/temporal-client.service.js.map +1 -1
- package/dist/client/temporal-schedule.service.d.ts +8 -2
- package/dist/client/temporal-schedule.service.js +86 -65
- package/dist/client/temporal-schedule.service.js.map +1 -1
- package/dist/constants.d.ts +171 -32
- package/dist/constants.js +164 -19
- package/dist/constants.js.map +1 -1
- package/dist/decorators/communication.decorators.d.ts +5 -0
- package/dist/decorators/communication.decorators.js +66 -0
- package/dist/decorators/communication.decorators.js.map +1 -0
- package/dist/decorators/core.decorators.d.ts +6 -0
- package/dist/decorators/core.decorators.js +87 -0
- package/dist/decorators/core.decorators.js.map +1 -0
- package/dist/decorators/index.d.ts +5 -6
- package/dist/decorators/index.js +5 -6
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/parameter.decorators.d.ts +2 -0
- package/dist/decorators/parameter.decorators.js +29 -0
- package/dist/decorators/parameter.decorators.js.map +1 -0
- package/dist/decorators/scheduling.decorators.d.ts +4 -0
- package/dist/decorators/scheduling.decorators.js +37 -0
- package/dist/decorators/scheduling.decorators.js.map +1 -0
- package/dist/decorators/workflow-starter.decorator.d.ts +2 -0
- package/dist/decorators/workflow-starter.decorator.js +14 -0
- package/dist/decorators/workflow-starter.decorator.js.map +1 -0
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.js +19 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/schedule-manager.service.d.ts +36 -0
- package/dist/discovery/schedule-manager.service.js +215 -0
- package/dist/discovery/schedule-manager.service.js.map +1 -0
- package/dist/discovery/workflow-discovery.service.d.ts +36 -0
- package/dist/discovery/workflow-discovery.service.js +216 -0
- package/dist/discovery/workflow-discovery.service.js.map +1 -0
- package/dist/index.d.ts +15 -8
- package/dist/index.js +27 -11
- package/dist/index.js.map +1 -1
- package/dist/interfaces/core.interface.d.ts +112 -0
- package/dist/interfaces/{base.interface.js → core.interface.js} +1 -1
- package/dist/interfaces/core.interface.js.map +1 -0
- package/dist/interfaces/discovery.interface.d.ts +61 -0
- package/dist/interfaces/{client.interface.js → discovery.interface.js} +1 -1
- package/dist/interfaces/discovery.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +4 -4
- package/dist/interfaces/index.js +4 -4
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/scheduling.interface.d.ts +17 -0
- package/dist/interfaces/{temporal.interface.js → scheduling.interface.js} +1 -1
- package/dist/interfaces/scheduling.interface.js.map +1 -0
- package/dist/interfaces/worker.interface.d.ts +20 -17
- package/dist/interfaces/workflow.interface.d.ts +41 -1
- package/dist/temporal.module.d.ts +17 -1
- package/dist/temporal.module.js +120 -53
- package/dist/temporal.module.js.map +1 -1
- package/dist/temporal.service.d.ts +50 -8
- package/dist/temporal.service.js +166 -18
- package/dist/temporal.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/worker/index.d.ts +1 -1
- package/dist/worker/index.js +1 -1
- package/dist/worker/index.js.map +1 -1
- package/dist/worker/temporal-metadata.accessor.d.ts +21 -6
- package/dist/worker/temporal-metadata.accessor.js +153 -22
- package/dist/worker/temporal-metadata.accessor.js.map +1 -1
- package/dist/worker/temporal-worker.module.d.ts +1 -1
- package/dist/worker/temporal-worker.module.js +6 -7
- package/dist/worker/temporal-worker.module.js.map +1 -1
- package/dist/worker/worker-manager.service.d.ts +24 -7
- package/dist/worker/worker-manager.service.js +218 -85
- package/dist/worker/worker-manager.service.js.map +1 -1
- package/package.json +51 -19
- package/dist/decorators/activity-method.decorator.d.ts +0 -2
- package/dist/decorators/activity-method.decorator.js +0 -35
- package/dist/decorators/activity-method.decorator.js.map +0 -1
- package/dist/decorators/activity.decorator.d.ts +0 -2
- package/dist/decorators/activity.decorator.js +0 -14
- package/dist/decorators/activity.decorator.js.map +0 -1
- package/dist/decorators/query-method.decorator.d.ts +0 -1
- package/dist/decorators/query-method.decorator.js +0 -17
- package/dist/decorators/query-method.decorator.js.map +0 -1
- package/dist/decorators/signal-method.decorator.d.ts +0 -1
- package/dist/decorators/signal-method.decorator.js +0 -17
- package/dist/decorators/signal-method.decorator.js.map +0 -1
- package/dist/decorators/workflow-method.decorator.d.ts +0 -2
- package/dist/decorators/workflow-method.decorator.js +0 -26
- package/dist/decorators/workflow-method.decorator.js.map +0 -1
- package/dist/decorators/workflow.decorator.d.ts +0 -2
- package/dist/decorators/workflow.decorator.js +0 -16
- package/dist/decorators/workflow.decorator.js.map +0 -1
- package/dist/interfaces/base.interface.d.ts +0 -13
- package/dist/interfaces/base.interface.js.map +0 -1
- package/dist/interfaces/client.interface.d.ts +0 -30
- package/dist/interfaces/client.interface.js.map +0 -1
- package/dist/interfaces/temporal.interface.d.ts +0 -33
- package/dist/interfaces/temporal.interface.js.map +0 -1
package/dist/worker/index.d.ts
CHANGED
package/dist/worker/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./temporal-metadata.accessor"), exports);
|
|
18
17
|
__exportStar(require("./temporal-worker.module"), exports);
|
|
19
18
|
__exportStar(require("./worker-manager.service"), exports);
|
|
19
|
+
__exportStar(require("./temporal-metadata.accessor"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/dist/worker/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,2DAAyC;AACzC,2DAAyC;AACzC,+DAA6C"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
|
+
import { ActivityMethodHandler } from '../interfaces';
|
|
2
|
+
import { ActivityMetadata, ActivityMethodMetadata } from 'src/interfaces';
|
|
1
3
|
export declare class TemporalMetadataAccessor {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private readonly activityClassCache;
|
|
6
|
+
private readonly activityMethodCache;
|
|
7
|
+
isActivity(target: any): boolean;
|
|
8
|
+
getActivityOptions(target: any): ActivityMetadata | null;
|
|
9
|
+
isActivityMethod(target: any): boolean;
|
|
10
|
+
getActivityMethodName(target: any): string | null;
|
|
11
|
+
getActivityMethodOptions(target: any): Record<string, any> | null;
|
|
12
|
+
extractActivityMethods(instance: any): Map<string, ActivityMethodHandler>;
|
|
13
|
+
getActivityMethodMetadata(instance: any, methodName: string): ActivityMethodMetadata | null;
|
|
14
|
+
getActivityMethodNames(target: any): string[];
|
|
15
|
+
clearCache(): void;
|
|
16
|
+
getCacheStats(): {
|
|
17
|
+
activityClassesCached: number;
|
|
18
|
+
activityMethodsCached: number;
|
|
19
|
+
};
|
|
20
|
+
private getActivityMetadata;
|
|
21
|
+
private extractMethodsFromPrototype;
|
|
22
|
+
private validateMethodSignature;
|
|
8
23
|
}
|
|
@@ -10,52 +10,183 @@ exports.TemporalMetadataAccessor = void 0;
|
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const constants_1 = require("../constants");
|
|
12
12
|
let TemporalMetadataAccessor = class TemporalMetadataAccessor {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.logger = new common_1.Logger(constants_1.LOG_CATEGORIES.ACTIVITY);
|
|
15
|
+
this.activityClassCache = new WeakMap();
|
|
16
|
+
this.activityMethodCache = new WeakMap();
|
|
17
|
+
}
|
|
13
18
|
isActivity(target) {
|
|
14
|
-
if (!target) {
|
|
19
|
+
if (!target || typeof target !== 'function') {
|
|
15
20
|
return false;
|
|
16
21
|
}
|
|
17
|
-
|
|
22
|
+
if (this.activityClassCache.has(target)) {
|
|
23
|
+
return this.activityClassCache.get(target) !== null;
|
|
24
|
+
}
|
|
25
|
+
const metadata = this.getActivityMetadata(target);
|
|
26
|
+
const isActivity = metadata !== null;
|
|
27
|
+
this.activityClassCache.set(target, metadata);
|
|
28
|
+
return isActivity;
|
|
18
29
|
}
|
|
19
30
|
getActivityOptions(target) {
|
|
20
|
-
if (!target) {
|
|
21
|
-
return
|
|
31
|
+
if (!target || typeof target !== 'function') {
|
|
32
|
+
return null;
|
|
22
33
|
}
|
|
23
|
-
|
|
34
|
+
if (this.activityClassCache.has(target)) {
|
|
35
|
+
return this.activityClassCache.get(target) || null;
|
|
36
|
+
}
|
|
37
|
+
const metadata = this.getActivityMetadata(target);
|
|
38
|
+
this.activityClassCache.set(target, metadata);
|
|
39
|
+
return metadata;
|
|
24
40
|
}
|
|
25
41
|
isActivityMethod(target) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return !!Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, target);
|
|
42
|
+
return (target &&
|
|
43
|
+
typeof target === 'function' &&
|
|
44
|
+
Boolean(Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD, target)));
|
|
30
45
|
}
|
|
31
46
|
getActivityMethodName(target) {
|
|
32
|
-
if (!target) {
|
|
33
|
-
return
|
|
47
|
+
if (!target || typeof target !== 'function') {
|
|
48
|
+
return null;
|
|
34
49
|
}
|
|
35
|
-
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD_NAME, target);
|
|
50
|
+
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD_NAME, target) || null;
|
|
36
51
|
}
|
|
37
52
|
getActivityMethodOptions(target) {
|
|
38
|
-
if (!target) {
|
|
39
|
-
return
|
|
53
|
+
if (!target || typeof target !== 'function') {
|
|
54
|
+
return null;
|
|
40
55
|
}
|
|
41
|
-
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD_OPTIONS, target);
|
|
56
|
+
return Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY_METHOD_OPTIONS, target) || null;
|
|
42
57
|
}
|
|
43
58
|
extractActivityMethods(instance) {
|
|
44
|
-
if (!instance) {
|
|
59
|
+
if (!instance || typeof instance !== 'object') {
|
|
60
|
+
this.logger.warn('Invalid instance provided to extractActivityMethods');
|
|
45
61
|
return new Map();
|
|
46
62
|
}
|
|
63
|
+
const constructor = instance.constructor;
|
|
64
|
+
if (this.activityMethodCache.has(constructor)) {
|
|
65
|
+
const cachedMethods = this.activityMethodCache.get(constructor);
|
|
66
|
+
const boundMethods = new Map();
|
|
67
|
+
for (const [name, metadata] of cachedMethods.entries()) {
|
|
68
|
+
boundMethods.set(name, metadata.handler.bind(instance));
|
|
69
|
+
}
|
|
70
|
+
return boundMethods;
|
|
71
|
+
}
|
|
72
|
+
const methods = this.extractMethodsFromPrototype(instance);
|
|
73
|
+
this.activityMethodCache.set(constructor, methods);
|
|
74
|
+
const boundMethods = new Map();
|
|
75
|
+
for (const [name, metadata] of methods.entries()) {
|
|
76
|
+
boundMethods.set(name, metadata.handler.bind(instance));
|
|
77
|
+
}
|
|
78
|
+
return boundMethods;
|
|
79
|
+
}
|
|
80
|
+
getActivityMethodMetadata(instance, methodName) {
|
|
81
|
+
const methods = this.extractActivityMethods(instance);
|
|
82
|
+
for (const [activityName, handler] of methods.entries()) {
|
|
83
|
+
const cachedMethods = this.activityMethodCache.get(instance.constructor);
|
|
84
|
+
if (cachedMethods) {
|
|
85
|
+
const metadata = cachedMethods.get(activityName);
|
|
86
|
+
if (metadata && metadata.originalName === methodName) {
|
|
87
|
+
return {
|
|
88
|
+
...metadata,
|
|
89
|
+
handler: handler,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
getActivityMethodNames(target) {
|
|
97
|
+
if (!target || typeof target !== 'function') {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
const cachedMethods = this.activityMethodCache.get(target);
|
|
101
|
+
if (cachedMethods) {
|
|
102
|
+
return Array.from(cachedMethods.keys());
|
|
103
|
+
}
|
|
104
|
+
const prototype = target.prototype;
|
|
105
|
+
if (!prototype) {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
const methodNames = [];
|
|
109
|
+
const propertyNames = Object.getOwnPropertyNames(prototype);
|
|
110
|
+
for (const propertyName of propertyNames) {
|
|
111
|
+
if (propertyName === 'constructor')
|
|
112
|
+
continue;
|
|
113
|
+
try {
|
|
114
|
+
const method = prototype[propertyName];
|
|
115
|
+
if (typeof method === 'function' && this.isActivityMethod(method)) {
|
|
116
|
+
const activityName = this.getActivityMethodName(method) || propertyName;
|
|
117
|
+
methodNames.push(activityName);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
this.logger.debug(`Error checking method ${propertyName}: ${error.message}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return methodNames;
|
|
125
|
+
}
|
|
126
|
+
clearCache() {
|
|
127
|
+
this.logger.debug('Metadata accessor cache cleared');
|
|
128
|
+
}
|
|
129
|
+
getCacheStats() {
|
|
130
|
+
return {
|
|
131
|
+
activityClassesCached: -1,
|
|
132
|
+
activityMethodsCached: -1,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
getActivityMetadata(target) {
|
|
136
|
+
try {
|
|
137
|
+
const metadata = Reflect.getMetadata(constants_1.TEMPORAL_ACTIVITY, target);
|
|
138
|
+
return metadata || null;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
this.logger.debug(`Error getting activity metadata: ${error.message}`);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
extractMethodsFromPrototype(instance) {
|
|
47
146
|
const methods = new Map();
|
|
48
147
|
const prototype = Object.getPrototypeOf(instance);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
148
|
+
if (!prototype) {
|
|
149
|
+
return methods;
|
|
150
|
+
}
|
|
151
|
+
const propertyNames = Object.getOwnPropertyNames(prototype);
|
|
152
|
+
for (const propertyName of propertyNames) {
|
|
153
|
+
if (propertyName === 'constructor')
|
|
154
|
+
continue;
|
|
155
|
+
try {
|
|
156
|
+
const method = prototype[propertyName];
|
|
157
|
+
if (typeof method !== 'function')
|
|
158
|
+
continue;
|
|
159
|
+
if (this.isActivityMethod(method)) {
|
|
160
|
+
const activityName = this.getActivityMethodName(method) || propertyName;
|
|
161
|
+
const options = this.getActivityMethodOptions(method);
|
|
162
|
+
methods.set(activityName, {
|
|
163
|
+
name: activityName,
|
|
164
|
+
originalName: propertyName,
|
|
165
|
+
options: options || undefined,
|
|
166
|
+
handler: method,
|
|
167
|
+
});
|
|
168
|
+
this.logger.debug(`Found activity method: ${instance.constructor.name}.${propertyName} -> ${activityName}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
this.logger.warn(`Error processing method ${propertyName} in ${instance.constructor.name}: ${error.message}`);
|
|
55
173
|
}
|
|
56
174
|
}
|
|
57
175
|
return methods;
|
|
58
176
|
}
|
|
177
|
+
validateMethodSignature(method, methodName) {
|
|
178
|
+
try {
|
|
179
|
+
if (typeof method !== 'function') {
|
|
180
|
+
this.logger.warn(`Method ${methodName} is not a function`);
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
this.logger.warn(`Error validating method signature for ${methodName}: ${error.message}`);
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
59
190
|
};
|
|
60
191
|
exports.TemporalMetadataAccessor = TemporalMetadataAccessor;
|
|
61
192
|
exports.TemporalMetadataAccessor = TemporalMetadataAccessor = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-metadata.accessor.js","sourceRoot":"","sources":["../../src/worker/temporal-metadata.accessor.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"temporal-metadata.accessor.js","sourceRoot":"","sources":["../../src/worker/temporal-metadata.accessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { TemporalWorkerAsyncOptions, TemporalWorkerOptions } from '
|
|
2
|
+
import { TemporalWorkerAsyncOptions, TemporalWorkerOptions } from 'src/interfaces';
|
|
3
3
|
export declare class TemporalWorkerModule {
|
|
4
4
|
static register(options: TemporalWorkerOptions): DynamicModule;
|
|
5
5
|
static registerAsync(options: TemporalWorkerAsyncOptions): DynamicModule;
|
|
@@ -15,7 +15,6 @@ const temporal_metadata_accessor_1 = require("./temporal-metadata.accessor");
|
|
|
15
15
|
const worker_manager_service_1 = require("./worker-manager.service");
|
|
16
16
|
let TemporalWorkerModule = TemporalWorkerModule_1 = class TemporalWorkerModule {
|
|
17
17
|
static register(options) {
|
|
18
|
-
const activityProviders = this.createActivityProviders(options.activityClasses || []);
|
|
19
18
|
return {
|
|
20
19
|
module: TemporalWorkerModule_1,
|
|
21
20
|
global: true,
|
|
@@ -24,7 +23,7 @@ let TemporalWorkerModule = TemporalWorkerModule_1 = class TemporalWorkerModule {
|
|
|
24
23
|
provide: constants_1.TEMPORAL_WORKER_MODULE_OPTIONS,
|
|
25
24
|
useValue: options,
|
|
26
25
|
},
|
|
27
|
-
...
|
|
26
|
+
...this.createActivityProviders(options.activityClasses || []),
|
|
28
27
|
temporal_metadata_accessor_1.TemporalMetadataAccessor,
|
|
29
28
|
core_1.DiscoveryService,
|
|
30
29
|
worker_manager_service_1.WorkerManager,
|
|
@@ -47,9 +46,9 @@ let TemporalWorkerModule = TemporalWorkerModule_1 = class TemporalWorkerModule {
|
|
|
47
46
|
};
|
|
48
47
|
}
|
|
49
48
|
static createActivityProviders(activityClasses) {
|
|
50
|
-
return activityClasses.map((
|
|
51
|
-
provide:
|
|
52
|
-
useClass:
|
|
49
|
+
return activityClasses.map((ActivityClass) => ({
|
|
50
|
+
provide: ActivityClass,
|
|
51
|
+
useClass: ActivityClass,
|
|
53
52
|
}));
|
|
54
53
|
}
|
|
55
54
|
static createAsyncProviders(options) {
|
|
@@ -66,7 +65,7 @@ let TemporalWorkerModule = TemporalWorkerModule_1 = class TemporalWorkerModule {
|
|
|
66
65
|
return [
|
|
67
66
|
{
|
|
68
67
|
provide: constants_1.TEMPORAL_WORKER_MODULE_OPTIONS,
|
|
69
|
-
useFactory: async (optionsFactory) =>
|
|
68
|
+
useFactory: async (optionsFactory) => optionsFactory.createWorkerOptions(),
|
|
70
69
|
inject: [options.useClass],
|
|
71
70
|
},
|
|
72
71
|
{
|
|
@@ -79,7 +78,7 @@ let TemporalWorkerModule = TemporalWorkerModule_1 = class TemporalWorkerModule {
|
|
|
79
78
|
return [
|
|
80
79
|
{
|
|
81
80
|
provide: constants_1.TEMPORAL_WORKER_MODULE_OPTIONS,
|
|
82
|
-
useFactory: async (optionsFactory) =>
|
|
81
|
+
useFactory: async (optionsFactory) => optionsFactory.createWorkerOptions(),
|
|
83
82
|
inject: [options.useExisting],
|
|
84
83
|
},
|
|
85
84
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-worker.module.js","sourceRoot":"","sources":["../../src/worker/temporal-worker.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuE;AACvE,uCAAgD;AAChD,4CAAsE;
|
|
1
|
+
{"version":3,"file":"temporal-worker.module.js","sourceRoot":"","sources":["../../src/worker/temporal-worker.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuE;AACvE,uCAAgD;AAChD,4CAAsE;AACtE,6EAAwE;AACxE,qEAAyD;AAYlD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAuB7B,MAAM,CAAC,QAAQ,CAAC,OAA8B;QAC1C,OAAO;YACH,MAAM,EAAE,sBAAoB;YAC5B,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,0CAA8B;oBACvC,QAAQ,EAAE,OAAO;iBACpB;gBACD,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;gBAC9D,qDAAwB;gBACxB,uBAAgB;gBAChB,sCAAa;aAChB;YACD,OAAO,EAAE,CAAC,sCAAa,EAAE,0CAA8B,CAAC;SAC3D,CAAC;IACN,CAAC;IA+BD,MAAM,CAAC,aAAa,CAAC,OAAmC;QACpD,OAAO;YACH,MAAM,EAAE,sBAAoB;YAC5B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACP,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACrC,qDAAwB;gBACxB,uBAAgB;gBAChB,sCAAa;aAChB;YACD,OAAO,EAAE,CAAC,sCAAa,EAAE,0CAA8B,CAAC;SAC3D,CAAC;IACN,CAAC;IAKO,MAAM,CAAC,uBAAuB,CAAC,eAAiC;QACpE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC,CAAC;IACR,CAAC;IAKO,MAAM,CAAC,oBAAoB,CAAC,OAAmC;QACnE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;gBACH;oBACI,OAAO,EAAE,0CAA8B;oBACvC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC/B;aACJ,CAAC;QACN,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;gBACH;oBACI,OAAO,EAAE,0CAA8B;oBACvC,UAAU,EAAE,KAAK,EAAE,cAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,mBAAmB,EAAE;oBACxC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC7B;gBACD;oBACI,OAAO,EAAE,OAAO,CAAC,QAAQ;oBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC7B;aACJ,CAAC;QACN,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACH;oBACI,OAAO,EAAE,0CAA8B;oBACvC,UAAU,EAAE,KAAK,EAAE,cAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,mBAAmB,EAAE;oBACxC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;iBAChC;aACJ,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,kBAAM,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAA;AAzIY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAyIhC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { OnApplicationBootstrap, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { DiscoveryService } from '@nestjs/core';
|
|
3
|
-
import { Worker } from '@temporalio/worker';
|
|
4
|
-
import { TemporalWorkerOptions } from '../interfaces';
|
|
3
|
+
import { NativeConnection, Worker } from '@temporalio/worker';
|
|
5
4
|
import { TemporalMetadataAccessor } from './temporal-metadata.accessor';
|
|
5
|
+
import { TemporalWorkerOptions, WorkerStatus } from 'src/interfaces';
|
|
6
6
|
export declare class WorkerManager implements OnModuleInit, OnModuleDestroy, OnApplicationBootstrap {
|
|
7
7
|
private readonly options;
|
|
8
8
|
private readonly discoveryService;
|
|
@@ -10,17 +10,34 @@ export declare class WorkerManager implements OnModuleInit, OnModuleDestroy, OnA
|
|
|
10
10
|
private readonly logger;
|
|
11
11
|
private worker;
|
|
12
12
|
private connection;
|
|
13
|
-
private
|
|
13
|
+
private isInitialized;
|
|
14
14
|
private isRunning;
|
|
15
|
+
private startedAt?;
|
|
16
|
+
private lastError?;
|
|
17
|
+
private activities;
|
|
15
18
|
constructor(options: TemporalWorkerOptions, discoveryService: DiscoveryService, metadataAccessor: TemporalMetadataAccessor);
|
|
16
19
|
onModuleInit(): Promise<void>;
|
|
20
|
+
onApplicationBootstrap(): Promise<void>;
|
|
17
21
|
onModuleDestroy(): Promise<void>;
|
|
18
|
-
|
|
22
|
+
private initializeWorker;
|
|
23
|
+
private validateConfiguration;
|
|
24
|
+
private createConnection;
|
|
25
|
+
private createWorker;
|
|
26
|
+
private buildWorkerOptions;
|
|
27
|
+
private getEnvironmentDefaults;
|
|
28
|
+
private discoverActivities;
|
|
29
|
+
private logWorkerConfiguration;
|
|
19
30
|
startWorker(): Promise<void>;
|
|
20
31
|
shutdown(): Promise<void>;
|
|
21
|
-
private clearTimeout;
|
|
22
|
-
private setupWorker;
|
|
23
|
-
private discoverActivities;
|
|
24
32
|
getWorker(): Worker | null;
|
|
33
|
+
getConnection(): NativeConnection | null;
|
|
25
34
|
isWorkerRunning(): boolean;
|
|
35
|
+
isWorkerInitialized(): boolean;
|
|
36
|
+
getWorkerStatus(): WorkerStatus;
|
|
37
|
+
getRegisteredActivities(): string[];
|
|
38
|
+
restartWorker(): Promise<void>;
|
|
39
|
+
healthCheck(): Promise<{
|
|
40
|
+
status: 'healthy' | 'unhealthy' | 'degraded';
|
|
41
|
+
details: WorkerStatus;
|
|
42
|
+
}>;
|
|
26
43
|
}
|