@geekmidas/events 0.1.0 → 0.2.0

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.
Files changed (251) hide show
  1. package/dist/{BasicConnection-C4_Y0nIj.d.mts → BasicConnection-BTRsXiuH.d.cts} +3 -2
  2. package/dist/BasicConnection-BTRsXiuH.d.cts.map +1 -0
  3. package/dist/{BasicConnection-Bz3F2rXA.cjs → BasicConnection-C-Cg2FJT.cjs} +1 -1
  4. package/dist/BasicConnection-C-Cg2FJT.cjs.map +1 -0
  5. package/dist/{BasicConnection-DOSOFSsW.mjs → BasicConnection-CpwybcC9.mjs} +1 -1
  6. package/dist/BasicConnection-CpwybcC9.mjs.map +1 -0
  7. package/dist/{BasicConnection-CddnULuT.d.cts → BasicConnection-DIxtA7jK.d.mts} +3 -2
  8. package/dist/BasicConnection-DIxtA7jK.d.mts.map +1 -0
  9. package/dist/{BasicPublisher-afwuA4Xp.cjs → BasicPublisher-CXAVKxgq.cjs} +1 -1
  10. package/dist/BasicPublisher-CXAVKxgq.cjs.map +1 -0
  11. package/dist/{BasicPublisher-DCBxaTwC.d.mts → BasicPublisher-CpJFK2oS.d.mts} +5 -3
  12. package/dist/BasicPublisher-CpJFK2oS.d.mts.map +1 -0
  13. package/dist/{BasicPublisher-V5hELHG9.d.cts → BasicPublisher-D1q0a2xp.d.cts} +5 -3
  14. package/dist/BasicPublisher-D1q0a2xp.d.cts.map +1 -0
  15. package/dist/{BasicPublisher-CaX8GCUi.mjs → BasicPublisher-DogbeHAH.mjs} +1 -1
  16. package/dist/BasicPublisher-DogbeHAH.mjs.map +1 -0
  17. package/dist/{BasicSubscriber-BB3aKeph.d.mts → BasicSubscriber-6w0Af4DD.d.mts} +5 -3
  18. package/dist/BasicSubscriber-6w0Af4DD.d.mts.map +1 -0
  19. package/dist/{BasicSubscriber-DPpJNUUY.mjs → BasicSubscriber-BJSZN22M.mjs} +2 -4
  20. package/dist/BasicSubscriber-BJSZN22M.mjs.map +1 -0
  21. package/dist/{BasicSubscriber-DOwgFw5j.d.cts → BasicSubscriber-DXxQewjc.d.cts} +5 -3
  22. package/dist/BasicSubscriber-DXxQewjc.d.cts.map +1 -0
  23. package/dist/{BasicSubscriber-Ckf3BkxS.cjs → BasicSubscriber-mVJRMXhZ.cjs} +2 -4
  24. package/dist/BasicSubscriber-mVJRMXhZ.cjs.map +1 -0
  25. package/dist/{EventConnection-DZhn1Msl.d.cts → EventConnection-BaJRXdg7.d.cts} +2 -2
  26. package/dist/EventConnection-BaJRXdg7.d.cts.map +1 -0
  27. package/dist/EventConnection-ClLMoIUU.mjs.map +1 -1
  28. package/dist/EventConnection-F_N81SXu.cjs.map +1 -1
  29. package/dist/{EventConnection-DeXfLGom.d.mts → EventConnection-SOhtmxib.d.mts} +2 -2
  30. package/dist/EventConnection-SOhtmxib.d.mts.map +1 -0
  31. package/dist/EventConnection.d.cts +2 -2
  32. package/dist/EventConnection.d.mts +2 -2
  33. package/dist/{Publisher-C3m8JFXm.d.mts → Publisher-1CfcYRnm.d.mts} +4 -2
  34. package/dist/Publisher-1CfcYRnm.d.mts.map +1 -0
  35. package/dist/{Publisher-nXNVjL0e.d.cts → Publisher-BfNgvHwQ.d.cts} +4 -2
  36. package/dist/Publisher-BfNgvHwQ.d.cts.map +1 -0
  37. package/dist/Publisher-DS0aOh8r.mjs.map +1 -1
  38. package/dist/Publisher-ceu6OxCj.cjs.map +1 -1
  39. package/dist/Publisher.d.cts +2 -2
  40. package/dist/Publisher.d.mts +2 -2
  41. package/dist/{RabbitMQConnection-BN_GybOv.cjs → RabbitMQConnection-Blj9Lo05.cjs} +2 -2
  42. package/dist/RabbitMQConnection-Blj9Lo05.cjs.map +1 -0
  43. package/dist/{RabbitMQConnection-7cWp_-_Q.d.cts → RabbitMQConnection-Bm8VCI2R.d.cts} +3 -2
  44. package/dist/RabbitMQConnection-Bm8VCI2R.d.cts.map +1 -0
  45. package/dist/{RabbitMQConnection-C2HC7J7K.d.mts → RabbitMQConnection-Ck-ktCp_.d.mts} +3 -2
  46. package/dist/RabbitMQConnection-Ck-ktCp_.d.mts.map +1 -0
  47. package/dist/{RabbitMQConnection-eVOVS4Dl.mjs → RabbitMQConnection-Co7f5Xsx.mjs} +2 -2
  48. package/dist/RabbitMQConnection-Co7f5Xsx.mjs.map +1 -0
  49. package/dist/{RabbitMQPublisher-CSCn6gMA.cjs → RabbitMQPublisher--DL6GM6g.cjs} +1 -1
  50. package/dist/RabbitMQPublisher--DL6GM6g.cjs.map +1 -0
  51. package/dist/{RabbitMQPublisher-CpcbgrXj.d.cts → RabbitMQPublisher-COnxcWEZ.d.mts} +5 -3
  52. package/dist/RabbitMQPublisher-COnxcWEZ.d.mts.map +1 -0
  53. package/dist/{RabbitMQPublisher-BZX0edgL.mjs → RabbitMQPublisher-o_oVI3wr.mjs} +1 -1
  54. package/dist/RabbitMQPublisher-o_oVI3wr.mjs.map +1 -0
  55. package/dist/{RabbitMQPublisher-DDZi15Ro.d.mts → RabbitMQPublisher-qQT7-1-p.d.cts} +5 -3
  56. package/dist/RabbitMQPublisher-qQT7-1-p.d.cts.map +1 -0
  57. package/dist/{RabbitMQSubscriber-Cj7qLIi6.cjs → RabbitMQSubscriber-C8MYAihn.cjs} +2 -3
  58. package/dist/RabbitMQSubscriber-C8MYAihn.cjs.map +1 -0
  59. package/dist/{RabbitMQSubscriber-BJ9PTGny.d.cts → RabbitMQSubscriber-C_sZjDPU.d.mts} +5 -3
  60. package/dist/RabbitMQSubscriber-C_sZjDPU.d.mts.map +1 -0
  61. package/dist/{RabbitMQSubscriber-CIvIw8MG.d.mts → RabbitMQSubscriber-D12sssMb.d.cts} +5 -3
  62. package/dist/RabbitMQSubscriber-D12sssMb.d.cts.map +1 -0
  63. package/dist/{RabbitMQSubscriber-B5I-hBaT.mjs → RabbitMQSubscriber-DlGL0pC2.mjs} +2 -3
  64. package/dist/RabbitMQSubscriber-DlGL0pC2.mjs.map +1 -0
  65. package/dist/{SNSConnection-CAImaMM2.d.mts → SNSConnection-BDfQrVBO.d.cts} +3 -2
  66. package/dist/SNSConnection-BDfQrVBO.d.cts.map +1 -0
  67. package/dist/{SNSConnection-DVEE3XoC.mjs → SNSConnection-D7wCf9Si.mjs} +1 -1
  68. package/dist/SNSConnection-D7wCf9Si.mjs.map +1 -0
  69. package/dist/{SNSConnection-CZz_U56V.cjs → SNSConnection-DVsC_pbB.cjs} +1 -1
  70. package/dist/SNSConnection-DVsC_pbB.cjs.map +1 -0
  71. package/dist/{SNSConnection-Cqbr7-Ho.d.cts → SNSConnection-mHb10nQ6.d.mts} +3 -2
  72. package/dist/SNSConnection-mHb10nQ6.d.mts.map +1 -0
  73. package/dist/{SNSPublisher-DbWVH-g_.cjs → SNSPublisher-BoA8uLnw.cjs} +2 -3
  74. package/dist/SNSPublisher-BoA8uLnw.cjs.map +1 -0
  75. package/dist/{SNSPublisher-Dkhb4LU-.d.mts → SNSPublisher-CM7UAWtf.d.mts} +7 -6
  76. package/dist/SNSPublisher-CM7UAWtf.d.mts.map +1 -0
  77. package/dist/{SNSPublisher-Do-FMUyT.mjs → SNSPublisher-Drr4kHn6.mjs} +2 -3
  78. package/dist/SNSPublisher-Drr4kHn6.mjs.map +1 -0
  79. package/dist/{SNSPublisher-RVZFa7kL.d.cts → SNSPublisher-kpsSlGDn.d.cts} +7 -6
  80. package/dist/SNSPublisher-kpsSlGDn.d.cts.map +1 -0
  81. package/dist/{SNSSubscriber-e7eG48yJ.mjs → SNSSubscriber-CBIvQpqK.mjs} +5 -9
  82. package/dist/SNSSubscriber-CBIvQpqK.mjs.map +1 -0
  83. package/dist/{SNSSubscriber-DpEwQ8Tb.cjs → SNSSubscriber-CWiAJjpU.cjs} +5 -9
  84. package/dist/SNSSubscriber-CWiAJjpU.cjs.map +1 -0
  85. package/dist/{SNSSubscriber-B31JmkAE.d.mts → SNSSubscriber-DDB3--pm.d.cts} +4 -3
  86. package/dist/SNSSubscriber-DDB3--pm.d.cts.map +1 -0
  87. package/dist/{SNSSubscriber-k2UwKUxu.d.cts → SNSSubscriber-Dwo8391f.d.mts} +4 -3
  88. package/dist/SNSSubscriber-Dwo8391f.d.mts.map +1 -0
  89. package/dist/{SQSConnection-C5WFqZW7.d.mts → SQSConnection-B5Ep9Tma.d.cts} +3 -2
  90. package/dist/SQSConnection-B5Ep9Tma.d.cts.map +1 -0
  91. package/dist/{SQSConnection-geav2Rsn.d.cts → SQSConnection-BI_xOzyJ.d.mts} +3 -2
  92. package/dist/SQSConnection-BI_xOzyJ.d.mts.map +1 -0
  93. package/dist/{SQSConnection-DWYDtftQ.cjs → SQSConnection-BwNjUPr4.cjs} +1 -1
  94. package/dist/SQSConnection-BwNjUPr4.cjs.map +1 -0
  95. package/dist/{SQSConnection-BBlDWZLU.mjs → SQSConnection-Eleqqre3.mjs} +1 -1
  96. package/dist/SQSConnection-Eleqqre3.mjs.map +1 -0
  97. package/dist/{SQSPublisher-CdsayOLV.d.mts → SQSPublisher-BN1ds6SN.d.mts} +5 -3
  98. package/dist/SQSPublisher-BN1ds6SN.d.mts.map +1 -0
  99. package/dist/{SQSPublisher-Utb_FTe5.d.cts → SQSPublisher-DFTqwzRW.d.cts} +5 -3
  100. package/dist/SQSPublisher-DFTqwzRW.d.cts.map +1 -0
  101. package/dist/{SQSPublisher-B3lS2zbu.mjs → SQSPublisher-DG9o4ME3.mjs} +1 -1
  102. package/dist/SQSPublisher-DG9o4ME3.mjs.map +1 -0
  103. package/dist/{SQSPublisher-nzbSaXSH.cjs → SQSPublisher-Dq5353oZ.cjs} +1 -1
  104. package/dist/SQSPublisher-Dq5353oZ.cjs.map +1 -0
  105. package/dist/{SQSSubscriber-DcL9BbG1.cjs → SQSSubscriber-B4sRXVl6.cjs} +5 -12
  106. package/dist/SQSSubscriber-B4sRXVl6.cjs.map +1 -0
  107. package/dist/{SQSSubscriber-B6iL1EnX.d.cts → SQSSubscriber-BO2me_gs.d.cts} +4 -3
  108. package/dist/SQSSubscriber-BO2me_gs.d.cts.map +1 -0
  109. package/dist/{SQSSubscriber-84pFnW1z.mjs → SQSSubscriber-CVGhZ8Nr.mjs} +5 -12
  110. package/dist/SQSSubscriber-CVGhZ8Nr.mjs.map +1 -0
  111. package/dist/{SQSSubscriber-DBeE4XAR.d.mts → SQSSubscriber-FyZFfr2-.d.mts} +4 -3
  112. package/dist/SQSSubscriber-FyZFfr2-.d.mts.map +1 -0
  113. package/dist/Subscriber-Bd9hb_jp.mjs.map +1 -1
  114. package/dist/{Subscriber-Cff9EIpv.d.mts → Subscriber-BxT-KzFJ.d.mts} +4 -2
  115. package/dist/Subscriber-BxT-KzFJ.d.mts.map +1 -0
  116. package/dist/{Subscriber-CpAwcUzb.d.cts → Subscriber-DDD_4Nlx.d.cts} +4 -2
  117. package/dist/Subscriber-DDD_4Nlx.d.cts.map +1 -0
  118. package/dist/Subscriber-saVOWuMq.cjs.map +1 -1
  119. package/dist/Subscriber.d.cts +2 -2
  120. package/dist/Subscriber.d.mts +2 -2
  121. package/dist/basic/BasicConnection.cjs +1 -1
  122. package/dist/basic/BasicConnection.d.cts +2 -2
  123. package/dist/basic/BasicConnection.d.mts +2 -2
  124. package/dist/basic/BasicConnection.mjs +1 -1
  125. package/dist/basic/BasicPublisher.cjs +1 -1
  126. package/dist/basic/BasicPublisher.d.cts +3 -3
  127. package/dist/basic/BasicPublisher.d.mts +3 -3
  128. package/dist/basic/BasicPublisher.mjs +1 -1
  129. package/dist/basic/BasicSubscriber.cjs +1 -1
  130. package/dist/basic/BasicSubscriber.d.cts +3 -3
  131. package/dist/basic/BasicSubscriber.d.mts +3 -3
  132. package/dist/basic/BasicSubscriber.mjs +1 -1
  133. package/dist/basic/index.cjs +3 -3
  134. package/dist/basic/index.d.cts +4 -4
  135. package/dist/basic/index.d.mts +4 -4
  136. package/dist/basic/index.mjs +3 -3
  137. package/dist/index.d.cts +4 -4
  138. package/dist/index.d.mts +4 -4
  139. package/dist/rabbitmq/RabbitMQConnection.cjs +1 -1
  140. package/dist/rabbitmq/RabbitMQConnection.d.cts +2 -2
  141. package/dist/rabbitmq/RabbitMQConnection.d.mts +2 -2
  142. package/dist/rabbitmq/RabbitMQConnection.mjs +1 -1
  143. package/dist/rabbitmq/RabbitMQPublisher.cjs +1 -1
  144. package/dist/rabbitmq/RabbitMQPublisher.d.cts +3 -3
  145. package/dist/rabbitmq/RabbitMQPublisher.d.mts +3 -3
  146. package/dist/rabbitmq/RabbitMQPublisher.mjs +1 -1
  147. package/dist/rabbitmq/RabbitMQSubscriber.cjs +1 -1
  148. package/dist/rabbitmq/RabbitMQSubscriber.d.cts +3 -3
  149. package/dist/rabbitmq/RabbitMQSubscriber.d.mts +3 -3
  150. package/dist/rabbitmq/RabbitMQSubscriber.mjs +1 -1
  151. package/dist/rabbitmq/index.cjs +3 -3
  152. package/dist/rabbitmq/index.d.cts +4 -4
  153. package/dist/rabbitmq/index.d.mts +4 -4
  154. package/dist/rabbitmq/index.mjs +3 -3
  155. package/dist/sns/SNSConnection.cjs +1 -1
  156. package/dist/sns/SNSConnection.d.cts +2 -2
  157. package/dist/sns/SNSConnection.d.mts +2 -2
  158. package/dist/sns/SNSConnection.mjs +1 -1
  159. package/dist/sns/SNSPublisher.cjs +1 -1
  160. package/dist/sns/SNSPublisher.d.cts +3 -3
  161. package/dist/sns/SNSPublisher.d.mts +3 -3
  162. package/dist/sns/SNSPublisher.mjs +1 -1
  163. package/dist/sns/SNSSubscriber.cjs +3 -3
  164. package/dist/sns/SNSSubscriber.d.cts +3 -3
  165. package/dist/sns/SNSSubscriber.d.mts +3 -3
  166. package/dist/sns/SNSSubscriber.mjs +3 -3
  167. package/dist/sns/index.cjs +5 -5
  168. package/dist/sns/index.d.cts +4 -4
  169. package/dist/sns/index.d.mts +4 -4
  170. package/dist/sns/index.mjs +5 -5
  171. package/dist/sqs/SQSConnection.cjs +1 -1
  172. package/dist/sqs/SQSConnection.d.cts +2 -2
  173. package/dist/sqs/SQSConnection.d.mts +2 -2
  174. package/dist/sqs/SQSConnection.mjs +1 -1
  175. package/dist/sqs/SQSPublisher.cjs +1 -1
  176. package/dist/sqs/SQSPublisher.d.cts +3 -3
  177. package/dist/sqs/SQSPublisher.d.mts +3 -3
  178. package/dist/sqs/SQSPublisher.mjs +1 -1
  179. package/dist/sqs/SQSSubscriber.cjs +1 -1
  180. package/dist/sqs/SQSSubscriber.d.cts +3 -3
  181. package/dist/sqs/SQSSubscriber.d.mts +3 -3
  182. package/dist/sqs/SQSSubscriber.mjs +1 -1
  183. package/dist/sqs/index.cjs +3 -3
  184. package/dist/sqs/index.d.cts +4 -4
  185. package/dist/sqs/index.d.mts +4 -4
  186. package/dist/sqs/index.mjs +3 -3
  187. package/dist/types-B63qHVOG.mjs.map +1 -1
  188. package/dist/types-CvSMEO5z.cjs.map +1 -1
  189. package/dist/{types-D0g-o6wX.d.mts → types-DSVsPgKd.d.mts} +2 -1
  190. package/dist/types-DSVsPgKd.d.mts.map +1 -0
  191. package/dist/{types-DEGUg5BA.d.cts → types-Dmbp1U-6.d.cts} +2 -1
  192. package/dist/types-Dmbp1U-6.d.cts.map +1 -0
  193. package/dist/types.d.cts +1 -1
  194. package/dist/types.d.mts +1 -1
  195. package/package.json +1 -1
  196. package/src/EventConnection.ts +31 -31
  197. package/src/Publisher.ts +78 -78
  198. package/src/Subscriber.ts +91 -91
  199. package/src/__tests__/EventConnection.spec.ts +42 -0
  200. package/src/__tests__/Publisher.spec.ts +96 -0
  201. package/src/__tests__/Subscriber.spec.ts +91 -23
  202. package/src/basic/BasicConnection.ts +35 -35
  203. package/src/basic/BasicPublisher.ts +8 -8
  204. package/src/basic/BasicSubscriber.ts +13 -16
  205. package/src/basic/__tests__/BasicSubscriber.spec.ts +116 -116
  206. package/src/index.ts +13 -13
  207. package/src/rabbitmq/RabbitMQConnection.ts +139 -139
  208. package/src/rabbitmq/RabbitMQPublisher.ts +48 -48
  209. package/src/rabbitmq/RabbitMQSubscriber.ts +100 -102
  210. package/src/rabbitmq/__tests__/RabbitMQPublisher.spec.ts +364 -364
  211. package/src/rabbitmq/__tests__/RabbitMQSubscriber.spec.ts +204 -204
  212. package/src/rabbitmq/index.ts +3 -3
  213. package/src/sns/SNSConnection.ts +76 -76
  214. package/src/sns/SNSPublisher.ts +54 -56
  215. package/src/sns/SNSSubscriber.ts +187 -191
  216. package/src/sns/__tests__/SNS-SQS-Integration.spec.ts +321 -321
  217. package/src/sns/__tests__/SNSPublisher.spec.ts +449 -0
  218. package/src/sns/__tests__/SNSSubscriber.spec.ts +527 -0
  219. package/src/sns/index.ts +3 -3
  220. package/src/sqs/SQSConnection.ts +75 -75
  221. package/src/sqs/SQSPublisher.ts +93 -93
  222. package/src/sqs/SQSSubscriber.ts +157 -165
  223. package/src/sqs/__tests__/SQSPublisher.spec.ts +178 -178
  224. package/src/sqs/index.ts +3 -3
  225. package/src/types.ts +28 -29
  226. package/tsconfig.json +9 -0
  227. package/tsdown.config.ts +1 -1
  228. package/dist/BasicConnection-Bz3F2rXA.cjs.map +0 -1
  229. package/dist/BasicConnection-DOSOFSsW.mjs.map +0 -1
  230. package/dist/BasicPublisher-CaX8GCUi.mjs.map +0 -1
  231. package/dist/BasicPublisher-afwuA4Xp.cjs.map +0 -1
  232. package/dist/BasicSubscriber-Ckf3BkxS.cjs.map +0 -1
  233. package/dist/BasicSubscriber-DPpJNUUY.mjs.map +0 -1
  234. package/dist/RabbitMQConnection-BN_GybOv.cjs.map +0 -1
  235. package/dist/RabbitMQConnection-eVOVS4Dl.mjs.map +0 -1
  236. package/dist/RabbitMQPublisher-BZX0edgL.mjs.map +0 -1
  237. package/dist/RabbitMQPublisher-CSCn6gMA.cjs.map +0 -1
  238. package/dist/RabbitMQSubscriber-B5I-hBaT.mjs.map +0 -1
  239. package/dist/RabbitMQSubscriber-Cj7qLIi6.cjs.map +0 -1
  240. package/dist/SNSConnection-CZz_U56V.cjs.map +0 -1
  241. package/dist/SNSConnection-DVEE3XoC.mjs.map +0 -1
  242. package/dist/SNSPublisher-DbWVH-g_.cjs.map +0 -1
  243. package/dist/SNSPublisher-Do-FMUyT.mjs.map +0 -1
  244. package/dist/SNSSubscriber-DpEwQ8Tb.cjs.map +0 -1
  245. package/dist/SNSSubscriber-e7eG48yJ.mjs.map +0 -1
  246. package/dist/SQSConnection-BBlDWZLU.mjs.map +0 -1
  247. package/dist/SQSConnection-DWYDtftQ.cjs.map +0 -1
  248. package/dist/SQSPublisher-B3lS2zbu.mjs.map +0 -1
  249. package/dist/SQSPublisher-nzbSaXSH.cjs.map +0 -1
  250. package/dist/SQSSubscriber-84pFnW1z.mjs.map +0 -1
  251. package/dist/SQSSubscriber-DcL9BbG1.cjs.map +0 -1
@@ -10,283 +10,283 @@ const RABBITMQ_URL = 'amqp://geekmidas:geekmidas@localhost:5672';
10
10
 
11
11
  // Helper to generate unique exchange names
12
12
  const uniqueExchange = () =>
13
- `test-exchange-${Date.now()}-${Math.random().toString(36).substring(7)}`;
13
+ `test-exchange-${Date.now()}-${Math.random().toString(36).substring(7)}`;
14
14
 
15
15
  describe('RabbitMQSubscriber - Integration Tests', () => {
16
- it('should receive published messages', async () => {
17
- const testExchange = uniqueExchange();
18
- const connection = new RabbitMQConnection({
19
- url: RABBITMQ_URL,
20
- exchange: testExchange,
21
- });
22
- await connection.connect();
16
+ it('should receive published messages', async () => {
17
+ const testExchange = uniqueExchange();
18
+ const connection = new RabbitMQConnection({
19
+ url: RABBITMQ_URL,
20
+ exchange: testExchange,
21
+ });
22
+ await connection.connect();
23
23
 
24
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
25
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
24
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
25
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
26
26
 
27
- const receivedMessages: TestMessage[] = [];
27
+ const receivedMessages: TestMessage[] = [];
28
28
 
29
- await subscriber.subscribe(['user.created'], async (message) => {
30
- receivedMessages.push(message);
31
- });
29
+ await subscriber.subscribe(['user.created'], async (message) => {
30
+ receivedMessages.push(message);
31
+ });
32
32
 
33
- // Wait a bit for consumer to be ready
34
- await new Promise((resolve) => setTimeout(resolve, 100));
33
+ // Wait a bit for consumer to be ready
34
+ await new Promise((resolve) => setTimeout(resolve, 100));
35
35
 
36
- await publisher.publish([
37
- { type: 'user.created', payload: { userId: '123' } },
38
- ]);
36
+ await publisher.publish([
37
+ { type: 'user.created', payload: { userId: '123' } },
38
+ ]);
39
39
 
40
- // Wait for message to be processed
41
- await new Promise((resolve) => setTimeout(resolve, 200));
40
+ // Wait for message to be processed
41
+ await new Promise((resolve) => setTimeout(resolve, 200));
42
42
 
43
- expect(receivedMessages).toHaveLength(1);
44
- expect(receivedMessages[0].payload.userId).toBe('123');
43
+ expect(receivedMessages).toHaveLength(1);
44
+ expect(receivedMessages[0].payload.userId).toBe('123');
45
45
 
46
- await connection.close();
47
- });
46
+ await connection.close();
47
+ });
48
48
 
49
- it('should receive multiple messages', async () => {
50
- const testExchange = uniqueExchange();
51
- const connection = new RabbitMQConnection({
52
- url: RABBITMQ_URL,
53
- exchange: testExchange,
54
- });
55
- await connection.connect();
49
+ it('should receive multiple messages', async () => {
50
+ const testExchange = uniqueExchange();
51
+ const connection = new RabbitMQConnection({
52
+ url: RABBITMQ_URL,
53
+ exchange: testExchange,
54
+ });
55
+ await connection.connect();
56
56
 
57
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
58
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
57
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
58
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
59
59
 
60
- const receivedMessages: TestMessage[] = [];
60
+ const receivedMessages: TestMessage[] = [];
61
61
 
62
- await subscriber.subscribe(['user.created'], async (message) => {
63
- receivedMessages.push(message);
64
- });
62
+ await subscriber.subscribe(['user.created'], async (message) => {
63
+ receivedMessages.push(message);
64
+ });
65
65
 
66
- await new Promise((resolve) => setTimeout(resolve, 100));
66
+ await new Promise((resolve) => setTimeout(resolve, 100));
67
67
 
68
- await publisher.publish([
69
- { type: 'user.created', payload: { userId: '1' } },
70
- { type: 'user.created', payload: { userId: '2' } },
71
- { type: 'user.created', payload: { userId: '3' } },
72
- ]);
68
+ await publisher.publish([
69
+ { type: 'user.created', payload: { userId: '1' } },
70
+ { type: 'user.created', payload: { userId: '2' } },
71
+ { type: 'user.created', payload: { userId: '3' } },
72
+ ]);
73
73
 
74
- await new Promise((resolve) => setTimeout(resolve, 300));
74
+ await new Promise((resolve) => setTimeout(resolve, 300));
75
75
 
76
- expect(receivedMessages).toHaveLength(3);
76
+ expect(receivedMessages).toHaveLength(3);
77
77
 
78
- await connection.close();
79
- });
78
+ await connection.close();
79
+ });
80
80
 
81
- it('should only receive subscribed message types', async () => {
82
- const testExchange = uniqueExchange();
83
- const connection = new RabbitMQConnection({
84
- url: RABBITMQ_URL,
85
- exchange: testExchange,
86
- });
87
- await connection.connect();
81
+ it('should only receive subscribed message types', async () => {
82
+ const testExchange = uniqueExchange();
83
+ const connection = new RabbitMQConnection({
84
+ url: RABBITMQ_URL,
85
+ exchange: testExchange,
86
+ });
87
+ await connection.connect();
88
88
 
89
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
90
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
89
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
90
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
91
91
 
92
- const receivedMessages: TestMessage[] = [];
92
+ const receivedMessages: TestMessage[] = [];
93
93
 
94
- // Only subscribe to user.created
95
- await subscriber.subscribe(['user.created'], async (message) => {
96
- receivedMessages.push(message);
97
- });
94
+ // Only subscribe to user.created
95
+ await subscriber.subscribe(['user.created'], async (message) => {
96
+ receivedMessages.push(message);
97
+ });
98
98
 
99
- await new Promise((resolve) => setTimeout(resolve, 100));
99
+ await new Promise((resolve) => setTimeout(resolve, 100));
100
100
 
101
- await publisher.publish([
102
- { type: 'user.created', payload: { userId: '1' } },
103
- { type: 'user.updated', payload: { userId: '2' } },
104
- { type: 'user.created', payload: { userId: '3' } },
105
- ]);
101
+ await publisher.publish([
102
+ { type: 'user.created', payload: { userId: '1' } },
103
+ { type: 'user.updated', payload: { userId: '2' } },
104
+ { type: 'user.created', payload: { userId: '3' } },
105
+ ]);
106
106
 
107
- await new Promise((resolve) => setTimeout(resolve, 300));
107
+ await new Promise((resolve) => setTimeout(resolve, 300));
108
108
 
109
- expect(receivedMessages).toHaveLength(2);
110
- expect(receivedMessages.every((m) => m.payload.userId !== '2')).toBe(true);
109
+ expect(receivedMessages).toHaveLength(2);
110
+ expect(receivedMessages.every((m) => m.payload.userId !== '2')).toBe(true);
111
111
 
112
- await connection.close();
113
- });
112
+ await connection.close();
113
+ });
114
114
 
115
- it('should subscribe to multiple message types', async () => {
116
- const testExchange = uniqueExchange();
117
- const connection = new RabbitMQConnection({
118
- url: RABBITMQ_URL,
119
- exchange: testExchange,
120
- });
121
- await connection.connect();
115
+ it('should subscribe to multiple message types', async () => {
116
+ const testExchange = uniqueExchange();
117
+ const connection = new RabbitMQConnection({
118
+ url: RABBITMQ_URL,
119
+ exchange: testExchange,
120
+ });
121
+ await connection.connect();
122
122
 
123
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
124
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
123
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
124
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
125
125
 
126
- const receivedMessages: TestMessage[] = [];
126
+ const receivedMessages: TestMessage[] = [];
127
127
 
128
- await subscriber.subscribe(
129
- ['user.created', 'user.updated'],
130
- async (message) => {
131
- receivedMessages.push(message);
132
- },
133
- );
128
+ await subscriber.subscribe(
129
+ ['user.created', 'user.updated'],
130
+ async (message) => {
131
+ receivedMessages.push(message);
132
+ },
133
+ );
134
134
 
135
- await new Promise((resolve) => setTimeout(resolve, 100));
135
+ await new Promise((resolve) => setTimeout(resolve, 100));
136
136
 
137
- await publisher.publish([
138
- { type: 'user.created', payload: { userId: '1' } },
139
- { type: 'user.updated', payload: { userId: '2' } },
140
- { type: 'user.created', payload: { userId: '3' } },
141
- ]);
137
+ await publisher.publish([
138
+ { type: 'user.created', payload: { userId: '1' } },
139
+ { type: 'user.updated', payload: { userId: '2' } },
140
+ { type: 'user.created', payload: { userId: '3' } },
141
+ ]);
142
142
 
143
- await new Promise((resolve) => setTimeout(resolve, 300));
143
+ await new Promise((resolve) => setTimeout(resolve, 300));
144
144
 
145
- expect(receivedMessages).toHaveLength(3);
145
+ expect(receivedMessages).toHaveLength(3);
146
146
 
147
- await connection.close();
148
- });
147
+ await connection.close();
148
+ });
149
149
 
150
- it('should handle message processing errors with nack', async () => {
151
- const testExchange = uniqueExchange();
152
- const connection = new RabbitMQConnection({
153
- url: RABBITMQ_URL,
154
- exchange: testExchange,
155
- });
156
- await connection.connect();
150
+ it('should handle message processing errors with nack', async () => {
151
+ const testExchange = uniqueExchange();
152
+ const connection = new RabbitMQConnection({
153
+ url: RABBITMQ_URL,
154
+ exchange: testExchange,
155
+ });
156
+ await connection.connect();
157
157
 
158
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
159
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
158
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
159
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection);
160
160
 
161
- let processCount = 0;
161
+ let processCount = 0;
162
162
 
163
- await subscriber.subscribe(['user.created'], async (message) => {
164
- processCount++;
165
- if (processCount === 1) {
166
- // Fail first time
167
- throw new Error('Processing error');
168
- }
169
- // Success on retry
170
- });
163
+ await subscriber.subscribe(['user.created'], async (_message) => {
164
+ processCount++;
165
+ if (processCount === 1) {
166
+ // Fail first time
167
+ throw new Error('Processing error');
168
+ }
169
+ // Success on retry
170
+ });
171
171
 
172
- await new Promise((resolve) => setTimeout(resolve, 100));
172
+ await new Promise((resolve) => setTimeout(resolve, 100));
173
173
 
174
- await publisher.publish([
175
- { type: 'user.created', payload: { userId: '123' } },
176
- ]);
174
+ await publisher.publish([
175
+ { type: 'user.created', payload: { userId: '123' } },
176
+ ]);
177
177
 
178
- // Wait for initial processing and retry
179
- await new Promise((resolve) => setTimeout(resolve, 500));
178
+ // Wait for initial processing and retry
179
+ await new Promise((resolve) => setTimeout(resolve, 500));
180
180
 
181
- // Should have been processed twice (initial + retry after nack)
182
- expect(processCount).toBeGreaterThanOrEqual(2);
181
+ // Should have been processed twice (initial + retry after nack)
182
+ expect(processCount).toBeGreaterThanOrEqual(2);
183
183
 
184
- await connection.close();
185
- });
184
+ await connection.close();
185
+ });
186
186
 
187
- it('should work with custom queue name', async () => {
188
- const testExchange = uniqueExchange();
189
- const queueName = `test-queue-${Date.now()}`;
187
+ it('should work with custom queue name', async () => {
188
+ const testExchange = uniqueExchange();
189
+ const queueName = `test-queue-${Date.now()}`;
190
190
 
191
- const connection = new RabbitMQConnection({
192
- url: RABBITMQ_URL,
193
- exchange: testExchange,
194
- });
195
- await connection.connect();
191
+ const connection = new RabbitMQConnection({
192
+ url: RABBITMQ_URL,
193
+ exchange: testExchange,
194
+ });
195
+ await connection.connect();
196
196
 
197
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
198
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection, {
199
- queueName,
200
- });
197
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
198
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection, {
199
+ queueName,
200
+ });
201
201
 
202
- const receivedMessages: TestMessage[] = [];
202
+ const receivedMessages: TestMessage[] = [];
203
203
 
204
- await subscriber.subscribe(['user.created'], async (message) => {
205
- receivedMessages.push(message);
206
- });
204
+ await subscriber.subscribe(['user.created'], async (message) => {
205
+ receivedMessages.push(message);
206
+ });
207
207
 
208
- await new Promise((resolve) => setTimeout(resolve, 100));
208
+ await new Promise((resolve) => setTimeout(resolve, 100));
209
209
 
210
- await publisher.publish([
211
- { type: 'user.created', payload: { userId: '123' } },
212
- ]);
210
+ await publisher.publish([
211
+ { type: 'user.created', payload: { userId: '123' } },
212
+ ]);
213
213
 
214
- await new Promise((resolve) => setTimeout(resolve, 200));
214
+ await new Promise((resolve) => setTimeout(resolve, 200));
215
215
 
216
- expect(receivedMessages).toHaveLength(1);
216
+ expect(receivedMessages).toHaveLength(1);
217
217
 
218
- await connection.close();
219
- });
218
+ await connection.close();
219
+ });
220
220
 
221
- it('should work with prefetch limit', async () => {
222
- const testExchange = uniqueExchange();
223
- const connection = new RabbitMQConnection({
224
- url: RABBITMQ_URL,
225
- exchange: testExchange,
226
- });
227
- await connection.connect();
221
+ it('should work with prefetch limit', async () => {
222
+ const testExchange = uniqueExchange();
223
+ const connection = new RabbitMQConnection({
224
+ url: RABBITMQ_URL,
225
+ exchange: testExchange,
226
+ });
227
+ await connection.connect();
228
228
 
229
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
230
- const subscriber = new RabbitMQSubscriber<TestMessage>(connection, {
231
- prefetch: 1,
232
- });
229
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
230
+ const subscriber = new RabbitMQSubscriber<TestMessage>(connection, {
231
+ prefetch: 1,
232
+ });
233
233
 
234
- const receivedMessages: TestMessage[] = [];
234
+ const receivedMessages: TestMessage[] = [];
235
235
 
236
- await subscriber.subscribe(['user.created'], async (message) => {
237
- receivedMessages.push(message);
238
- // Slow processing
239
- await new Promise((resolve) => setTimeout(resolve, 100));
240
- });
236
+ await subscriber.subscribe(['user.created'], async (message) => {
237
+ receivedMessages.push(message);
238
+ // Slow processing
239
+ await new Promise((resolve) => setTimeout(resolve, 100));
240
+ });
241
241
 
242
- await new Promise((resolve) => setTimeout(resolve, 100));
242
+ await new Promise((resolve) => setTimeout(resolve, 100));
243
243
 
244
- // Publish multiple messages
245
- await publisher.publish([
246
- { type: 'user.created', payload: { userId: '1' } },
247
- { type: 'user.created', payload: { userId: '2' } },
248
- { type: 'user.created', payload: { userId: '3' } },
249
- ]);
244
+ // Publish multiple messages
245
+ await publisher.publish([
246
+ { type: 'user.created', payload: { userId: '1' } },
247
+ { type: 'user.created', payload: { userId: '2' } },
248
+ { type: 'user.created', payload: { userId: '3' } },
249
+ ]);
250
250
 
251
- // Wait for all to be processed
252
- await new Promise((resolve) => setTimeout(resolve, 500));
251
+ // Wait for all to be processed
252
+ await new Promise((resolve) => setTimeout(resolve, 500));
253
253
 
254
- expect(receivedMessages).toHaveLength(3);
254
+ expect(receivedMessages).toHaveLength(3);
255
255
 
256
- await connection.close();
257
- });
256
+ await connection.close();
257
+ });
258
258
 
259
- it('should work with fromConnectionString', async () => {
260
- const testExchange = uniqueExchange();
261
- const subscriber =
262
- await RabbitMQSubscriber.fromConnectionString<TestMessage>(
263
- `rabbitmq://geekmidas:geekmidas@localhost:5672?exchange=${testExchange}`,
264
- );
259
+ it('should work with fromConnectionString', async () => {
260
+ const testExchange = uniqueExchange();
261
+ const subscriber =
262
+ await RabbitMQSubscriber.fromConnectionString<TestMessage>(
263
+ `rabbitmq://geekmidas:geekmidas@localhost:5672?exchange=${testExchange}`,
264
+ );
265
265
 
266
- const connection = new RabbitMQConnection({
267
- url: RABBITMQ_URL,
268
- exchange: testExchange,
269
- });
270
- await connection.connect();
266
+ const connection = new RabbitMQConnection({
267
+ url: RABBITMQ_URL,
268
+ exchange: testExchange,
269
+ });
270
+ await connection.connect();
271
271
 
272
- const publisher = new RabbitMQPublisher<TestMessage>(connection);
272
+ const publisher = new RabbitMQPublisher<TestMessage>(connection);
273
273
 
274
- const receivedMessages: TestMessage[] = [];
274
+ const receivedMessages: TestMessage[] = [];
275
275
 
276
- await subscriber.subscribe(['user.created'], async (message) => {
277
- receivedMessages.push(message);
278
- });
276
+ await subscriber.subscribe(['user.created'], async (message) => {
277
+ receivedMessages.push(message);
278
+ });
279
279
 
280
- await new Promise((resolve) => setTimeout(resolve, 100));
280
+ await new Promise((resolve) => setTimeout(resolve, 100));
281
281
 
282
- await publisher.publish([
283
- { type: 'user.created', payload: { userId: '123' } },
284
- ]);
282
+ await publisher.publish([
283
+ { type: 'user.created', payload: { userId: '123' } },
284
+ ]);
285
285
 
286
- await new Promise((resolve) => setTimeout(resolve, 200));
286
+ await new Promise((resolve) => setTimeout(resolve, 200));
287
287
 
288
- expect(receivedMessages).toHaveLength(1);
288
+ expect(receivedMessages).toHaveLength(1);
289
289
 
290
- await connection.close();
291
- });
290
+ await connection.close();
291
+ });
292
292
  });
@@ -1,6 +1,6 @@
1
- export { RabbitMQConnection } from './RabbitMQConnection';
2
1
  export type { RabbitMQConnectionConfig } from './RabbitMQConnection';
3
- export { RabbitMQPublisher } from './RabbitMQPublisher';
2
+ export { RabbitMQConnection } from './RabbitMQConnection';
4
3
  export type { RabbitMQPublisherOptions } from './RabbitMQPublisher';
5
- export { RabbitMQSubscriber } from './RabbitMQSubscriber';
4
+ export { RabbitMQPublisher } from './RabbitMQPublisher';
6
5
  export type { RabbitMQSubscriberOptions } from './RabbitMQSubscriber';
6
+ export { RabbitMQSubscriber } from './RabbitMQSubscriber';