@carno.js/queue 0.2.11 → 1.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/dist/decorators/inject-queue.decorator.d.ts +1 -1
- package/dist/decorators/inject-queue.decorator.js +9 -1
- package/dist/decorators/queue.decorator.js +1 -1
- package/dist/entry.d.ts +1 -1
- package/dist/entry.js +10 -12
- package/dist/queue-orchestration.service.d.ts +3 -3
- package/dist/queue-orchestration.service.js +8 -11
- package/dist/queue.registry.js +1 -1
- package/dist/services/connection-manager.service.js +1 -1
- package/dist/services/event-binder.service.js +1 -1
- package/dist/services/queue-builder.service.js +1 -1
- package/dist/services/queue-client.service.js +1 -2
- package/dist/services/queue-discovery.service.js +1 -1
- package/package.json +3 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare function InjectQueue(queueName: string): ParameterDecorator;
|
|
2
|
-
export declare function getQueueToken(queueName: string):
|
|
2
|
+
export declare function getQueueToken(queueName: string): new () => any;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InjectQueue = InjectQueue;
|
|
4
4
|
exports.getQueueToken = getQueueToken;
|
|
5
|
+
const queueTokens = new Map();
|
|
5
6
|
function InjectQueue(queueName) {
|
|
6
7
|
return (target, propertyKey, parameterIndex) => {
|
|
7
8
|
const token = getQueueToken(queueName);
|
|
@@ -11,5 +12,12 @@ function InjectQueue(queueName) {
|
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
function getQueueToken(queueName) {
|
|
14
|
-
|
|
15
|
+
if (!queueTokens.has(queueName)) {
|
|
16
|
+
// Create a named class dynamically to serve as token
|
|
17
|
+
const TokenClass = class QueueToken {
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(TokenClass, 'name', { value: `Queue_${queueName}` });
|
|
20
|
+
queueTokens.set(queueName, TokenClass);
|
|
21
|
+
}
|
|
22
|
+
return queueTokens.get(queueName);
|
|
15
23
|
}
|
|
@@ -12,6 +12,6 @@ function Queue(name, options = {}) {
|
|
|
12
12
|
};
|
|
13
13
|
const existingMetadata = core_1.Metadata.get(constants_1.QUEUE_METADATA, Reflect) || [];
|
|
14
14
|
core_1.Metadata.set(constants_1.QUEUE_METADATA, [...existingMetadata, metadata], Reflect);
|
|
15
|
-
return (0, core_1.
|
|
15
|
+
return (0, core_1.Service)()(target);
|
|
16
16
|
};
|
|
17
17
|
}
|
package/dist/entry.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Carno } from '@carno.js/core';
|
|
2
2
|
import { QueueModuleOptions } from './interfaces';
|
|
3
|
-
export declare function CarnoQueue(options?: QueueModuleOptions): Carno
|
|
3
|
+
export declare function CarnoQueue(options?: QueueModuleOptions): Carno;
|
package/dist/entry.js
CHANGED
|
@@ -8,21 +8,10 @@ const queue_discovery_service_1 = require("./services/queue-discovery.service");
|
|
|
8
8
|
const queue_builder_service_1 = require("./services/queue-builder.service");
|
|
9
9
|
const event_binder_service_1 = require("./services/event-binder.service");
|
|
10
10
|
const connection_manager_service_1 = require("./services/connection-manager.service");
|
|
11
|
-
const constants_1 = require("./constants");
|
|
12
11
|
function CarnoQueue(options = {}) {
|
|
13
12
|
const connectionManager = new connection_manager_service_1.ConnectionManagerService();
|
|
14
13
|
connectionManager.setDefaultConnection(options.connection);
|
|
15
|
-
|
|
16
|
-
providers: [
|
|
17
|
-
{
|
|
18
|
-
provide: constants_1.QUEUE_MODULE_OPTIONS,
|
|
19
|
-
useValue: options,
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
provide: connection_manager_service_1.ConnectionManagerService,
|
|
23
|
-
useValue: () => connectionManager,
|
|
24
|
-
},
|
|
25
|
-
],
|
|
14
|
+
const plugin = new core_1.Carno({
|
|
26
15
|
exports: [
|
|
27
16
|
queue_orchestration_service_1.QueueOrchestration,
|
|
28
17
|
queue_registry_1.QueueRegistry,
|
|
@@ -32,4 +21,13 @@ function CarnoQueue(options = {}) {
|
|
|
32
21
|
connection_manager_service_1.ConnectionManagerService,
|
|
33
22
|
],
|
|
34
23
|
});
|
|
24
|
+
plugin.services([
|
|
25
|
+
{ token: connection_manager_service_1.ConnectionManagerService, useValue: connectionManager },
|
|
26
|
+
queue_orchestration_service_1.QueueOrchestration,
|
|
27
|
+
queue_registry_1.QueueRegistry,
|
|
28
|
+
queue_discovery_service_1.QueueDiscoveryService,
|
|
29
|
+
queue_builder_service_1.QueueBuilderService,
|
|
30
|
+
event_binder_service_1.EventBinderService,
|
|
31
|
+
]);
|
|
32
|
+
return plugin;
|
|
35
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Container } from '@carno.js/core';
|
|
2
2
|
import { QueueRegistry } from './queue.registry';
|
|
3
3
|
import { QueueDiscoveryService } from './services/queue-discovery.service';
|
|
4
4
|
import { QueueBuilderService } from './services/queue-builder.service';
|
|
@@ -8,8 +8,8 @@ export declare class QueueOrchestration {
|
|
|
8
8
|
private discoveryService;
|
|
9
9
|
private builderService;
|
|
10
10
|
private eventBinder;
|
|
11
|
-
private
|
|
12
|
-
constructor(queueRegistry: QueueRegistry, discoveryService: QueueDiscoveryService, builderService: QueueBuilderService, eventBinder: EventBinderService,
|
|
11
|
+
private container;
|
|
12
|
+
constructor(queueRegistry: QueueRegistry, discoveryService: QueueDiscoveryService, builderService: QueueBuilderService, eventBinder: EventBinderService, container: Container);
|
|
13
13
|
onApplicationInit(): Promise<void>;
|
|
14
14
|
onApplicationShutdown(): Promise<void>;
|
|
15
15
|
private setupQueues;
|
|
@@ -18,12 +18,12 @@ const event_binder_service_1 = require("./services/event-binder.service");
|
|
|
18
18
|
const inject_queue_decorator_1 = require("./decorators/inject-queue.decorator");
|
|
19
19
|
const queue_proxy_factory_service_1 = require("./services/queue-proxy-factory.service");
|
|
20
20
|
let QueueOrchestration = class QueueOrchestration {
|
|
21
|
-
constructor(queueRegistry, discoveryService, builderService, eventBinder,
|
|
21
|
+
constructor(queueRegistry, discoveryService, builderService, eventBinder, container) {
|
|
22
22
|
this.queueRegistry = queueRegistry;
|
|
23
23
|
this.discoveryService = discoveryService;
|
|
24
24
|
this.builderService = builderService;
|
|
25
25
|
this.eventBinder = eventBinder;
|
|
26
|
-
this.
|
|
26
|
+
this.container = container;
|
|
27
27
|
}
|
|
28
28
|
async onApplicationInit() {
|
|
29
29
|
this.setupQueues();
|
|
@@ -110,7 +110,7 @@ let QueueOrchestration = class QueueOrchestration {
|
|
|
110
110
|
return `${queueName}:${jobName}`;
|
|
111
111
|
}
|
|
112
112
|
getOrCreateInstance(metadata) {
|
|
113
|
-
return this.
|
|
113
|
+
return this.container.get(metadata.target);
|
|
114
114
|
}
|
|
115
115
|
createProcessorFunction(instance, metadata) {
|
|
116
116
|
return instance[metadata.methodName].bind(instance);
|
|
@@ -139,10 +139,7 @@ let QueueOrchestration = class QueueOrchestration {
|
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
141
|
executeProcessorWithContext(queueMetadata, processor, job) {
|
|
142
|
-
const
|
|
143
|
-
const locals = new core_1.LocalsContainer();
|
|
144
|
-
locals.set(core_1.Context, context);
|
|
145
|
-
const instance = this.injector.invoke(queueMetadata.target, locals);
|
|
142
|
+
const instance = this.container.get(queueMetadata.target);
|
|
146
143
|
const boundProcessor = instance[this.findProcessorMethodName(queueMetadata, job.name)].bind(instance);
|
|
147
144
|
return boundProcessor(job);
|
|
148
145
|
}
|
|
@@ -213,10 +210,10 @@ let QueueOrchestration = class QueueOrchestration {
|
|
|
213
210
|
registerQueueProvider(name, queue) {
|
|
214
211
|
const token = (0, inject_queue_decorator_1.getQueueToken)(name);
|
|
215
212
|
const ProxyFactory = (0, queue_proxy_factory_service_1.createQueueProxyFactory)(queue);
|
|
216
|
-
this.
|
|
217
|
-
|
|
213
|
+
this.container.register({
|
|
214
|
+
token,
|
|
218
215
|
useClass: ProxyFactory,
|
|
219
|
-
scope: core_1.
|
|
216
|
+
scope: core_1.Scope.SINGLETON,
|
|
220
217
|
});
|
|
221
218
|
}
|
|
222
219
|
};
|
|
@@ -239,5 +236,5 @@ exports.QueueOrchestration = QueueOrchestration = __decorate([
|
|
|
239
236
|
queue_discovery_service_1.QueueDiscoveryService,
|
|
240
237
|
queue_builder_service_1.QueueBuilderService,
|
|
241
238
|
event_binder_service_1.EventBinderService,
|
|
242
|
-
core_1.
|
|
239
|
+
core_1.Container])
|
|
243
240
|
], QueueOrchestration);
|
package/dist/queue.registry.js
CHANGED
|
@@ -24,5 +24,5 @@ let ConnectionManagerService = class ConnectionManagerService {
|
|
|
24
24
|
};
|
|
25
25
|
exports.ConnectionManagerService = ConnectionManagerService;
|
|
26
26
|
exports.ConnectionManagerService = ConnectionManagerService = __decorate([
|
|
27
|
-
(0, core_1.
|
|
27
|
+
(0, core_1.Service)()
|
|
28
28
|
], ConnectionManagerService);
|
|
@@ -44,7 +44,7 @@ let QueueBuilderService = class QueueBuilderService {
|
|
|
44
44
|
};
|
|
45
45
|
exports.QueueBuilderService = QueueBuilderService;
|
|
46
46
|
exports.QueueBuilderService = QueueBuilderService = __decorate([
|
|
47
|
-
(0, core_1.
|
|
47
|
+
(0, core_1.Service)(),
|
|
48
48
|
__metadata("design:paramtypes", [connection_manager_service_1.ConnectionManagerService,
|
|
49
49
|
queue_registry_1.QueueRegistry])
|
|
50
50
|
], QueueBuilderService);
|
|
@@ -11,7 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.QueueClient = void 0;
|
|
13
13
|
const core_1 = require("@carno.js/core");
|
|
14
|
-
const core_2 = require("@carno.js/core");
|
|
15
14
|
const queue_registry_1 = require("../queue.registry");
|
|
16
15
|
let QueueClient = class QueueClient {
|
|
17
16
|
constructor(queueRegistry) {
|
|
@@ -35,6 +34,6 @@ let QueueClient = class QueueClient {
|
|
|
35
34
|
};
|
|
36
35
|
exports.QueueClient = QueueClient;
|
|
37
36
|
exports.QueueClient = QueueClient = __decorate([
|
|
38
|
-
(0, core_1.
|
|
37
|
+
(0, core_1.Service)({ scope: core_1.Scope.SINGLETON }),
|
|
39
38
|
__metadata("design:paramtypes", [queue_registry_1.QueueRegistry])
|
|
40
39
|
], QueueClient);
|
|
@@ -28,5 +28,5 @@ let QueueDiscoveryService = class QueueDiscoveryService {
|
|
|
28
28
|
};
|
|
29
29
|
exports.QueueDiscoveryService = QueueDiscoveryService;
|
|
30
30
|
exports.QueueDiscoveryService = QueueDiscoveryService = __decorate([
|
|
31
|
-
(0, core_1.
|
|
31
|
+
(0, core_1.Service)()
|
|
32
32
|
], QueueDiscoveryService);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carno.js/queue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Queue module for Carno framework with BullMQ support",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@carno.js/core": "^0.
|
|
24
|
+
"@carno.js/core": "^1.0.0"
|
|
25
25
|
},
|
|
26
26
|
"author": "",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "d2b000eeb352a03569b90d8eb2bf3557c00b741b"
|
|
32
32
|
}
|