@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.
@@ -1,2 +1,2 @@
1
1
  export declare function InjectQueue(queueName: string): ParameterDecorator;
2
- export declare function getQueueToken(queueName: string): 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
- return `Queue:${queueName}`;
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.Injectable)()(target);
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<import("@carno.js/core").ValidatorAdapterConstructor>;
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
- return new core_1.Carno({
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 { InjectorService } from '@carno.js/core';
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 injector;
12
- constructor(queueRegistry: QueueRegistry, discoveryService: QueueDiscoveryService, builderService: QueueBuilderService, eventBinder: EventBinderService, injector: InjectorService);
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, injector) {
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.injector = injector;
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.injector.invoke(metadata.target);
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 context = core_1.Context.createFromJob(job);
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.injector.container.addProvider(token, {
217
- provide: token,
213
+ this.container.register({
214
+ token,
218
215
  useClass: ProxyFactory,
219
- scope: core_1.ProviderScope.SINGLETON,
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.InjectorService])
239
+ core_1.Container])
243
240
  ], QueueOrchestration);
@@ -84,5 +84,5 @@ let QueueRegistry = class QueueRegistry {
84
84
  };
85
85
  exports.QueueRegistry = QueueRegistry;
86
86
  exports.QueueRegistry = QueueRegistry = __decorate([
87
- (0, core_1.Injectable)()
87
+ (0, core_1.Service)()
88
88
  ], QueueRegistry);
@@ -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.Injectable)()
27
+ (0, core_1.Service)()
28
28
  ], ConnectionManagerService);
@@ -30,5 +30,5 @@ let EventBinderService = class EventBinderService {
30
30
  };
31
31
  exports.EventBinderService = EventBinderService;
32
32
  exports.EventBinderService = EventBinderService = __decorate([
33
- (0, core_1.Injectable)()
33
+ (0, core_1.Service)()
34
34
  ], EventBinderService);
@@ -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.Injectable)(),
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.Injectable)({ scope: core_2.ProviderScope.SINGLETON }),
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.Injectable)()
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.2.11",
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.2.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": "495ba33561d058107b1bb76d737a0d38a361f5b2"
31
+ "gitHead": "d2b000eeb352a03569b90d8eb2bf3557c00b741b"
32
32
  }