redis-smq 8.0.0-rc.16 → 8.0.0-rc.17

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
 
2
2
 
3
+ ## [8.0.0-rc.17](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.16...v8.0.0-rc.17) (2024-01-30)
4
+
5
+
6
+ ### Documentation
7
+
8
+ * add missing error classes ([753331e](https://github.com/weyoss/redis-smq/commit/753331e5ce4fb239cb29b3ae4c3246ba185b4d94))
9
+ * simplify and unify class/method naming and referencing ([0299b31](https://github.com/weyoss/redis-smq/commit/0299b314e843c28d52e2f767ace150e39652287c))
10
+
11
+
12
+ ### Codebase Refactoring
13
+
14
+ * improve MessageHandler error handling ([957d257](https://github.com/weyoss/redis-smq/commit/957d257e66cce6faaf9dad5bf949cdd1198cfae8))
15
+
3
16
  ## [8.0.0-rc.16](https://github.com/weyoss/redis-smq/compare/v8.0.0-rc.15...v8.0.0-rc.16) (2024-01-28)
4
17
 
5
18
 
package/dist/index.cjs CHANGED
@@ -70,6 +70,8 @@ __export(redis_smq_exports, {
70
70
  ConsumerInvalidGroupIdError: () => ConsumerInvalidGroupIdError,
71
71
  ConsumerMessageHandlerAlreadyExistsError: () => ConsumerMessageHandlerAlreadyExistsError,
72
72
  ConsumerMessageHandlerError: () => ConsumerMessageHandlerError,
73
+ ConsumerMessageHandlerFileError: () => ConsumerMessageHandlerFileError,
74
+ ConsumerMessageHandlerFilenameExtensionError: () => ConsumerMessageHandlerFilenameExtensionError,
73
75
  ConsumerMessageHandlerWorkerError: () => ConsumerMessageHandlerWorkerError,
74
76
  EConsumeMessageDeadLetterCause: () => EConsumeMessageDeadLetterCause,
75
77
  EConsumeMessageUnacknowledgedCause: () => EConsumeMessageUnacknowledgedCause,
@@ -704,9 +706,27 @@ var ConsumerMessageHandlerError = class extends ConsumerError {
704
706
  // src/lib/consumer/message-handler/errors/consumer-message-handler-worker.error.ts
705
707
  var ConsumerMessageHandlerWorkerError = class extends ConsumerMessageHandlerError {
706
708
  constructor(msg) {
709
+ var _a;
707
710
  const { code, error } = msg;
711
+ const messageStr = `Error code: ${(_a = EWorkerThreadMessageCodeExit[code]) != null ? _a : EWorkerThreadMessageCodeConsume[code]}.${error ? ` Cause: ${error.name}(${error.message})` : ""}`;
712
+ super(messageStr);
713
+ }
714
+ };
715
+
716
+ // src/lib/consumer/message-handler/errors/consumer-message-handler-filename-extension.error.ts
717
+ var ConsumerMessageHandlerFilenameExtensionError = class extends ConsumerMessageHandlerError {
718
+ constructor() {
719
+ super(
720
+ `Message handler filename must ends with a '.js' or '.cjs' extension depending on your project settings.`
721
+ );
722
+ }
723
+ };
724
+
725
+ // src/lib/consumer/message-handler/errors/consumer-message-handler-file.error.ts
726
+ var ConsumerMessageHandlerFileError = class extends ConsumerMessageHandlerError {
727
+ constructor() {
708
728
  super(
709
- `Error code: ${code}.${error ? `Message: ${error.name}: ${error.message}` : ""}`
729
+ `Make sure the message handler filename is an absolute file path pointing to an existing file in your project. `
710
730
  );
711
731
  }
712
732
  };
@@ -3092,11 +3112,11 @@ var MessageHandler = class extends import_redis_smq_common25.EventEmitter {
3092
3112
  (cb2) => {
3093
3113
  if (typeof this.handler === "string") {
3094
3114
  if (![".js", ".cjs"].includes(import_path3.default.extname(this.handler))) {
3095
- cb2(new ConsumerMessageHandlerError("Invalid file extension"));
3115
+ cb2(new ConsumerMessageHandlerFilenameExtensionError());
3096
3116
  } else
3097
3117
  (0, import_fs.stat)(this.handler, (err) => {
3098
3118
  if (err)
3099
- cb2(new ConsumerMessageHandlerError(err.message));
3119
+ cb2(new ConsumerMessageHandlerFileError());
3100
3120
  else
3101
3121
  cb2();
3102
3122
  });
@@ -5828,6 +5848,8 @@ function disconnect(cb) {
5828
5848
  ConsumerInvalidGroupIdError,
5829
5849
  ConsumerMessageHandlerAlreadyExistsError,
5830
5850
  ConsumerMessageHandlerError,
5851
+ ConsumerMessageHandlerFileError,
5852
+ ConsumerMessageHandlerFilenameExtensionError,
5831
5853
  ConsumerMessageHandlerWorkerError,
5832
5854
  EConsumeMessageDeadLetterCause,
5833
5855
  EConsumeMessageUnacknowledgedCause,
package/dist/index.d.cts CHANGED
@@ -549,6 +549,14 @@ declare class ConsumerMessageHandlerWorkerError extends ConsumerMessageHandlerEr
549
549
  constructor(msg: TWorkerThreadMessage);
550
550
  }
551
551
 
552
+ declare class ConsumerMessageHandlerFilenameExtensionError extends ConsumerMessageHandlerError {
553
+ constructor();
554
+ }
555
+
556
+ declare class ConsumerMessageHandlerFileError extends ConsumerMessageHandlerError {
557
+ constructor();
558
+ }
559
+
552
560
  declare class ConsumerHeartbeat extends EventEmitter<TRedisSMQEvent> {
553
561
  protected static readonly heartbeatTTL: number;
554
562
  protected redisClient: RedisClient;
@@ -1035,4 +1043,4 @@ declare class Configuration {
1035
1043
 
1036
1044
  declare function disconnect(cb: ICallback<void>): void;
1037
1045
 
1038
- export { Configuration, Consumer, ConsumerError, ConsumerGroupDeleteError, ConsumerGroupIdNotFoundError, ConsumerGroupIdNotSupportedError, ConsumerGroupIdRequiredError, ConsumerGroups, ConsumerInvalidGroupIdError, ConsumerMessageHandlerAlreadyExistsError, ConsumerMessageHandlerError, ConsumerMessageHandlerWorkerError, EConsumeMessageDeadLetterCause, EConsumeMessageUnacknowledgedCause, EExchangeType, EMessagePriority, EMessageProperty, EMessagePropertyStatus, EQueueDeliveryModel, EQueueProperty, EQueueType, EWorkerThreadMessageCodeConsume, EWorkerThreadMessageCodeExit, ExchangeDirect, ExchangeError, ExchangeFanOut, ExchangeFanOutError, ExchangeInvalidDataError, ExchangeTopic, type IConsumerHeartbeat, type IConsumerHeartbeatPayload, type IConsumerMessageHandlerArgs, type IEventListener, type IExchange, type IExchangeSerialized, type IMessageParams, type IMessageStateTransferable, type IMessageTransferable, type IMessagesConfig, type IMessagesConfigStorage, type IMessagesConfigStorageOptions, type IMessagesConfigStorageOptionsRequired, type IMessagesConfigStorageRequired, type IQueueConsumerGroupParams, type IQueueGroupConsumersPendingCount, type IQueueMessages, type IQueueMessagesCount, type IQueueMessagesPage, type IQueueMessagesPageParams, type IQueueMessagesRequeuable, type IQueueParams, type IQueueParsedParams, type IQueueProperties, type IQueueRateLimit, type IRedisSMQConfig, type IRedisSMQConfigRequired, Message, MessageDeleteError, MessageDestinationQueueAlreadySetError, MessageDestinationQueueRequiredError, MessageError, MessageExchangeRequiredError, MessageNotFoundError, Namespace, Producer, ProducerError, ProducerInstanceNotRunningError, ProducerMessageExchangeRequiredError, ProducerMessageNotPublishedError, ProducerMessageNotScheduledError, ProducerQueueWithoutConsumerGroupsError, ProducibleMessage, Queue, QueueAcknowledgedMessages, QueueDeadLetteredMessages, QueueError, QueueExistsError, QueueHasRunningConsumersError, QueueMessageRequeueError, QueueMessages, QueueNamespaceNotFoundError, QueueNotEmptyError, QueueNotFoundError, QueuePendingMessages, QueueRateLimit, QueueRateLimitError, QueueScheduledMessages, type TConsumerMessageHandler, type TConsumerMessageHandlerFn, type TConsumerRedisKeys, type TEventListenersConfig, type TExchange, type TExchangeDirectBindingParams, type TExchangeFanOutBindingParams, type TExchangeSerialized, type TExchangeTopicBindingParams, type TMessageConsumeOptions, type TQueueConsumer, type TQueueExtendedParams, type TQueueMessagesPaginationParams, type TQueueMessagesParams, type TRedisSMQEvent, type TTopicParams, type TWorkerThreadError, type TWorkerThreadMessage, type TWorkerThreadMessageCode, disconnect };
1046
+ export { Configuration, Consumer, ConsumerError, ConsumerGroupDeleteError, ConsumerGroupIdNotFoundError, ConsumerGroupIdNotSupportedError, ConsumerGroupIdRequiredError, ConsumerGroups, ConsumerInvalidGroupIdError, ConsumerMessageHandlerAlreadyExistsError, ConsumerMessageHandlerError, ConsumerMessageHandlerFileError, ConsumerMessageHandlerFilenameExtensionError, ConsumerMessageHandlerWorkerError, EConsumeMessageDeadLetterCause, EConsumeMessageUnacknowledgedCause, EExchangeType, EMessagePriority, EMessageProperty, EMessagePropertyStatus, EQueueDeliveryModel, EQueueProperty, EQueueType, EWorkerThreadMessageCodeConsume, EWorkerThreadMessageCodeExit, ExchangeDirect, ExchangeError, ExchangeFanOut, ExchangeFanOutError, ExchangeInvalidDataError, ExchangeTopic, type IConsumerHeartbeat, type IConsumerHeartbeatPayload, type IConsumerMessageHandlerArgs, type IEventListener, type IExchange, type IExchangeSerialized, type IMessageParams, type IMessageStateTransferable, type IMessageTransferable, type IMessagesConfig, type IMessagesConfigStorage, type IMessagesConfigStorageOptions, type IMessagesConfigStorageOptionsRequired, type IMessagesConfigStorageRequired, type IQueueConsumerGroupParams, type IQueueGroupConsumersPendingCount, type IQueueMessages, type IQueueMessagesCount, type IQueueMessagesPage, type IQueueMessagesPageParams, type IQueueMessagesRequeuable, type IQueueParams, type IQueueParsedParams, type IQueueProperties, type IQueueRateLimit, type IRedisSMQConfig, type IRedisSMQConfigRequired, Message, MessageDeleteError, MessageDestinationQueueAlreadySetError, MessageDestinationQueueRequiredError, MessageError, MessageExchangeRequiredError, MessageNotFoundError, Namespace, Producer, ProducerError, ProducerInstanceNotRunningError, ProducerMessageExchangeRequiredError, ProducerMessageNotPublishedError, ProducerMessageNotScheduledError, ProducerQueueWithoutConsumerGroupsError, ProducibleMessage, Queue, QueueAcknowledgedMessages, QueueDeadLetteredMessages, QueueError, QueueExistsError, QueueHasRunningConsumersError, QueueMessageRequeueError, QueueMessages, QueueNamespaceNotFoundError, QueueNotEmptyError, QueueNotFoundError, QueuePendingMessages, QueueRateLimit, QueueRateLimitError, QueueScheduledMessages, type TConsumerMessageHandler, type TConsumerMessageHandlerFn, type TConsumerRedisKeys, type TEventListenersConfig, type TExchange, type TExchangeDirectBindingParams, type TExchangeFanOutBindingParams, type TExchangeSerialized, type TExchangeTopicBindingParams, type TMessageConsumeOptions, type TQueueConsumer, type TQueueExtendedParams, type TQueueMessagesPaginationParams, type TQueueMessagesParams, type TRedisSMQEvent, type TTopicParams, type TWorkerThreadError, type TWorkerThreadMessage, type TWorkerThreadMessageCode, disconnect };
package/dist/index.d.ts CHANGED
@@ -549,6 +549,14 @@ declare class ConsumerMessageHandlerWorkerError extends ConsumerMessageHandlerEr
549
549
  constructor(msg: TWorkerThreadMessage);
550
550
  }
551
551
 
552
+ declare class ConsumerMessageHandlerFilenameExtensionError extends ConsumerMessageHandlerError {
553
+ constructor();
554
+ }
555
+
556
+ declare class ConsumerMessageHandlerFileError extends ConsumerMessageHandlerError {
557
+ constructor();
558
+ }
559
+
552
560
  declare class ConsumerHeartbeat extends EventEmitter<TRedisSMQEvent> {
553
561
  protected static readonly heartbeatTTL: number;
554
562
  protected redisClient: RedisClient;
@@ -1035,4 +1043,4 @@ declare class Configuration {
1035
1043
 
1036
1044
  declare function disconnect(cb: ICallback<void>): void;
1037
1045
 
1038
- export { Configuration, Consumer, ConsumerError, ConsumerGroupDeleteError, ConsumerGroupIdNotFoundError, ConsumerGroupIdNotSupportedError, ConsumerGroupIdRequiredError, ConsumerGroups, ConsumerInvalidGroupIdError, ConsumerMessageHandlerAlreadyExistsError, ConsumerMessageHandlerError, ConsumerMessageHandlerWorkerError, EConsumeMessageDeadLetterCause, EConsumeMessageUnacknowledgedCause, EExchangeType, EMessagePriority, EMessageProperty, EMessagePropertyStatus, EQueueDeliveryModel, EQueueProperty, EQueueType, EWorkerThreadMessageCodeConsume, EWorkerThreadMessageCodeExit, ExchangeDirect, ExchangeError, ExchangeFanOut, ExchangeFanOutError, ExchangeInvalidDataError, ExchangeTopic, type IConsumerHeartbeat, type IConsumerHeartbeatPayload, type IConsumerMessageHandlerArgs, type IEventListener, type IExchange, type IExchangeSerialized, type IMessageParams, type IMessageStateTransferable, type IMessageTransferable, type IMessagesConfig, type IMessagesConfigStorage, type IMessagesConfigStorageOptions, type IMessagesConfigStorageOptionsRequired, type IMessagesConfigStorageRequired, type IQueueConsumerGroupParams, type IQueueGroupConsumersPendingCount, type IQueueMessages, type IQueueMessagesCount, type IQueueMessagesPage, type IQueueMessagesPageParams, type IQueueMessagesRequeuable, type IQueueParams, type IQueueParsedParams, type IQueueProperties, type IQueueRateLimit, type IRedisSMQConfig, type IRedisSMQConfigRequired, Message, MessageDeleteError, MessageDestinationQueueAlreadySetError, MessageDestinationQueueRequiredError, MessageError, MessageExchangeRequiredError, MessageNotFoundError, Namespace, Producer, ProducerError, ProducerInstanceNotRunningError, ProducerMessageExchangeRequiredError, ProducerMessageNotPublishedError, ProducerMessageNotScheduledError, ProducerQueueWithoutConsumerGroupsError, ProducibleMessage, Queue, QueueAcknowledgedMessages, QueueDeadLetteredMessages, QueueError, QueueExistsError, QueueHasRunningConsumersError, QueueMessageRequeueError, QueueMessages, QueueNamespaceNotFoundError, QueueNotEmptyError, QueueNotFoundError, QueuePendingMessages, QueueRateLimit, QueueRateLimitError, QueueScheduledMessages, type TConsumerMessageHandler, type TConsumerMessageHandlerFn, type TConsumerRedisKeys, type TEventListenersConfig, type TExchange, type TExchangeDirectBindingParams, type TExchangeFanOutBindingParams, type TExchangeSerialized, type TExchangeTopicBindingParams, type TMessageConsumeOptions, type TQueueConsumer, type TQueueExtendedParams, type TQueueMessagesPaginationParams, type TQueueMessagesParams, type TRedisSMQEvent, type TTopicParams, type TWorkerThreadError, type TWorkerThreadMessage, type TWorkerThreadMessageCode, disconnect };
1046
+ export { Configuration, Consumer, ConsumerError, ConsumerGroupDeleteError, ConsumerGroupIdNotFoundError, ConsumerGroupIdNotSupportedError, ConsumerGroupIdRequiredError, ConsumerGroups, ConsumerInvalidGroupIdError, ConsumerMessageHandlerAlreadyExistsError, ConsumerMessageHandlerError, ConsumerMessageHandlerFileError, ConsumerMessageHandlerFilenameExtensionError, ConsumerMessageHandlerWorkerError, EConsumeMessageDeadLetterCause, EConsumeMessageUnacknowledgedCause, EExchangeType, EMessagePriority, EMessageProperty, EMessagePropertyStatus, EQueueDeliveryModel, EQueueProperty, EQueueType, EWorkerThreadMessageCodeConsume, EWorkerThreadMessageCodeExit, ExchangeDirect, ExchangeError, ExchangeFanOut, ExchangeFanOutError, ExchangeInvalidDataError, ExchangeTopic, type IConsumerHeartbeat, type IConsumerHeartbeatPayload, type IConsumerMessageHandlerArgs, type IEventListener, type IExchange, type IExchangeSerialized, type IMessageParams, type IMessageStateTransferable, type IMessageTransferable, type IMessagesConfig, type IMessagesConfigStorage, type IMessagesConfigStorageOptions, type IMessagesConfigStorageOptionsRequired, type IMessagesConfigStorageRequired, type IQueueConsumerGroupParams, type IQueueGroupConsumersPendingCount, type IQueueMessages, type IQueueMessagesCount, type IQueueMessagesPage, type IQueueMessagesPageParams, type IQueueMessagesRequeuable, type IQueueParams, type IQueueParsedParams, type IQueueProperties, type IQueueRateLimit, type IRedisSMQConfig, type IRedisSMQConfigRequired, Message, MessageDeleteError, MessageDestinationQueueAlreadySetError, MessageDestinationQueueRequiredError, MessageError, MessageExchangeRequiredError, MessageNotFoundError, Namespace, Producer, ProducerError, ProducerInstanceNotRunningError, ProducerMessageExchangeRequiredError, ProducerMessageNotPublishedError, ProducerMessageNotScheduledError, ProducerQueueWithoutConsumerGroupsError, ProducibleMessage, Queue, QueueAcknowledgedMessages, QueueDeadLetteredMessages, QueueError, QueueExistsError, QueueHasRunningConsumersError, QueueMessageRequeueError, QueueMessages, QueueNamespaceNotFoundError, QueueNotEmptyError, QueueNotFoundError, QueuePendingMessages, QueueRateLimit, QueueRateLimitError, QueueScheduledMessages, type TConsumerMessageHandler, type TConsumerMessageHandlerFn, type TConsumerRedisKeys, type TEventListenersConfig, type TExchange, type TExchangeDirectBindingParams, type TExchangeFanOutBindingParams, type TExchangeSerialized, type TExchangeTopicBindingParams, type TMessageConsumeOptions, type TQueueConsumer, type TQueueExtendedParams, type TQueueMessagesPaginationParams, type TQueueMessagesParams, type TRedisSMQEvent, type TTopicParams, type TWorkerThreadError, type TWorkerThreadMessage, type TWorkerThreadMessageCode, disconnect };
package/dist/index.js CHANGED
@@ -614,9 +614,27 @@ var ConsumerMessageHandlerError = class extends ConsumerError {
614
614
  // src/lib/consumer/message-handler/errors/consumer-message-handler-worker.error.ts
615
615
  var ConsumerMessageHandlerWorkerError = class extends ConsumerMessageHandlerError {
616
616
  constructor(msg) {
617
+ var _a;
617
618
  const { code, error } = msg;
619
+ const messageStr = `Error code: ${(_a = EWorkerThreadMessageCodeExit[code]) != null ? _a : EWorkerThreadMessageCodeConsume[code]}.${error ? ` Cause: ${error.name}(${error.message})` : ""}`;
620
+ super(messageStr);
621
+ }
622
+ };
623
+
624
+ // src/lib/consumer/message-handler/errors/consumer-message-handler-filename-extension.error.ts
625
+ var ConsumerMessageHandlerFilenameExtensionError = class extends ConsumerMessageHandlerError {
626
+ constructor() {
627
+ super(
628
+ `Message handler filename must ends with a '.js' or '.cjs' extension depending on your project settings.`
629
+ );
630
+ }
631
+ };
632
+
633
+ // src/lib/consumer/message-handler/errors/consumer-message-handler-file.error.ts
634
+ var ConsumerMessageHandlerFileError = class extends ConsumerMessageHandlerError {
635
+ constructor() {
618
636
  super(
619
- `Error code: ${code}.${error ? `Message: ${error.name}: ${error.message}` : ""}`
637
+ `Make sure the message handler filename is an absolute file path pointing to an existing file in your project. `
620
638
  );
621
639
  }
622
640
  };
@@ -3041,11 +3059,11 @@ var MessageHandler = class extends EventEmitter4 {
3041
3059
  (cb2) => {
3042
3060
  if (typeof this.handler === "string") {
3043
3061
  if (![".js", ".cjs"].includes(path2.extname(this.handler))) {
3044
- cb2(new ConsumerMessageHandlerError("Invalid file extension"));
3062
+ cb2(new ConsumerMessageHandlerFilenameExtensionError());
3045
3063
  } else
3046
3064
  stat(this.handler, (err) => {
3047
3065
  if (err)
3048
- cb2(new ConsumerMessageHandlerError(err.message));
3066
+ cb2(new ConsumerMessageHandlerFileError());
3049
3067
  else
3050
3068
  cb2();
3051
3069
  });
@@ -5820,6 +5838,8 @@ export {
5820
5838
  ConsumerInvalidGroupIdError,
5821
5839
  ConsumerMessageHandlerAlreadyExistsError,
5822
5840
  ConsumerMessageHandlerError,
5841
+ ConsumerMessageHandlerFileError,
5842
+ ConsumerMessageHandlerFilenameExtensionError,
5823
5843
  ConsumerMessageHandlerWorkerError,
5824
5844
  EConsumeMessageDeadLetterCause,
5825
5845
  EConsumeMessageUnacknowledgedCause,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq",
3
- "version": "8.0.0-rc.16",
3
+ "version": "8.0.0-rc.17",
4
4
  "description": "A simple high-performance Redis message queue for Node.js.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",