UNPKG

redis-smq-rest-api

Version:
88 lines 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Container = void 0; const awilix_1 = require("awilix"); const redis_smq_1 = require("redis-smq"); const redis_smq_common_1 = require("redis-smq-common"); const ConsumerGroupsService_js_1 = require("../services/ConsumerGroupsService.js"); const ExchangeFanOutService_js_1 = require("../services/ExchangeFanOutService.js"); const MessagesService_js_1 = require("../services/MessagesService.js"); const NamespacesService_js_1 = require("../services/NamespacesService.js"); const QueueAcknowledgedMessagesService_js_1 = require("../services/QueueAcknowledgedMessagesService.js"); const QueueDeadLetteredMessagesService_js_1 = require("../services/QueueDeadLetteredMessagesService.js"); const QueueMessagesService_js_1 = require("../services/QueueMessagesService.js"); const QueuePendingMessagesService_js_1 = require("../services/QueuePendingMessagesService.js"); const QueueRateLimitService_js_1 = require("../services/QueueRateLimitService.js"); const QueueScheduledMessagesService_js_1 = require("../services/QueueScheduledMessagesService.js"); const QueuesService_js_1 = require("../services/QueuesService.js"); class Container { static registerServices() { const instance = this.getInstance(); instance.register({ queue: (0, awilix_1.asClass)(redis_smq_1.Queue) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queueMessages: (0, awilix_1.asClass)(redis_smq_1.QueueMessages) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queuePendingMessages: (0, awilix_1.asClass)(redis_smq_1.QueuePendingMessages) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queueAcknowledgedMessages: (0, awilix_1.asClass)(redis_smq_1.QueueAcknowledgedMessages) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queueDeadLetteredMessages: (0, awilix_1.asClass)(redis_smq_1.QueueDeadLetteredMessages) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queueScheduledMessages: (0, awilix_1.asClass)(redis_smq_1.QueueScheduledMessages) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), message: (0, awilix_1.asClass)(redis_smq_1.Message) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), queueRateLimit: (0, awilix_1.asClass)(redis_smq_1.QueueRateLimit) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), namespace: (0, awilix_1.asClass)(redis_smq_1.Namespace) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), exchangeFanOut: (0, awilix_1.asClass)(redis_smq_1.ExchangeFanOut) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), consumerGroups: (0, awilix_1.asClass)(redis_smq_1.ConsumerGroups) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), producer: (0, awilix_1.asClass)(redis_smq_1.Producer) .singleton() .disposer((i) => new Promise((resolve) => i.shutdown(resolve))), logger: (0, awilix_1.asFunction)(() => { const config = instance.resolve('config').logger || { enabled: false, }; return redis_smq_common_1.logger.getLogger(config); }).singleton(), queuesService: (0, awilix_1.asClass)(QueuesService_js_1.QueuesService), queueMessagesService: (0, awilix_1.asClass)(QueueMessagesService_js_1.QueueMessagesService), queuePendingMessagesService: (0, awilix_1.asClass)(QueuePendingMessagesService_js_1.QueuePendingMessagesService), queueScheduledMessagesService: (0, awilix_1.asClass)(QueueScheduledMessagesService_js_1.QueueScheduledMessagesService), queueAcknowledgedMessagesService: (0, awilix_1.asClass)(QueueAcknowledgedMessagesService_js_1.QueueAcknowledgedMessagesService), queueDeadLetteredMessagesService: (0, awilix_1.asClass)(QueueDeadLetteredMessagesService_js_1.QueueDeadLetteredMessagesService), messagesService: (0, awilix_1.asClass)(MessagesService_js_1.MessagesService), queueRateLimitService: (0, awilix_1.asClass)(QueueRateLimitService_js_1.QueueRateLimitService), namespacesService: (0, awilix_1.asClass)(NamespacesService_js_1.NamespacesService), exchangeFanOutService: (0, awilix_1.asClass)(ExchangeFanOutService_js_1.ExchangeFanOutService), consumerGroupsService: (0, awilix_1.asClass)(ConsumerGroupsService_js_1.ConsumerGroupsService), }); } static getInstance() { if (!this.instance) { this.instance = (0, awilix_1.createContainer)({ injectionMode: awilix_1.InjectionMode.CLASSIC, }); } return this.instance; } } exports.Container = Container; Container.instance = null; //# sourceMappingURL=Container.js.map