redis-smq-rest-api
Version:
A RESTful API for RedisSMQ
88 lines • 5.46 kB
JavaScript
;
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