1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const RabbitMQMessageBus_1 = require("./messageBus/RabbitMQMessageBus");
|
4 | var BrokerType;
|
5 | (function (BrokerType) {
|
6 | BrokerType["RABBITMQ"] = "RABBITMQ";
|
7 | })(BrokerType = exports.BrokerType || (exports.BrokerType = {}));
|
8 | const DEFAULT_RETRY_DELAY_TIME = 60;
|
9 | class Mercury {
|
10 | constructor(brokerType, brokerHostName, brokerUserName, brokerPassword, appName, serviceName, retryDelayTime = DEFAULT_RETRY_DELAY_TIME) {
|
11 | this.appName = appName;
|
12 | this.serviceName = serviceName;
|
13 | this.brokerHostName = brokerHostName;
|
14 | this.brokerUserName = brokerUserName;
|
15 | this.brokerPassword = brokerPassword;
|
16 | this.retryDelayTime = retryDelayTime;
|
17 | switch (brokerType) {
|
18 | case BrokerType.RABBITMQ:
|
19 | this.messageBus = new RabbitMQMessageBus_1.default();
|
20 | break;
|
21 | default:
|
22 | this.messageBus = new RabbitMQMessageBus_1.default();
|
23 | break;
|
24 | }
|
25 | }
|
26 | async init() {
|
27 | try {
|
28 | return await this.messageBus.configure({
|
29 | brokerHostName: this.brokerHostName,
|
30 | brokerUserName: this.brokerUserName,
|
31 | brokerPassword: this.brokerPassword,
|
32 | appName: this.appName,
|
33 | serviceName: this.serviceName,
|
34 | retryDelay: this.retryDelayTime,
|
35 | });
|
36 | }
|
37 | catch (e) {
|
38 | throw e;
|
39 | }
|
40 | }
|
41 | useHandler(handler) {
|
42 | Mercury.handlerRegistry.set(handler.constructor.name, handler);
|
43 | }
|
44 | async terminate() {
|
45 | return await this.messageBus.terminate();
|
46 | }
|
47 | }
|
48 | Mercury.handlerRegistry = new Map();
|
49 | exports.default = Mercury;
|
50 |
|
\ | No newline at end of file |