@daiso-tech/core 0.16.0 → 0.19.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 (354) hide show
  1. package/dist/cjs/async/_module.js +1 -1
  2. package/dist/cjs/async/_module.js.map +1 -1
  3. package/dist/cjs/async/backof-policies/_module.js +1 -0
  4. package/dist/cjs/async/backof-policies/_module.js.map +1 -1
  5. package/dist/cjs/async/utilities/_module.js +3 -0
  6. package/dist/cjs/async/utilities/_module.js.map +1 -1
  7. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
  8. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  9. package/dist/cjs/cache/contracts/cache.errors.js +19 -0
  10. package/dist/cjs/cache/contracts/cache.errors.js.map +1 -1
  11. package/dist/cjs/cache/contracts/cache.events.js +156 -0
  12. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  13. package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
  14. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
  15. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  16. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  18. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  20. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
  22. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  23. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
  24. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  25. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  26. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
  28. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  29. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  30. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  31. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  32. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  33. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
  34. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  35. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  36. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  37. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  38. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  39. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
  40. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  41. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
  42. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  43. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  44. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  45. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
  46. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  49. package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
  50. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  51. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +83 -0
  52. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  53. package/dist/cjs/cache/implementations/derivables/cache-factory.js +52 -18
  54. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  55. package/dist/cjs/cache/implementations/derivables/cache-settings.js +74 -0
  56. package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
  57. package/dist/cjs/cache/implementations/derivables/cache.js +167 -93
  58. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  59. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  60. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  61. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  62. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  63. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  64. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  65. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  66. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  67. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  68. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  69. package/dist/cjs/event-bus/contracts/_module.js +2 -2
  70. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  71. package/dist/cjs/event-bus/contracts/_shared.js +7 -0
  72. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  73. package/dist/cjs/event-bus/contracts/event-bus.errors.js +19 -0
  74. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -1
  75. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
  76. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  77. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
  78. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  79. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  80. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  81. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
  82. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  83. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  84. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  85. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  86. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  87. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  88. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  89. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
  90. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  91. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
  92. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  93. package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
  94. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
  95. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +71 -0
  96. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  97. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +47 -18
  98. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  99. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +68 -0
  100. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  101. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +102 -62
  102. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  103. package/dist/cjs/serde/contracts/_module.js +4 -0
  104. package/dist/cjs/serde/contracts/_module.js.map +1 -1
  105. package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
  106. package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
  107. package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
  108. package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
  109. package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
  110. package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
  111. package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
  112. package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
  113. package/dist/cjs/serde/implementations/_module.js +1 -0
  114. package/dist/cjs/serde/implementations/_module.js.map +1 -1
  115. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
  116. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  117. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +69 -0
  118. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  119. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  120. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  121. package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
  122. package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
  123. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +19 -0
  124. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  125. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +57 -111
  126. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  127. package/dist/cjs/utilities/contracts/_module.js +2 -0
  128. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  129. package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
  130. package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
  131. package/dist/cjs/utilities/contracts/serialized-error.contract.js +3 -0
  132. package/dist/cjs/utilities/contracts/serialized-error.contract.js.map +1 -0
  133. package/dist/cjs/utilities/errors.js +10 -10
  134. package/dist/cjs/utilities/errors.js.map +1 -1
  135. package/dist/cjs/utilities/functions.js +4 -0
  136. package/dist/cjs/utilities/functions.js.map +1 -1
  137. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  138. package/dist/esm/async/_module.js +1 -1
  139. package/dist/esm/async/_module.js.map +1 -1
  140. package/dist/esm/async/backof-policies/_module.js +1 -0
  141. package/dist/esm/async/backof-policies/_module.js.map +1 -1
  142. package/dist/esm/async/utilities/_module.js +3 -0
  143. package/dist/esm/async/utilities/_module.js.map +1 -1
  144. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
  145. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  146. package/dist/esm/cache/contracts/cache.errors.js +19 -0
  147. package/dist/esm/cache/contracts/cache.errors.js.map +1 -1
  148. package/dist/esm/cache/contracts/cache.events.js +147 -0
  149. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  150. package/dist/esm/cache/implementations/_shared/_module.js +1 -0
  151. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
  152. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  153. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  154. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  155. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  156. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  157. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  158. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
  159. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  160. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
  161. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  162. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  163. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  164. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
  165. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  166. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  167. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  168. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  169. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  170. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
  171. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  172. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  173. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  174. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  175. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  176. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
  177. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  178. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
  179. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  180. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  181. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  182. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
  183. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  184. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
  185. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  186. package/dist/esm/cache/implementations/derivables/_module.js +3 -1
  187. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  188. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +79 -0
  189. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  190. package/dist/esm/cache/implementations/derivables/cache-factory.js +53 -19
  191. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  192. package/dist/esm/cache/implementations/derivables/cache-settings.js +70 -0
  193. package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
  194. package/dist/esm/cache/implementations/derivables/cache.js +146 -72
  195. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  196. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  197. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  198. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  199. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  200. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  201. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  202. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  203. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  204. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  205. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  206. package/dist/esm/event-bus/contracts/_module.js +2 -2
  207. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  208. package/dist/esm/event-bus/contracts/_shared.js +5 -0
  209. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  210. package/dist/esm/event-bus/contracts/event-bus.errors.js +19 -0
  211. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -1
  212. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
  213. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  214. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
  215. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  216. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  217. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  218. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
  219. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  220. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  221. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  222. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  223. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  224. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  225. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  226. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
  227. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  228. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
  229. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  230. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
  231. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
  232. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +67 -0
  233. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  234. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +48 -19
  235. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  236. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +64 -0
  237. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  238. package/dist/esm/event-bus/implementations/derivables/event-bus.js +104 -64
  239. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  240. package/dist/esm/serde/contracts/_module.js +4 -0
  241. package/dist/esm/serde/contracts/_module.js.map +1 -1
  242. package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
  243. package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
  244. package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
  245. package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
  246. package/dist/esm/serde/contracts/serializable.contract.js +1 -0
  247. package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
  248. package/dist/esm/serde/contracts/serializer.contract.js +1 -0
  249. package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
  250. package/dist/esm/serde/implementations/_module.js +1 -0
  251. package/dist/esm/serde/implementations/_module.js.map +1 -1
  252. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
  253. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  254. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +66 -0
  255. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  256. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  257. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  258. package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
  259. package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
  260. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +15 -0
  261. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  262. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +57 -111
  263. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  264. package/dist/esm/utilities/contracts/_module.js +2 -0
  265. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  266. package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
  267. package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
  268. package/dist/esm/utilities/contracts/serialized-error.contract.js +1 -0
  269. package/dist/esm/utilities/contracts/serialized-error.contract.js.map +1 -0
  270. package/dist/esm/utilities/errors.js +7 -7
  271. package/dist/esm/utilities/errors.js.map +1 -1
  272. package/dist/esm/utilities/functions.js +3 -0
  273. package/dist/esm/utilities/functions.js.map +1 -1
  274. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  275. package/dist/types/async/_module.d.ts +1 -1
  276. package/dist/types/async/backof-policies/_module.d.ts +1 -1
  277. package/dist/types/async/utilities/_module.d.ts +3 -0
  278. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
  279. package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
  280. package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
  281. package/dist/types/cache/contracts/cache.errors.d.ts +11 -4
  282. package/dist/types/cache/contracts/cache.events.d.ts +150 -38
  283. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  284. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
  285. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
  286. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
  287. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
  288. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
  289. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
  290. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  291. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
  292. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
  293. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
  294. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
  295. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
  296. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  297. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  298. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
  299. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
  300. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  301. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
  302. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
  303. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
  304. package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +108 -0
  305. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +67 -39
  306. package/dist/types/cache/implementations/derivables/cache-settings.d.ts +100 -0
  307. package/dist/types/cache/implementations/derivables/cache.d.ts +95 -36
  308. package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
  309. package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
  310. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
  311. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
  312. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
  313. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
  314. package/dist/types/event-bus/contracts/_module.d.ts +2 -2
  315. package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
  316. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
  317. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
  318. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
  319. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +8 -1
  320. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
  321. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
  322. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
  323. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
  324. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
  325. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
  326. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
  327. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
  328. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
  329. package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
  330. package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +92 -0
  331. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +43 -22
  332. package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +80 -0
  333. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +46 -22
  334. package/dist/types/serde/contracts/_module.d.ts +4 -0
  335. package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
  336. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +120 -0
  337. package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
  338. package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
  339. package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
  340. package/dist/types/serde/implementations/_module.d.ts +1 -0
  341. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
  342. package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
  343. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
  344. package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
  345. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +14 -0
  346. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +23 -2
  347. package/dist/types/utilities/contracts/_module.d.ts +2 -0
  348. package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
  349. package/dist/types/utilities/contracts/serialized-error.contract.d.ts +11 -0
  350. package/dist/types/utilities/errors.d.ts +3 -3
  351. package/dist/types/utilities/functions.d.ts +4 -0
  352. package/dist/types/utilities/time-span/time-span.d.ts +2 -2
  353. package/dist/types/utilities/types.d.ts +1 -2
  354. package/package.json +1 -1
@@ -1,8 +1,10 @@
1
1
  import { describe, } from "vitest";
2
+ import { BaseEvent } from "../../../event-bus/contracts/_module";
2
3
  import { TimeSpan } from "../../../utilities/_module";
3
4
  import { delay } from "../../../async/_module";
5
+ import { NoOpSerde } from "../../../serde/implementations/_module";
4
6
  export function eventBusAdapterTestSuite(settings) {
5
- const { expect, test, createAdapterA, createAdapterB, beforeEach } = settings;
7
+ const { expect, test, createAdapterA, createAdapterB, beforeEach, serde = new NoOpSerde(), } = settings;
6
8
  let eventBusAdapterA;
7
9
  let eventBusAdapterB;
8
10
  beforeEach(async () => {
@@ -10,41 +12,53 @@ export function eventBusAdapterTestSuite(settings) {
10
12
  eventBusAdapterB = await createAdapterB();
11
13
  });
12
14
  const TTL = TimeSpan.fromMilliseconds(50);
15
+ class TestEvent extends BaseEvent {
16
+ data;
17
+ static deserialize(serializedEvent) {
18
+ return new TestEvent(serializedEvent);
19
+ }
20
+ constructor(data) {
21
+ super();
22
+ this.data = data;
23
+ }
24
+ serialize() {
25
+ return this.data;
26
+ }
27
+ }
28
+ serde.registerClass(TestEvent);
13
29
  describe("Api tests:", () => {
14
30
  describe("method: addListener, removeListener, dispatch", () => {
15
31
  test("Should be null when listener added and event is not triggered", async () => {
16
- const TYPE = "type";
17
32
  let result = null;
18
- await eventBusAdapterA.addListener(TYPE, (event) => {
33
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
19
34
  result = event;
20
35
  });
21
36
  expect(result).toBeNull();
22
37
  });
23
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
24
- const TYPE = "type";
38
+ test("Should be TestEvent when listener added and event is triggered", async () => {
25
39
  let result = null;
26
- await eventBusAdapterA.addListener(TYPE, (event) => {
40
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
27
41
  result = event;
28
42
  });
29
- const event = {
30
- type: TYPE,
31
- };
32
- await eventBusAdapterA.dispatch(event);
43
+ const event = new TestEvent({
44
+ type: BaseEvent.name,
45
+ });
46
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
33
47
  await delay(TTL);
34
48
  expect(result).toEqual(event);
49
+ expect(result).toBeInstanceOf(TestEvent);
35
50
  });
36
51
  test("Should be null when listener removed and event is triggered", async () => {
37
- const TYPE = "type";
38
52
  let result = null;
39
53
  const listener = (event) => {
40
54
  result = event;
41
55
  };
42
- await eventBusAdapterA.addListener(TYPE, listener);
43
- await eventBusAdapterA.removeListener(TYPE, listener);
44
- const event = {
45
- type: TYPE,
46
- };
47
- await eventBusAdapterA.dispatch(event);
56
+ await eventBusAdapterA.addListener(TestEvent.name, listener);
57
+ await eventBusAdapterA.removeListener(TestEvent.name, listener);
58
+ const event = new TestEvent({
59
+ type: BaseEvent.name,
60
+ });
61
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
48
62
  await delay(TTL);
49
63
  expect(result).toBeNull();
50
64
  });
@@ -52,40 +66,42 @@ export function eventBusAdapterTestSuite(settings) {
52
66
  });
53
67
  describe("Group tests:", () => {
54
68
  test("method: addListener / dispatch", async () => {
55
- const event = {
69
+ const event = new TestEvent({
56
70
  type: "type",
57
- };
71
+ });
58
72
  let result_a = null;
59
- await eventBusAdapterA.addListener(event.type, (event) => {
73
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
60
74
  result_a = event;
61
75
  });
62
76
  let result_b = null;
63
- await eventBusAdapterB.addListener(event.type, (event) => {
77
+ await eventBusAdapterB.addListener(TestEvent.name, (event) => {
64
78
  result_b = event;
65
79
  });
66
- await eventBusAdapterA.dispatch(event);
80
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
67
81
  await delay(TTL);
68
82
  expect(result_a).toEqual(event);
83
+ expect(result_a).toBeInstanceOf(TestEvent);
69
84
  expect(result_b).toBeNull();
70
85
  });
71
86
  test("method: removeListener / addListener / dispatch", async () => {
72
- const event = {
87
+ const event = new TestEvent({
73
88
  type: "type",
74
- };
89
+ });
75
90
  let result_a = null;
76
- await eventBusAdapterA.addListener(event.type, (event) => {
91
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
77
92
  result_a = event;
78
93
  });
79
94
  let result_b = null;
80
95
  const listenerB = (event) => {
81
96
  result_b = event;
82
97
  };
83
- await eventBusAdapterB.addListener(event.type, listenerB);
84
- await eventBusAdapterB.removeListener(event.type, listenerB);
85
- await eventBusAdapterA.dispatch(event);
86
- await eventBusAdapterB.dispatch(event);
98
+ await eventBusAdapterB.addListener(TestEvent.name, listenerB);
99
+ await eventBusAdapterB.removeListener(TestEvent.name, listenerB);
100
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
101
+ await eventBusAdapterB.dispatch(TestEvent.name, event);
87
102
  await delay(TTL);
88
103
  expect(result_a).toEqual(event);
104
+ expect(result_a).toBeInstanceOf(TestEvent);
89
105
  expect(result_b).toBeNull();
90
106
  });
91
107
  });
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { BaseEvent } from "../../../event-bus/contracts/_module";
1
2
  import { TimeSpan } from "../../../utilities/_module";
2
3
  import { delay } from "../../../async/_module";
4
+ import { NoOpSerde } from "../../../serde/implementations/_module";
3
5
  export function eventBusTestSuite(settings) {
4
- const { expect, test, describe, createEventBusA, createEventBusB, beforeEach, } = settings;
6
+ const { expect, serde = new NoOpSerde(), test, describe, createEventBusA, createEventBusB, beforeEach, } = settings;
5
7
  let eventBusA;
6
8
  let eventBusB;
7
9
  beforeEach(async () => {
@@ -9,38 +11,66 @@ export function eventBusTestSuite(settings) {
9
11
  eventBusB = await createEventBusB();
10
12
  });
11
13
  const TTL = TimeSpan.fromMilliseconds(50);
14
+ class TestEventA extends BaseEvent {
15
+ data;
16
+ static deserialize(serializedEvent) {
17
+ return new TestEventA(serializedEvent);
18
+ }
19
+ constructor(data) {
20
+ super();
21
+ this.data = data;
22
+ }
23
+ serialize() {
24
+ return this.data;
25
+ }
26
+ }
27
+ class TestEventB extends BaseEvent {
28
+ data;
29
+ static deserialize(serializedEvent) {
30
+ return new TestEventB(serializedEvent);
31
+ }
32
+ constructor(data) {
33
+ super();
34
+ this.data = data;
35
+ }
36
+ serialize() {
37
+ return this.data;
38
+ }
39
+ }
40
+ serde.registerClass(TestEventA);
41
+ serde.registerClass(TestEventB);
12
42
  describe("Api tests:", () => {
13
43
  describe("method: addListener, removeListener, dispatch", () => {
14
44
  test("Should be null when listener added and event is not triggered", async () => {
15
- const TYPE = "type";
16
45
  let result = null;
17
- await eventBusA.addListener(TYPE, (event) => {
46
+ await eventBusA.addListener(TestEventA, (event) => {
18
47
  result = event;
19
48
  });
20
49
  expect(result).toBeNull();
21
50
  });
22
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
23
- const event = {
24
- type: "type",
25
- };
51
+ test("Should be TestEventA when listener added and event is triggered", async () => {
26
52
  let result = null;
27
- await eventBusA.addListener(event.type, (event) => {
53
+ await eventBusA.addListener(TestEventA, (event) => {
28
54
  result = event;
29
55
  });
56
+ const event = new TestEventA({
57
+ type: TestEventA.name,
58
+ });
30
59
  await eventBusA.dispatch(event);
31
60
  await delay(TTL);
32
61
  expect(result).toEqual(event);
62
+ expect(result).toBeInstanceOf(TestEventA);
33
63
  });
34
64
  test("Should be null when listener removed and event is triggered", async () => {
35
- const event = {
36
- type: "type",
37
- };
65
+ const event = new TestEventA({
66
+ type: TestEventA.name,
67
+ });
38
68
  let result = null;
39
69
  const listener = (event) => {
40
70
  result = event;
41
71
  };
42
- await eventBusA.addListener(event.type, listener);
43
- await eventBusA.removeListener(event.type, listener);
72
+ await eventBusA.addListener(TestEventA, listener);
73
+ await eventBusA.removeListener(TestEventA, listener);
44
74
  await eventBusA.dispatch(event);
45
75
  await delay(TTL);
46
76
  expect(result).toBeNull();
@@ -48,49 +78,49 @@ export function eventBusTestSuite(settings) {
48
78
  });
49
79
  describe("method: addListenerMany, removeListenerMany, dispatch", () => {
50
80
  test("Should be null when listener added and event is not triggered", async () => {
51
- const TYPE_1 = "type_1";
52
- const TYPE_2 = "type_2";
53
81
  let result = null;
54
- await eventBusA.addListenerMany([TYPE_1, TYPE_2], (event) => {
82
+ await eventBusA.addListenerMany([TestEventA, TestEventB], (event) => {
55
83
  result = event;
56
84
  });
57
85
  expect(result).toBeNull();
58
86
  });
59
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
60
- const event_1 = {
61
- type: "type_1",
62
- };
63
- const event_2 = {
64
- type: "type_2",
65
- };
87
+ test("Should be BaseEvent when listener added and event is triggered", async () => {
88
+ const event_1 = new TestEventA({
89
+ type: TestEventA.name,
90
+ });
91
+ const event_2 = new TestEventB({
92
+ type: TestEventB.name,
93
+ });
66
94
  let result_1 = null;
67
95
  let result_2 = null;
68
- await eventBusA.addListenerMany([event_1.type, event_2.type], (eventObj) => {
69
- if (eventObj.type === event_1.type) {
96
+ await eventBusA.addListenerMany([TestEventA, TestEventB], (eventObj) => {
97
+ if (eventObj instanceof TestEventA) {
70
98
  result_1 = eventObj;
71
99
  }
72
- if (eventObj.type === event_2.type) {
100
+ if (eventObj instanceof TestEventB) {
73
101
  result_2 = eventObj;
74
102
  }
75
103
  });
76
104
  await eventBusA.dispatchMany([event_1, event_2]);
77
105
  await delay(TTL);
78
106
  expect(result_1).toEqual(event_1);
107
+ expect(result_1).toBeInstanceOf(TestEventA);
79
108
  expect(result_2).toEqual(event_2);
109
+ expect(result_2).toBeInstanceOf(TestEventB);
80
110
  });
81
111
  test("Should be null when listener removed and event is triggered", async () => {
82
- const event_A = {
83
- type: "type_a",
84
- };
85
- const event_B = {
86
- type: "type_b",
87
- };
112
+ const event_A = new TestEventA({
113
+ type: TestEventA.name,
114
+ });
115
+ const event_B = new TestEventB({
116
+ type: TestEventB.name,
117
+ });
88
118
  let result = null;
89
119
  const listener = (event) => {
90
120
  result = event;
91
121
  };
92
- await eventBusA.addListenerMany([event_A.type, event_B.type], listener);
93
- await eventBusA.removeListenerMany([event_A.type, event_B.type], listener);
122
+ await eventBusA.addListenerMany([TestEventA, TestEventB], listener);
123
+ await eventBusA.removeListenerMany([TestEventA, TestEventB], listener);
94
124
  await eventBusA.dispatchMany([event_A, event_B]);
95
125
  await delay(TTL);
96
126
  expect(result).toBeNull();
@@ -98,34 +128,34 @@ export function eventBusTestSuite(settings) {
98
128
  });
99
129
  describe("method: subscribe", () => {
100
130
  test("Should be null when listener added and event is not triggered", async () => {
101
- const TYPE = "type";
102
131
  let result = null;
103
- await eventBusA.subscribe(TYPE, (event) => {
132
+ await eventBusA.subscribe(TestEventA, (event) => {
104
133
  result = event;
105
134
  });
106
135
  expect(result).toBeNull();
107
136
  });
108
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
109
- const event = {
110
- type: "type",
111
- };
137
+ test("Should be TestEventA when listener added and event is triggered", async () => {
138
+ const event = new TestEventA({
139
+ type: TestEventA.name,
140
+ });
112
141
  let result = null;
113
- await eventBusA.subscribe(event.type, (event) => {
142
+ await eventBusA.subscribe(TestEventA, (event) => {
114
143
  result = event;
115
144
  });
116
145
  await delay(TTL);
117
146
  await eventBusA.dispatch(event);
118
147
  expect(result).toEqual(event);
148
+ expect(result).toBeInstanceOf(TestEventA);
119
149
  });
120
150
  test("Should be null when listener removed and event is triggered", async () => {
121
- const event = {
122
- type: "type",
123
- };
151
+ const event = new TestEventA({
152
+ type: TestEventA.name,
153
+ });
124
154
  let result = null;
125
155
  const listener = (event) => {
126
156
  result = event;
127
157
  };
128
- const unsubscribe = await eventBusA.subscribe(event.type, listener);
158
+ const unsubscribe = await eventBusA.subscribe(TestEventA, listener);
129
159
  await unsubscribe();
130
160
  await eventBusA.dispatch(event);
131
161
  await delay(TTL);
@@ -134,48 +164,48 @@ export function eventBusTestSuite(settings) {
134
164
  });
135
165
  describe("method: subscribeMany", () => {
136
166
  test("Should be null when listener added and event is not triggered", async () => {
137
- const TYPE_1 = "type_1";
138
- const TYPE_2 = "type_2";
139
167
  let result = null;
140
- await eventBusA.subscribeMany([TYPE_1, TYPE_2], (event) => {
168
+ await eventBusA.subscribeMany([TestEventA, TestEventB], (event) => {
141
169
  result = event;
142
170
  });
143
171
  expect(result).toBeNull();
144
172
  });
145
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
146
- const event_1 = {
147
- type: "type_1",
148
- };
149
- const event_2 = {
150
- type: "type_2",
151
- };
173
+ test("Should be BaseEvent when listener added and event is triggered", async () => {
174
+ const event_1 = new TestEventA({
175
+ type: TestEventA.name,
176
+ });
177
+ const event_2 = new TestEventB({
178
+ type: TestEventB.name,
179
+ });
152
180
  let result_1 = null;
153
181
  let result_2 = null;
154
- await eventBusA.subscribeMany([event_1.type, event_2.type], (eventObj) => {
155
- if (eventObj.type === event_1.type) {
182
+ await eventBusA.subscribeMany([TestEventA, TestEventB], (eventObj) => {
183
+ if (eventObj instanceof TestEventA) {
156
184
  result_1 = eventObj;
157
185
  }
158
- if (eventObj.type === event_2.type) {
186
+ if (eventObj instanceof TestEventB) {
159
187
  result_2 = eventObj;
160
188
  }
161
189
  });
162
190
  await delay(TTL);
163
191
  await eventBusA.dispatchMany([event_1, event_2]);
164
192
  expect(result_1).toEqual(event_1);
193
+ expect(result_1).toBeInstanceOf(TestEventA);
165
194
  expect(result_2).toEqual(event_2);
195
+ expect(result_2).toBeInstanceOf(TestEventB);
166
196
  });
167
197
  test("Should be null when listener removed and event is triggered", async () => {
168
- const event_A = {
169
- type: "type_a",
170
- };
171
- const event_B = {
172
- type: "type_b",
173
- };
198
+ const event_A = new TestEventA({
199
+ type: TestEventA.name,
200
+ });
201
+ const event_B = new TestEventB({
202
+ type: TestEventB.name,
203
+ });
174
204
  let result = null;
175
205
  const listener = (event) => {
176
206
  result = event;
177
207
  };
178
- const unsubscribe = await eventBusA.subscribeMany([event_A.type, event_B.type], listener);
208
+ const unsubscribe = await eventBusA.subscribeMany([TestEventA, TestEventB], listener);
179
209
  await unsubscribe();
180
210
  await eventBusA.dispatchMany([event_A, event_B]);
181
211
  await delay(TTL);
@@ -184,31 +214,31 @@ export function eventBusTestSuite(settings) {
184
214
  });
185
215
  describe("method: listenOnce", () => {
186
216
  test("Should be null when listener added and event is not triggered", async () => {
187
- const TYPE = "type";
188
217
  let result = null;
189
- await eventBusA.listenOnce(TYPE, (event) => {
218
+ await eventBusA.listenOnce(TestEventA, (event) => {
190
219
  result = event;
191
220
  });
192
221
  expect(result).toBeNull();
193
222
  });
194
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
195
- const event = {
196
- type: "type",
197
- };
223
+ test("Should be TestEventA when listener added and event is triggered", async () => {
224
+ const event = new TestEventA({
225
+ type: TestEventA.name,
226
+ });
198
227
  let result = null;
199
- await eventBusA.listenOnce(event.type, (event) => {
228
+ await eventBusA.listenOnce(TestEventA, (event) => {
200
229
  result = event;
201
230
  });
202
231
  await eventBusA.dispatch(event);
203
232
  await delay(TTL);
204
233
  expect(result).toEqual(event);
234
+ expect(result).toBeInstanceOf(TestEventA);
205
235
  });
206
236
  test("Should only listen for event once", async () => {
207
- const event = {
208
- type: "type",
209
- };
237
+ const event = new TestEventA({
238
+ type: TestEventA.name,
239
+ });
210
240
  let i = 0;
211
- await eventBusA.listenOnce(event.type, () => {
241
+ await eventBusA.listenOnce(TestEventA, () => {
212
242
  i++;
213
243
  });
214
244
  await eventBusA.dispatch(event);
@@ -220,111 +250,117 @@ export function eventBusTestSuite(settings) {
220
250
  });
221
251
  describe("Group tests:", () => {
222
252
  test("method: addListener / dispatch", async () => {
223
- const event = {
224
- type: "type",
225
- };
253
+ const event = new TestEventA({
254
+ type: TestEventA.name,
255
+ });
226
256
  let result_a = null;
227
- await eventBusA.addListener(event.type, (event) => {
257
+ await eventBusA.addListener(TestEventA, (event) => {
228
258
  result_a = event;
229
259
  });
230
260
  let result_b = null;
231
- await eventBusB.addListener(event.type, (event) => {
261
+ await eventBusB.addListener(TestEventA, (event) => {
232
262
  result_b = event;
233
263
  });
234
264
  await eventBusA.dispatch(event);
235
265
  expect(result_a).toEqual(event);
266
+ expect(result_a).toBeInstanceOf(TestEventA);
236
267
  expect(result_b).toBeNull();
237
268
  });
238
269
  test("method: addListenerMany / dispatch", async () => {
239
- const event = {
270
+ const event = new TestEventA({
240
271
  type: "type",
241
- };
272
+ });
242
273
  let result_a = null;
243
- await eventBusA.addListenerMany([event.type], (event) => {
274
+ await eventBusA.addListenerMany([TestEventA], (event) => {
244
275
  result_a = event;
245
276
  });
246
277
  let result_b = null;
247
- await eventBusB.addListenerMany([event.type], (event) => {
278
+ await eventBusB.addListenerMany([TestEventA], (event) => {
248
279
  result_b = event;
249
280
  });
250
281
  await eventBusA.dispatch(event);
251
282
  expect(result_a).toEqual(event);
283
+ expect(result_a).toBeInstanceOf(TestEventA);
252
284
  expect(result_b).toBeNull();
253
285
  });
254
286
  test("method: removeListener / addListener / dispatch", async () => {
255
- const event = {
256
- type: "type",
257
- };
287
+ const event = new TestEventA({
288
+ type: TestEventA.name,
289
+ });
258
290
  let result_a = null;
259
- await eventBusA.addListener(event.type, (event) => {
291
+ await eventBusA.addListener(TestEventA, (event) => {
260
292
  result_a = event;
261
293
  });
262
294
  let result_b = null;
263
295
  const listenerB = (event) => {
264
296
  result_b = event;
265
297
  };
266
- await eventBusB.addListener(event.type, listenerB);
267
- await eventBusB.removeListener(event.type, listenerB);
298
+ await eventBusB.addListener(TestEventA, listenerB);
299
+ await eventBusB.removeListener(TestEventA, listenerB);
268
300
  await eventBusA.dispatch(event);
269
301
  await eventBusB.dispatch(event);
270
302
  expect(result_a).toEqual(event);
303
+ expect(result_a).toBeInstanceOf(TestEventA);
271
304
  expect(result_b).toBeNull();
272
305
  });
273
306
  test("method: removeListenerMany / addListener / dispatch", async () => {
274
- const event = {
275
- type: "type",
276
- };
307
+ const event = new TestEventA({
308
+ type: TestEventA.name,
309
+ });
277
310
  let result_a = null;
278
- await eventBusA.addListener(event.type, (event) => {
311
+ await eventBusA.addListener(TestEventA, (event) => {
279
312
  result_a = event;
280
313
  });
281
314
  let result_b = null;
282
315
  const listenerB = (event) => {
283
316
  result_b = event;
284
317
  };
285
- await eventBusB.addListener(event.type, listenerB);
286
- await eventBusB.removeListenerMany([event.type], listenerB);
318
+ await eventBusB.addListener(TestEventA, listenerB);
319
+ await eventBusB.removeListenerMany([TestEventA], listenerB);
287
320
  await eventBusA.dispatch(event);
288
321
  await eventBusB.dispatch(event);
289
322
  expect(result_a).toEqual(event);
323
+ expect(result_a).toBeInstanceOf(TestEventA);
290
324
  expect(result_b).toBeNull();
291
325
  });
292
326
  test("method: subscribe / dispatch", async () => {
293
- const event = {
294
- type: "type",
295
- };
327
+ const event = new TestEventA({
328
+ type: TestEventA.name,
329
+ });
296
330
  let result_a = null;
297
- await eventBusA.subscribe(event.type, (event) => {
331
+ await eventBusA.subscribe(TestEventA, (event) => {
298
332
  result_a = event;
299
333
  });
300
334
  let result_b = null;
301
335
  const listenerB = (event) => {
302
336
  result_b = event;
303
337
  };
304
- const unsubscribe = await eventBusB.subscribe(event.type, listenerB);
338
+ const unsubscribe = await eventBusB.subscribe(TestEventA, listenerB);
305
339
  await unsubscribe();
306
340
  await eventBusA.dispatch(event);
307
341
  await eventBusB.dispatch(event);
308
342
  expect(result_a).toEqual(event);
343
+ expect(result_a).toBeInstanceOf(TestEventA);
309
344
  expect(result_b).toBeNull();
310
345
  });
311
346
  test("method: subscribeMany / dispatch", async () => {
312
- const event = {
313
- type: "type",
314
- };
347
+ const event = new TestEventA({
348
+ type: TestEventA.name,
349
+ });
315
350
  let result_a = null;
316
- await eventBusA.subscribeMany([event.type], (event) => {
351
+ await eventBusA.subscribeMany([TestEventA], (event) => {
317
352
  result_a = event;
318
353
  });
319
354
  let result_b = null;
320
355
  const listenerB = (event) => {
321
356
  result_b = event;
322
357
  };
323
- const unsubscribe = await eventBusB.subscribeMany([event.type], listenerB);
358
+ const unsubscribe = await eventBusB.subscribeMany([TestEventA], listenerB);
324
359
  await unsubscribe();
325
360
  await eventBusA.dispatch(event);
326
361
  await eventBusB.dispatch(event);
327
362
  expect(result_a).toEqual(event);
363
+ expect(result_a).toBeInstanceOf(TestEventA);
328
364
  expect(result_b).toBeNull();
329
365
  });
330
366
  });