@diia-inhouse/diia-queue 13.3.3 → 14.0.10
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/constants.js +9 -9
- package/dist/index.d.ts +27 -0
- package/dist/index.js +23 -21
- package/dist/interfaces/deps.d.ts +30 -0
- package/dist/interfaces/externalCommunicator.d.ts +58 -0
- package/dist/interfaces/index.d.ts +95 -0
- package/dist/interfaces/index.js +7 -30
- package/dist/interfaces/messageBrokerServiceConfig.d.ts +80 -0
- package/dist/interfaces/messageBrokerServiceConfig.js +27 -24
- package/dist/interfaces/messageHandler.d.ts +6 -0
- package/dist/interfaces/metrics/index.d.ts +23 -0
- package/dist/interfaces/metrics/index.js +12 -16
- package/dist/interfaces/options.d.ts +52 -0
- package/dist/interfaces/providers/rabbitmq/amqpConnection.d.ts +33 -0
- package/dist/interfaces/providers/rabbitmq/amqpConnection.js +14 -17
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.d.ts +20 -0
- package/dist/interfaces/providers/rabbitmq/index.d.ts +107 -0
- package/dist/interfaces/providers/rabbitmq/index.js +35 -47
- package/dist/interfaces/queueConfig/configs.d.ts +47 -0
- package/dist/interfaces/queueConfig/configs.js +8 -9
- package/dist/interfaces/queueConfig/index.d.ts +1 -0
- package/dist/interfaces/queueContext.d.ts +8 -0
- package/dist/interfaces/queueStatus.d.ts +15 -0
- package/dist/interfaces/queueStatus.js +8 -9
- package/dist/metrics/index.js +5 -8
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.js +6 -22
- package/dist/providers/rabbitmq/amqpAsserter.d.ts +53 -0
- package/dist/providers/rabbitmq/amqpAsserter.js +369 -416
- package/dist/providers/rabbitmq/amqpConnection.d.ts +24 -0
- package/dist/providers/rabbitmq/amqpConnection.js +97 -150
- package/dist/providers/rabbitmq/amqpListener.d.ts +47 -0
- package/dist/providers/rabbitmq/amqpListener.js +218 -225
- package/dist/providers/rabbitmq/amqpPublisher.d.ts +38 -0
- package/dist/providers/rabbitmq/amqpPublisher.js +184 -191
- package/dist/providers/rabbitmq/index.d.ts +56 -0
- package/dist/providers/rabbitmq/index.js +161 -186
- package/dist/services/communicator.d.ts +66 -0
- package/dist/services/communicator.js +164 -186
- package/dist/services/eventBus.d.ts +25 -0
- package/dist/services/eventBus.js +45 -57
- package/dist/services/eventCommunicator.js +75 -124
- package/dist/services/eventMessageHandler.d.ts +25 -0
- package/dist/services/eventMessageHandler.js +112 -129
- package/dist/services/eventMessageValidator.d.ts +13 -0
- package/dist/services/eventMessageValidator.js +59 -44
- package/dist/services/externalCommunicator.d.ts +114 -0
- package/dist/services/externalCommunicator.js +149 -140
- package/dist/services/externalEventBus.d.ts +39 -0
- package/dist/services/externalEventBus.js +144 -162
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.js +10 -26
- package/dist/services/metrics.d.ts +15 -0
- package/dist/services/metrics.js +46 -49
- package/dist/services/optionsBuilder.d.ts +14 -0
- package/dist/services/optionsBuilder.js +43 -58
- package/dist/services/queue.d.ts +29 -0
- package/dist/services/queue.js +78 -93
- package/dist/services/scheduledTask.d.ts +30 -0
- package/dist/services/scheduledTask.js +60 -68
- package/dist/services/task.d.ts +33 -0
- package/dist/services/task.js +160 -176
- package/dist/utils.js +7 -11
- package/package.json +44 -50
- package/dist/constants.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interfaces/deps.js +0 -3
- package/dist/interfaces/deps.js.map +0 -1
- package/dist/interfaces/externalCommunicator.js +0 -3
- package/dist/interfaces/externalCommunicator.js.map +0 -1
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/messageBrokerServiceConfig.js.map +0 -1
- package/dist/interfaces/messageHandler.js +0 -3
- package/dist/interfaces/messageHandler.js.map +0 -1
- package/dist/interfaces/metrics/index.js.map +0 -1
- package/dist/interfaces/options.js +0 -3
- package/dist/interfaces/options.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/amqpConnection.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.js +0 -4
- package/dist/interfaces/providers/rabbitmq/amqpPublisher.js.map +0 -1
- package/dist/interfaces/providers/rabbitmq/index.js.map +0 -1
- package/dist/interfaces/queueConfig/configs.js.map +0 -1
- package/dist/interfaces/queueConfig/index.js +0 -18
- package/dist/interfaces/queueConfig/index.js.map +0 -1
- package/dist/interfaces/queueContext.js +0 -3
- package/dist/interfaces/queueContext.js.map +0 -1
- package/dist/interfaces/queueStatus.js.map +0 -1
- package/dist/interfaces/services/eventMessageHandler.js +0 -3
- package/dist/interfaces/services/eventMessageHandler.js.map +0 -1
- package/dist/metrics/index.js.map +0 -1
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/rabbitmq/amqpAsserter.js.map +0 -1
- package/dist/providers/rabbitmq/amqpConnection.js.map +0 -1
- package/dist/providers/rabbitmq/amqpListener.js.map +0 -1
- package/dist/providers/rabbitmq/amqpPublisher.js.map +0 -1
- package/dist/providers/rabbitmq/index.js.map +0 -1
- package/dist/services/communicator.js.map +0 -1
- package/dist/services/eventBus.js.map +0 -1
- package/dist/services/eventCommunicator.js.map +0 -1
- package/dist/services/eventMessageHandler.js.map +0 -1
- package/dist/services/eventMessageValidator.js.map +0 -1
- package/dist/services/externalCommunicator.js.map +0 -1
- package/dist/services/externalEventBus.js.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/services/metrics.js.map +0 -1
- package/dist/services/optionsBuilder.js.map +0 -1
- package/dist/services/queue.js.map +0 -1
- package/dist/services/scheduledTask.js.map +0 -1
- package/dist/services/task.js.map +0 -1
- package/dist/types/constants.d.ts +0 -8
- package/dist/types/index.d.ts +0 -4
- package/dist/types/interfaces/deps.d.ts +0 -26
- package/dist/types/interfaces/externalCommunicator.d.ts +0 -54
- package/dist/types/interfaces/index.d.ts +0 -99
- package/dist/types/interfaces/messageBrokerServiceConfig.d.ts +0 -79
- package/dist/types/interfaces/messageHandler.d.ts +0 -2
- package/dist/types/interfaces/metrics/index.d.ts +0 -20
- package/dist/types/interfaces/options.d.ts +0 -49
- package/dist/types/interfaces/providers/rabbitmq/amqpConnection.d.ts +0 -29
- package/dist/types/interfaces/providers/rabbitmq/amqpPublisher.d.ts +0 -16
- package/dist/types/interfaces/providers/rabbitmq/index.d.ts +0 -114
- package/dist/types/interfaces/queueConfig/configs.d.ts +0 -47
- package/dist/types/interfaces/queueConfig/index.d.ts +0 -1
- package/dist/types/interfaces/queueContext.d.ts +0 -4
- package/dist/types/interfaces/queueStatus.d.ts +0 -11
- package/dist/types/interfaces/services/eventMessageHandler.d.ts +0 -5
- package/dist/types/metrics/index.d.ts +0 -3
- package/dist/types/providers/index.d.ts +0 -5
- package/dist/types/providers/rabbitmq/amqpAsserter.d.ts +0 -49
- package/dist/types/providers/rabbitmq/amqpConnection.d.ts +0 -20
- package/dist/types/providers/rabbitmq/amqpListener.d.ts +0 -42
- package/dist/types/providers/rabbitmq/amqpPublisher.d.ts +0 -34
- package/dist/types/providers/rabbitmq/index.d.ts +0 -52
- package/dist/types/services/communicator.d.ts +0 -57
- package/dist/types/services/eventBus.d.ts +0 -20
- package/dist/types/services/eventCommunicator.d.ts +0 -15
- package/dist/types/services/eventMessageHandler.d.ts +0 -19
- package/dist/types/services/eventMessageValidator.d.ts +0 -9
- package/dist/types/services/externalCommunicator.d.ts +0 -110
- package/dist/types/services/externalEventBus.d.ts +0 -33
- package/dist/types/services/index.d.ts +0 -9
- package/dist/types/services/metrics.d.ts +0 -11
- package/dist/types/services/optionsBuilder.d.ts +0 -10
- package/dist/types/services/queue.d.ts +0 -23
- package/dist/types/services/scheduledTask.d.ts +0 -25
- package/dist/types/services/task.d.ts +0 -28
- package/dist/types/utils.d.ts +0 -3
- package/dist/utils.js.map +0 -1
package/dist/constants.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
REPLY_TO_QUEUE_NAME: 'amq.rabbitmq.reply-to',
|
|
1
|
+
//#region src/constants.ts
|
|
2
|
+
var constants_default = {
|
|
3
|
+
DEFAULT_ROUTING_KEY: "*",
|
|
4
|
+
APP_ID: "Diia App",
|
|
5
|
+
PROJECT_NAME: "diia",
|
|
6
|
+
PORTAL_NAME: "portal",
|
|
7
|
+
REPLY_TO_QUEUE_NAME: "amq.rabbitmq.reply-to"
|
|
9
8
|
};
|
|
10
|
-
//#
|
|
9
|
+
//#endregion
|
|
10
|
+
export { constants_default as default };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig } from "./interfaces/messageBrokerServiceConfig.js";
|
|
2
|
+
import { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions } from "./interfaces/providers/rabbitmq/amqpConnection.js";
|
|
3
|
+
import { AmqpConnection } from "./providers/rabbitmq/amqpConnection.js";
|
|
4
|
+
import { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions } from "./interfaces/options.js";
|
|
5
|
+
import { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType } from "./interfaces/queueConfig/configs.js";
|
|
6
|
+
import { Arguments, ConnectionClientType, ConnectionList, DeclareOptions, ExportConfig, Headers, Message, MessageData, MessageProperties, NackOptions, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQStatus } from "./interfaces/providers/rabbitmq/index.js";
|
|
7
|
+
import { MessageHandler } from "./interfaces/messageHandler.js";
|
|
8
|
+
import { DirectResponse, DirectResponseHeaders, MessageHeaders, MessagePayload, PublishingResult } from "./interfaces/providers/rabbitmq/amqpPublisher.js";
|
|
9
|
+
import { MessageBrokerServicesStatus, QueueConnectionType, QueueStatus, QueueStatusByType } from "./interfaces/queueStatus.js";
|
|
10
|
+
import { QueueContext } from "./interfaces/queueContext.js";
|
|
11
|
+
import { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap } from "./interfaces/metrics/index.js";
|
|
12
|
+
import { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps } from "./interfaces/externalCommunicator.js";
|
|
13
|
+
import { EventBusListener, EventBusQueue, EventListeners, ExternalEventBusQueue, InternalQueueConfig, Listener, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, QueueConfig, QueueConnectionConfig, ScheduledTasksQueue, TaskListener, TaskQueue } from "./interfaces/index.js";
|
|
14
|
+
import { AmqpAsserter } from "./providers/rabbitmq/amqpAsserter.js";
|
|
15
|
+
import { AmqpListener } from "./providers/rabbitmq/amqpListener.js";
|
|
16
|
+
import { AmqpPublisher } from "./providers/rabbitmq/amqpPublisher.js";
|
|
17
|
+
import { RabbitMQProvider } from "./providers/rabbitmq/index.js";
|
|
18
|
+
import { EventMessageValidator } from "./services/eventMessageValidator.js";
|
|
19
|
+
import { EventMessageHandler } from "./services/eventMessageHandler.js";
|
|
20
|
+
import { EventBus } from "./services/eventBus.js";
|
|
21
|
+
import { ExternalCommunicator } from "./services/externalCommunicator.js";
|
|
22
|
+
import { ExternalEventBus } from "./services/externalEventBus.js";
|
|
23
|
+
import { Queue } from "./services/queue.js";
|
|
24
|
+
import { ScheduledTask } from "./services/scheduledTask.js";
|
|
25
|
+
import { Task } from "./services/task.js";
|
|
26
|
+
import { CommonQueueDeps, ExternalQueueDeps, InternalQueueDeps, QueueDeps } from "./interfaces/deps.js";
|
|
27
|
+
export { AmqpAsserter, AmqpConfig, AmqpConnection, AmqpConnectionEventNames, AmqpListener, AmqpPublisher, Arguments, BaseQueueOptions, BindOptions, CommonQueueDeps, CommunicationDirection, CommunicationsTotalLabelsMap, ConnectOptions, ConnectionClientType, ConnectionList, ConnectionStatus, ConsumerOptions, DeclareOptions, DirectResponse, DirectResponseHeaders, EventBus, EventBusListener, EventBusQueue, EventListeners, EventMessageHandler, EventMessageValidator, EventName, ExchangeName, ExchangeOptions, ExchangeType, ExportConfig, ExternalCommunicator, ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ExternalEventBus, ExternalEventBusQueue, ExternalQueueDeps, ExternalServiceConfig, Headers, InternalQueueConfig, InternalQueueDeps, InternalServiceConfig, LabelUnknown, Listener, ListenerOptions, Message, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, MessageBrokerServiceType, MessageBrokerServicesConfig, MessageBrokerServicesStatus, MessageData, MessageHandler, MessageHeaders, MessagePayload, MessageProperties, Metrics, NackOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, PublishingResult, Queue, QueueConfig, QueueConfigByQueueName, QueueConfigType, QueueConnectionConfig, QueueConnectionType, QueueContext, QueueDeps, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, QueueName, QueueOptions, QueueStatus, QueueStatusByType, QueueTypes, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQProvider, RabbitMQStatus, ReceiveDirectOps, ReconnectOptions, RecreateChannelOptions, RedeclareQueueOptions, ScheduledTask, ScheduledTasksQueue, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, SocketOptions, SubscribeOptions, Task, TaskListener, TaskQueue, TopicConfig, TopicConfigByConfigType, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, UnbindOptions, communicationsTotalLabelsMap, emptyMessageBrokerServiceConfig };
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { Arguments, ConnectionClientType, Headers, Message, NackOptions } from "./interfaces/providers/rabbitmq/index.js";
|
|
2
|
+
import { AmqpConnectionEventNames, ConnectionStatus } from "./interfaces/providers/rabbitmq/amqpConnection.js";
|
|
3
|
+
import { QueueConnectionType } from "./interfaces/queueStatus.js";
|
|
4
|
+
import { ExchangeType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, QueueTypes, emptyMessageBrokerServiceConfig } from "./interfaces/messageBrokerServiceConfig.js";
|
|
5
|
+
import { CommunicationsTotalLabelsMap, LabelUnknown, Metrics, communicationsTotalLabelsMap } from "./interfaces/metrics/index.js";
|
|
6
|
+
import { QueueConfigType } from "./interfaces/queueConfig/configs.js";
|
|
7
|
+
import "./interfaces/index.js";
|
|
8
|
+
import { EventBus } from "./services/eventBus.js";
|
|
9
|
+
import { EventMessageHandler } from "./services/eventMessageHandler.js";
|
|
10
|
+
import { EventMessageValidator } from "./services/eventMessageValidator.js";
|
|
11
|
+
import { ExternalCommunicator } from "./services/externalCommunicator.js";
|
|
12
|
+
import { ExternalEventBus } from "./services/externalEventBus.js";
|
|
13
|
+
import { ScheduledTask } from "./services/scheduledTask.js";
|
|
14
|
+
import { Task } from "./services/task.js";
|
|
15
|
+
import { AmqpAsserter } from "./providers/rabbitmq/amqpAsserter.js";
|
|
16
|
+
import { AmqpConnection } from "./providers/rabbitmq/amqpConnection.js";
|
|
17
|
+
import { AmqpListener } from "./providers/rabbitmq/amqpListener.js";
|
|
18
|
+
import { AmqpPublisher } from "./providers/rabbitmq/amqpPublisher.js";
|
|
19
|
+
import { RabbitMQProvider } from "./providers/rabbitmq/index.js";
|
|
20
|
+
import { Queue } from "./services/queue.js";
|
|
21
|
+
import "./services/index.js";
|
|
22
|
+
import "./providers/index.js";
|
|
23
|
+
export { AmqpAsserter, AmqpConnection, AmqpConnectionEventNames, AmqpListener, AmqpPublisher, Arguments, CommunicationsTotalLabelsMap, ConnectionClientType, ConnectionStatus, EventBus, EventMessageHandler, EventMessageValidator, ExchangeType, ExternalCommunicator, ExternalEventBus, Headers, LabelUnknown, Message, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, Metrics, NackOptions, Queue, QueueConfigType, QueueConnectionType, QueueTypes, RabbitMQProvider, ScheduledTask, Task, communicationsTotalLabelsMap, emptyMessageBrokerServiceConfig };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventMessageValidator } from "../services/eventMessageValidator.js";
|
|
2
|
+
import { EventMessageHandler } from "../services/eventMessageHandler.js";
|
|
3
|
+
import { EventBus } from "../services/eventBus.js";
|
|
4
|
+
import { ExternalCommunicator } from "../services/externalCommunicator.js";
|
|
5
|
+
import { ExternalEventBus } from "../services/externalEventBus.js";
|
|
6
|
+
import { Queue } from "../services/queue.js";
|
|
7
|
+
import { ScheduledTask } from "../services/scheduledTask.js";
|
|
8
|
+
import { Task } from "../services/task.js";
|
|
9
|
+
|
|
10
|
+
//#region src/interfaces/deps.d.ts
|
|
11
|
+
type CommonQueueDeps = {
|
|
12
|
+
queue: Queue;
|
|
13
|
+
eventMessageHandler: EventMessageHandler;
|
|
14
|
+
eventMessageValidator: EventMessageValidator;
|
|
15
|
+
};
|
|
16
|
+
type InternalQueueDeps = {
|
|
17
|
+
eventBus?: EventBus;
|
|
18
|
+
task?: Task;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated use pkg-workflow entities instead
|
|
21
|
+
*/
|
|
22
|
+
scheduledTask?: ScheduledTask;
|
|
23
|
+
};
|
|
24
|
+
type ExternalQueueDeps = {
|
|
25
|
+
externalEventBus: ExternalEventBus;
|
|
26
|
+
external: ExternalCommunicator;
|
|
27
|
+
};
|
|
28
|
+
type QueueDeps = CommonQueueDeps & InternalQueueDeps & ExternalQueueDeps;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { CommonQueueDeps, ExternalQueueDeps, InternalQueueDeps, QueueDeps };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ExchangeName } from "./messageBrokerServiceConfig.js";
|
|
2
|
+
import { HttpStatusCode } from "@diia-inhouse/types";
|
|
3
|
+
import { ValidationSchema } from "@diia-inhouse/validators";
|
|
4
|
+
|
|
5
|
+
//#region src/interfaces/externalCommunicator.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Options for {@link ExternalCommunicator.receiveDirect}.
|
|
8
|
+
*/
|
|
9
|
+
interface ReceiveDirectOps {
|
|
10
|
+
/**
|
|
11
|
+
* Forwarded in the message meta; consumed by `AGateway` to route the
|
|
12
|
+
* request to a specific registry API version.
|
|
13
|
+
*/
|
|
14
|
+
registryApiVersion?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Override the target exchange. Defaults to the exchange resolved from the
|
|
17
|
+
* external queue configuration for the given event.
|
|
18
|
+
*/
|
|
19
|
+
exchangeName?: ExchangeName;
|
|
20
|
+
/**
|
|
21
|
+
* Schema describing the **inner** `response` payload. The validator wraps
|
|
22
|
+
* it with the envelope shape (`event`, `payload.uuid`, `payload.error`,
|
|
23
|
+
* `meta.date`, etc.) automatically — so pass just the fields you expect
|
|
24
|
+
* inside `response`, not the envelope itself.
|
|
25
|
+
*
|
|
26
|
+
* Null is acceptable only for legacy use cases.
|
|
27
|
+
*/
|
|
28
|
+
validationRules: ValidationSchema | null;
|
|
29
|
+
/** Bypass response caching on the subscriber side if configured. */
|
|
30
|
+
ignoreCache?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Override the default direct-response timeout (ms). Falls back to the
|
|
33
|
+
* publisher's configured `directResponseTimeout` (10s by default).
|
|
34
|
+
*/
|
|
35
|
+
timeout?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Defaults to a freshly generated `randomUUID()` when omitted.
|
|
38
|
+
*/
|
|
39
|
+
requestUuid?: string;
|
|
40
|
+
}
|
|
41
|
+
interface ExternalCommunicatorResponseError {
|
|
42
|
+
http_code: HttpStatusCode;
|
|
43
|
+
message?: string;
|
|
44
|
+
data?: Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
interface ExternalCommunicatorSuccessResponse<T> {
|
|
47
|
+
uuid: string;
|
|
48
|
+
response: T;
|
|
49
|
+
error: never;
|
|
50
|
+
}
|
|
51
|
+
interface ExternalCommunicatorFailureResponse {
|
|
52
|
+
uuid: string;
|
|
53
|
+
error?: ExternalCommunicatorResponseError;
|
|
54
|
+
response: never;
|
|
55
|
+
}
|
|
56
|
+
type ExternalCommunicatorResponse<T> = ExternalCommunicatorSuccessResponse<T> | ExternalCommunicatorFailureResponse;
|
|
57
|
+
//#endregion
|
|
58
|
+
export { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig } from "./messageBrokerServiceConfig.js";
|
|
2
|
+
import { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions } from "./providers/rabbitmq/amqpConnection.js";
|
|
3
|
+
import { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions } from "./options.js";
|
|
4
|
+
import { EventName, ExternalServiceConfig, InternalServiceConfig, QueueConfigByQueueName, QueueConfigType, QueueName, ServiceConfig, ServiceConfigByConfigType, ServiceRulesConfig, TopicConfig, TopicConfigByConfigType } from "./queueConfig/configs.js";
|
|
5
|
+
import { Arguments, ConnectionClientType, ConnectionList, DeclareOptions, ExportConfig, Headers, Message, MessageData, MessageProperties, NackOptions, QueueMessage, QueueMessageData, QueueMessageError, QueueMessageMetaData, RabbitMQConfig, RabbitMQConfigCustomParams, RabbitMQStatus } from "./providers/rabbitmq/index.js";
|
|
6
|
+
import { MessageHandler } from "./messageHandler.js";
|
|
7
|
+
import { DirectResponse, DirectResponseHeaders, MessageHeaders, MessagePayload, PublishingResult } from "./providers/rabbitmq/amqpPublisher.js";
|
|
8
|
+
import { MessageBrokerServicesStatus, QueueConnectionType, QueueStatus, QueueStatusByType } from "./queueStatus.js";
|
|
9
|
+
import { QueueContext } from "./queueContext.js";
|
|
10
|
+
import { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap } from "./metrics/index.js";
|
|
11
|
+
import { ExternalCommunicatorFailureResponse, ExternalCommunicatorResponse, ExternalCommunicatorResponseError, ExternalCommunicatorSuccessResponse, ReceiveDirectOps } from "./externalCommunicator.js";
|
|
12
|
+
import { ValidationError } from "@diia-inhouse/errors";
|
|
13
|
+
import { ValidationSchema } from "@diia-inhouse/validators";
|
|
14
|
+
|
|
15
|
+
//#region src/interfaces/index.d.ts
|
|
16
|
+
type EventListeners = Partial<Record<EventName, EventBusListener>>;
|
|
17
|
+
interface TaskQueue {
|
|
18
|
+
subscribe(queueName: QueueName, messageHandler: MessageHandler, options?: SubscribeOptions): Promise<boolean>;
|
|
19
|
+
publish(taskName: string, message: MessagePayload, delay?: number): Promise<PublishingResult>;
|
|
20
|
+
}
|
|
21
|
+
interface ScheduledTasksQueue {
|
|
22
|
+
subscribe(queueName: QueueName, messageHandler: MessageHandler): Promise<boolean>;
|
|
23
|
+
publishToQueue(queueName: QueueName, payload: MessageData): Promise<PublishingResult>;
|
|
24
|
+
/** @deprecated
|
|
25
|
+
* - use the publishToExchange method for pushing a message by a routing key
|
|
26
|
+
* - use the publishToQueue method for pushing a message to a queue
|
|
27
|
+
* */
|
|
28
|
+
publish(eventName: EventName, serviceName: string): Promise<PublishingResult>;
|
|
29
|
+
publishToExchange(exchangeName: ExchangeName, routingKey: string, payload: MessageData): Promise<PublishingResult>;
|
|
30
|
+
}
|
|
31
|
+
interface EventBusQueue {
|
|
32
|
+
subscribe(queueName: QueueName, messageHandler: MessageHandler, options?: SubscribeOptions): Promise<boolean>;
|
|
33
|
+
/** @deprecated
|
|
34
|
+
* - use the publishToExchange method for pushing a message by a routing key
|
|
35
|
+
* - use the publishToQueue method for pushing a message to a queue
|
|
36
|
+
* */
|
|
37
|
+
publish(publicationName: EventName, message: MessagePayload, options?: PublishOptions): Promise<PublishingResult>;
|
|
38
|
+
publishToQueue(queueName: QueueName, payload: MessageData): Promise<PublishingResult>;
|
|
39
|
+
publishToExchange(exchangeName: ExchangeName, routingKey: string, payload: MessageData): Promise<PublishingResult>;
|
|
40
|
+
}
|
|
41
|
+
interface ExternalEventBusQueue {
|
|
42
|
+
subscribe(queueName: QueueName, messageHandler: MessageHandler): Promise<boolean>;
|
|
43
|
+
/** @deprecated
|
|
44
|
+
* - use the publishToExchange method for pushing a message by a routing key
|
|
45
|
+
* - use the publishToQueue method for pushing a message to a queue
|
|
46
|
+
* */
|
|
47
|
+
publish(eventName: EventName, message: MessagePayload, options?: PublishExternalEventOptions): Promise<PublishingResult>;
|
|
48
|
+
publishDirect<T>(eventName: string, message: MessagePayload, options?: PublishDirectOptions): Promise<T>;
|
|
49
|
+
publishToExchange(exchangeName: ExchangeName, routingKey: string, messageData: MessageData, options?: PublishOptions): Promise<PublishingResult>;
|
|
50
|
+
publishToQueue(queueName: QueueName, messageData: MessageData): Promise<PublishingResult>;
|
|
51
|
+
}
|
|
52
|
+
interface Listener {
|
|
53
|
+
queueNames?: string[];
|
|
54
|
+
nackOptions?: NackOptions;
|
|
55
|
+
validationRules?: ValidationSchema;
|
|
56
|
+
getServiceCode?(payload: unknown): string;
|
|
57
|
+
}
|
|
58
|
+
interface EventBusListener extends Listener {
|
|
59
|
+
event: EventName;
|
|
60
|
+
/** @deprecated use receive direct mechanism */
|
|
61
|
+
isSync?: boolean;
|
|
62
|
+
validationErrorHandler?(error: ValidationError, uuid: string): Promise<void>;
|
|
63
|
+
handler?(payload: unknown, meta: QueueMessageMetaData): Promise<unknown>;
|
|
64
|
+
}
|
|
65
|
+
interface TaskListener extends Listener {
|
|
66
|
+
name: string;
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
69
|
+
*/
|
|
70
|
+
isDelayed?: boolean;
|
|
71
|
+
handler(payload: unknown, meta: QueueMessageMetaData): Promise<void | NackOptions>;
|
|
72
|
+
}
|
|
73
|
+
type QueueConfig = RabbitMQConfig;
|
|
74
|
+
interface InternalQueueConfig extends QueueConfig {
|
|
75
|
+
queueName?: string;
|
|
76
|
+
/**
|
|
77
|
+
* @deprecated use pkg-workflow entities instead
|
|
78
|
+
*/
|
|
79
|
+
scheduledTaskQueueName?: string;
|
|
80
|
+
}
|
|
81
|
+
type QueueConnectionConfig = {
|
|
82
|
+
serviceRulesConfig: ServiceRulesConfig;
|
|
83
|
+
[QueueConnectionType.Internal]?: InternalQueueConfig;
|
|
84
|
+
[QueueConnectionType.External]?: QueueConfig;
|
|
85
|
+
};
|
|
86
|
+
interface MessageBrokerServiceListener {
|
|
87
|
+
handler: MessageHandler;
|
|
88
|
+
queueOptions: QueueOptions;
|
|
89
|
+
exchangesOptions: ExchangeOptions[];
|
|
90
|
+
}
|
|
91
|
+
interface MessageBrokerServiceEventsListener extends MessageBrokerServiceListener {
|
|
92
|
+
eventNames?: string[];
|
|
93
|
+
}
|
|
94
|
+
//#endregion
|
|
95
|
+
export { EventBusListener, EventBusQueue, EventListeners, ExternalEventBusQueue, InternalQueueConfig, Listener, MessageBrokerServiceEventsListener, MessageBrokerServiceListener, QueueConfig, QueueConnectionConfig, ScheduledTasksQueue, TaskListener, TaskQueue };
|
package/dist/interfaces/index.js
CHANGED
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
const queueStatus_1 = require("./queueStatus");
|
|
18
|
-
__exportStar(require("./providers/rabbitmq"), exports);
|
|
19
|
-
__exportStar(require("./providers/rabbitmq/amqpConnection"), exports);
|
|
20
|
-
__exportStar(require("./providers/rabbitmq/amqpPublisher"), exports);
|
|
21
|
-
__exportStar(require("./queueStatus"), exports);
|
|
22
|
-
__exportStar(require("./options"), exports);
|
|
23
|
-
__exportStar(require("./messageHandler"), exports);
|
|
24
|
-
__exportStar(require("./options"), exports);
|
|
25
|
-
__exportStar(require("./queueContext"), exports);
|
|
26
|
-
__exportStar(require("./messageBrokerServiceConfig"), exports);
|
|
27
|
-
__exportStar(require("./metrics"), exports);
|
|
28
|
-
__exportStar(require("./queueConfig"), exports);
|
|
29
|
-
__exportStar(require("./externalCommunicator"), exports);
|
|
30
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import "./providers/rabbitmq/index.js";
|
|
2
|
+
import "./providers/rabbitmq/amqpConnection.js";
|
|
3
|
+
import "./queueStatus.js";
|
|
4
|
+
import "./messageBrokerServiceConfig.js";
|
|
5
|
+
import "./metrics/index.js";
|
|
6
|
+
import "./queueConfig/configs.js";
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Options } from "amqplib";
|
|
2
|
+
|
|
3
|
+
//#region src/interfaces/messageBrokerServiceConfig.d.ts
|
|
4
|
+
interface BaseBindOptions {
|
|
5
|
+
exchangeName: string;
|
|
6
|
+
routingKey?: string;
|
|
7
|
+
}
|
|
8
|
+
interface BindOptions extends BaseBindOptions {
|
|
9
|
+
bind?: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface UnbindOptions extends BaseBindOptions {
|
|
12
|
+
unbind?: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface RecreateChannelOptions {
|
|
15
|
+
timeout?: number;
|
|
16
|
+
maxTries?: number;
|
|
17
|
+
backoffCoefficient?: number;
|
|
18
|
+
}
|
|
19
|
+
interface ConsumerOptions {
|
|
20
|
+
consumerTag?: string;
|
|
21
|
+
prefetchCount?: number;
|
|
22
|
+
recreateChannelOptions?: RecreateChannelOptions;
|
|
23
|
+
}
|
|
24
|
+
type ExchangeName = string;
|
|
25
|
+
declare enum ExchangeType {
|
|
26
|
+
Direct = "direct",
|
|
27
|
+
Fanout = "fanout",
|
|
28
|
+
Topic = "topic",
|
|
29
|
+
Headers = "headers",
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
32
|
+
*/
|
|
33
|
+
XDelayedMessage = "x-delayed-message"
|
|
34
|
+
}
|
|
35
|
+
interface ExchangeOptions {
|
|
36
|
+
name: ExchangeName;
|
|
37
|
+
type?: ExchangeType;
|
|
38
|
+
declare?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
41
|
+
*/
|
|
42
|
+
delayed?: boolean;
|
|
43
|
+
options?: Options.AssertExchange;
|
|
44
|
+
bindTo?: BindOptions[];
|
|
45
|
+
}
|
|
46
|
+
declare const MessageBrokerExternalServiceTypes: readonly ["externalEventBus"];
|
|
47
|
+
type MessageBrokerExternalServiceType = (typeof MessageBrokerExternalServiceTypes)[number];
|
|
48
|
+
declare const MessageBrokerInternalServiceTypes: readonly ["task", "eventBus", "scheduledTask"];
|
|
49
|
+
type MessageBrokerInternalServiceType = (typeof MessageBrokerInternalServiceTypes)[number];
|
|
50
|
+
declare const MessageBrokerGeneralServiceTypes: readonly ["general"];
|
|
51
|
+
type MessageBrokerGeneralServiceType = (typeof MessageBrokerGeneralServiceTypes)[number];
|
|
52
|
+
type MessageBrokerServiceType = MessageBrokerExternalServiceType | MessageBrokerInternalServiceType | MessageBrokerGeneralServiceType;
|
|
53
|
+
interface MessageBrokerServiceConfig {
|
|
54
|
+
queuesOptions: QueueOptions[];
|
|
55
|
+
exchangesOptions: ExchangeOptions[];
|
|
56
|
+
}
|
|
57
|
+
declare const emptyMessageBrokerServiceConfig: MessageBrokerServiceConfig;
|
|
58
|
+
type MessageBrokerServicesConfig = { [k in MessageBrokerServiceType]?: MessageBrokerServiceConfig };
|
|
59
|
+
declare const QueueTypes: {
|
|
60
|
+
readonly Quorum: "quorum";
|
|
61
|
+
readonly Classic: "classic";
|
|
62
|
+
};
|
|
63
|
+
type QueueType = (typeof QueueTypes)[keyof typeof QueueTypes];
|
|
64
|
+
interface BaseQueueOptions {
|
|
65
|
+
type?: QueueType;
|
|
66
|
+
options?: Options.AssertQueue;
|
|
67
|
+
}
|
|
68
|
+
interface RedeclareQueueOptions extends BaseQueueOptions {
|
|
69
|
+
redeclare?: boolean;
|
|
70
|
+
}
|
|
71
|
+
interface QueueOptions extends BaseQueueOptions {
|
|
72
|
+
name: string;
|
|
73
|
+
declare?: boolean;
|
|
74
|
+
bindTo: BindOptions[];
|
|
75
|
+
unbindFrom?: UnbindOptions[];
|
|
76
|
+
consumerOptions?: ConsumerOptions;
|
|
77
|
+
redeclareOptions?: RedeclareQueueOptions;
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
export { BaseQueueOptions, BindOptions, ConsumerOptions, ExchangeName, ExchangeOptions, ExchangeType, MessageBrokerExternalServiceType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceType, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceType, MessageBrokerInternalServiceTypes, MessageBrokerServiceConfig, MessageBrokerServiceType, MessageBrokerServicesConfig, QueueOptions, QueueTypes, RecreateChannelOptions, RedeclareQueueOptions, UnbindOptions, emptyMessageBrokerServiceConfig };
|
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
//#region src/interfaces/messageBrokerServiceConfig.ts
|
|
2
|
+
let ExchangeType = /* @__PURE__ */ function(ExchangeType) {
|
|
3
|
+
ExchangeType["Direct"] = "direct";
|
|
4
|
+
ExchangeType["Fanout"] = "fanout";
|
|
5
|
+
ExchangeType["Topic"] = "topic";
|
|
6
|
+
ExchangeType["Headers"] = "headers";
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
9
|
+
*/
|
|
10
|
+
ExchangeType["XDelayedMessage"] = "x-delayed-message";
|
|
11
|
+
return ExchangeType;
|
|
12
|
+
}({});
|
|
13
|
+
const MessageBrokerExternalServiceTypes = ["externalEventBus"];
|
|
14
|
+
const MessageBrokerInternalServiceTypes = [
|
|
15
|
+
"task",
|
|
16
|
+
"eventBus",
|
|
17
|
+
"scheduledTask"
|
|
18
|
+
];
|
|
19
|
+
const MessageBrokerGeneralServiceTypes = ["general"];
|
|
20
|
+
const emptyMessageBrokerServiceConfig = {
|
|
21
|
+
queuesOptions: [],
|
|
22
|
+
exchangesOptions: []
|
|
21
23
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const QueueTypes = {
|
|
25
|
+
Quorum: "quorum",
|
|
26
|
+
Classic: "classic"
|
|
25
27
|
};
|
|
26
|
-
//#
|
|
28
|
+
//#endregion
|
|
29
|
+
export { ExchangeType, MessageBrokerExternalServiceTypes, MessageBrokerGeneralServiceTypes, MessageBrokerInternalServiceTypes, QueueTypes, emptyMessageBrokerServiceConfig };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/interfaces/metrics/index.d.ts
|
|
2
|
+
interface TotalListenerChannelErrorsLabelsMap {
|
|
3
|
+
queueName: string;
|
|
4
|
+
}
|
|
5
|
+
interface TotalMessageHandlerErrorsLabelsMap {
|
|
6
|
+
event: string;
|
|
7
|
+
serviceName: string;
|
|
8
|
+
}
|
|
9
|
+
declare const LabelUnknown = "unknown";
|
|
10
|
+
type CommunicationDirection = ["inbound", "outbound"][number];
|
|
11
|
+
declare class CommunicationsTotalLabelsMap {
|
|
12
|
+
event: string;
|
|
13
|
+
source: string;
|
|
14
|
+
queue?: string;
|
|
15
|
+
destination?: string;
|
|
16
|
+
direction: CommunicationDirection;
|
|
17
|
+
}
|
|
18
|
+
declare const communicationsTotalLabelsMap: (keyof CommunicationsTotalLabelsMap)[];
|
|
19
|
+
declare const Metrics: {
|
|
20
|
+
readonly CommunicationsTotal: "diia_rabbitmq_communications_total";
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { CommunicationDirection, CommunicationsTotalLabelsMap, LabelUnknown, Metrics, TotalListenerChannelErrorsLabelsMap, TotalMessageHandlerErrorsLabelsMap, communicationsTotalLabelsMap };
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
destination;
|
|
10
|
-
direction = 'inbound';
|
|
11
|
-
}
|
|
12
|
-
exports.CommunicationsTotalLabelsMap = CommunicationsTotalLabelsMap;
|
|
13
|
-
exports.communicationsTotalLabelsMap = Object.keys(new CommunicationsTotalLabelsMap());
|
|
14
|
-
exports.Metrics = {
|
|
15
|
-
CommunicationsTotal: 'diia_rabbitmq_communications_total',
|
|
1
|
+
//#region src/interfaces/metrics/index.ts
|
|
2
|
+
const LabelUnknown = "unknown";
|
|
3
|
+
var CommunicationsTotalLabelsMap = class {
|
|
4
|
+
event = "unknown";
|
|
5
|
+
source = "unknown";
|
|
6
|
+
queue;
|
|
7
|
+
destination;
|
|
8
|
+
direction = "inbound";
|
|
16
9
|
};
|
|
17
|
-
|
|
10
|
+
const communicationsTotalLabelsMap = Object.keys(new CommunicationsTotalLabelsMap());
|
|
11
|
+
const Metrics = { CommunicationsTotal: "diia_rabbitmq_communications_total" };
|
|
12
|
+
//#endregion
|
|
13
|
+
export { CommunicationsTotalLabelsMap, LabelUnknown, Metrics, communicationsTotalLabelsMap };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { RecreateChannelOptions } from "./messageBrokerServiceConfig.js";
|
|
2
|
+
import { Options } from "amqplib";
|
|
3
|
+
|
|
4
|
+
//#region src/interfaces/options.d.ts
|
|
5
|
+
interface PublisherOptions {
|
|
6
|
+
timeout?: number;
|
|
7
|
+
replyToQueueName?: string;
|
|
8
|
+
}
|
|
9
|
+
interface ListenerOptions {
|
|
10
|
+
queueOptions?: Options.AssertQueue;
|
|
11
|
+
prefetchCount?: number;
|
|
12
|
+
recreateChannelOptions?: RecreateChannelOptions;
|
|
13
|
+
}
|
|
14
|
+
interface PublishDirectOptions {
|
|
15
|
+
exchangeName?: string;
|
|
16
|
+
timeout?: number;
|
|
17
|
+
ignoreCache?: boolean;
|
|
18
|
+
registryApiVersion?: string;
|
|
19
|
+
}
|
|
20
|
+
interface PublishOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Delay (ms) before message delivery
|
|
23
|
+
* @default undefined
|
|
24
|
+
*/
|
|
25
|
+
delay?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Routing key for message routing
|
|
28
|
+
* @default undefined
|
|
29
|
+
*/
|
|
30
|
+
routingKey?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Timeout (ms) for publish operation
|
|
33
|
+
* @default Infinity
|
|
34
|
+
*/
|
|
35
|
+
publishTimeout?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to throw error on timeout (true) or return false (false)
|
|
38
|
+
* @default true
|
|
39
|
+
*/
|
|
40
|
+
throwOnPublishTimeout?: boolean;
|
|
41
|
+
}
|
|
42
|
+
interface SubscribeOptions {
|
|
43
|
+
routingKey?: string;
|
|
44
|
+
listener?: ListenerOptions;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated the RabbitMQ plugin that supports delayed messages is deprecated and should be removed in the future
|
|
47
|
+
*/
|
|
48
|
+
delayed?: boolean;
|
|
49
|
+
}
|
|
50
|
+
interface PublishExternalEventOptions extends PublishOptions, PublishDirectOptions {}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { ListenerOptions, PublishDirectOptions, PublishExternalEventOptions, PublishOptions, PublisherOptions, SubscribeOptions };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Options } from "amqplib";
|
|
2
|
+
|
|
3
|
+
//#region src/interfaces/providers/rabbitmq/amqpConnection.d.ts
|
|
4
|
+
interface AmqpConfig {
|
|
5
|
+
protocol?: string;
|
|
6
|
+
hostname?: string;
|
|
7
|
+
port?: number;
|
|
8
|
+
username?: string;
|
|
9
|
+
password?: string;
|
|
10
|
+
heartbeat?: number;
|
|
11
|
+
}
|
|
12
|
+
type ConnectOptions = Options.Connect;
|
|
13
|
+
interface SocketOptions {
|
|
14
|
+
clientProperties?: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
interface ReconnectOptions {
|
|
17
|
+
reconnectEnabled?: boolean;
|
|
18
|
+
reconnectTimeout?: number;
|
|
19
|
+
}
|
|
20
|
+
declare enum ConnectionStatus {
|
|
21
|
+
Init = "init",
|
|
22
|
+
Connecting = "connecting",
|
|
23
|
+
Connected = "connected",
|
|
24
|
+
Reconnecting = "reconnecting",
|
|
25
|
+
Closing = "closing",
|
|
26
|
+
Closed = "closed",
|
|
27
|
+
Down = "down"
|
|
28
|
+
}
|
|
29
|
+
declare const AmqpConnectionEventNames: {
|
|
30
|
+
readonly Ready: "ready";
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { AmqpConfig, AmqpConnectionEventNames, ConnectOptions, ConnectionStatus, ReconnectOptions, SocketOptions };
|