@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,22 +1,26 @@
1
- import { SqlSerde } from "../../../../serde/implementations/_module";
2
1
  import { KyselySqliteCacheAdapter } from "../../../../cache/implementations/adapters/kysely-sqlite-cache-adapter/_module";
3
2
  import { Kysely, SqliteDialect } from "kysely";
4
3
  import { KyselyTableNameTransformerPlugin } from "../../../../utilities/_module";
4
+ import { SqliteCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings";
5
5
  export class SqliteCacheAdapter {
6
+ static settings() {
7
+ return new SqliteCacheAdapterSettingsBuilder();
8
+ }
6
9
  cacheAdapter;
7
- constructor(database, settings) {
8
- const { tableName = "cache", serde, enableTransactions = false, expiredKeysRemovalInterval, shouldRemoveExpiredKeys, rootGroup, } = settings;
9
- this.cacheAdapter = new KyselySqliteCacheAdapter(new Kysely({
10
- dialect: new SqliteDialect({
11
- database,
12
- }),
13
- plugins: [
14
- new KyselyTableNameTransformerPlugin({
15
- cache: tableName,
10
+ constructor(settings) {
11
+ const { database, tableName = "cache", serde, enableTransactions = false, expiredKeysRemovalInterval, shouldRemoveExpiredKeys, rootGroup, } = settings;
12
+ this.cacheAdapter = new KyselySqliteCacheAdapter({
13
+ db: new Kysely({
14
+ dialect: new SqliteDialect({
15
+ database: database,
16
16
  }),
17
- ],
18
- }), {
19
- serde: new SqlSerde(serde),
17
+ plugins: [
18
+ new KyselyTableNameTransformerPlugin({
19
+ cache: tableName,
20
+ }),
21
+ ],
22
+ }),
23
+ serde,
20
24
  enableTransactions,
21
25
  expiredKeysRemovalInterval,
22
26
  shouldRemoveExpiredKeys,
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-cache-adapter.js","sourceRoot":"","sources":["../../../../../../src/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAQ3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sEAAsE,CAAC;AAChH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAuCvE,MAAM,OAAO,kBAAkB;IAGV,YAAY,CAAkC;IAE/D,YAAY,QAAkB,EAAE,QAAsC;QAClE,MAAM,EACF,SAAS,GAAG,OAAO,EACnB,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,SAAS,GACZ,GAAG,QAAQ,CAAC;QAEb,IAAI,CAAC,YAAY,GAAG,IAAI,wBAAwB,CAC5C,IAAI,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,aAAa,CAAC;gBACvB,QAAQ;aACX,CAAC;YACF,OAAO,EAAE;gBACL,IAAI,gCAAgC,CAAC;oBACjC,KAAK,EAAE,SAAS;iBACnB,CAAC;aACL;SACJ,CAAC,EACF;YACI,KAAK,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;YAC1B,kBAAkB;YAClB,0BAA0B;YAC1B,uBAAuB;YACvB,SAAS;SACZ,CACJ,CAAC;IACN,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CACL,GAAW,EACX,KAAY,EACZ,GAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAY;QAClC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CACL,GAAW,EACX,KAAY,EACZ,GAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,KAAa;QACtC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;CACJ"}
1
+ {"version":3,"file":"sqlite-cache-adapter.js","sourceRoot":"","sources":["../../../../../../src/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sEAAsE,CAAC;AAChH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qFAAqF,CAAC;AAQxI,MAAM,OAAO,kBAAkB;IAmB3B,MAAM,CAAC,QAAQ;QAGX,OAAO,IAAI,iCAAiC,EAAE,CAAC;IACnD,CAAC;IAEgB,YAAY,CAAkC;IAuB/D,YAAY,QAAoC;QAC5C,MAAM,EACF,QAAQ,EACR,SAAS,GAAG,OAAO,EACnB,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,SAAS,GACZ,GAAG,QAAQ,CAAC;QAEb,IAAI,CAAC,YAAY,GAAG,IAAI,wBAAwB,CAAC;YAC7C,EAAE,EAAE,IAAI,MAAM,CAAC;gBACX,OAAO,EAAE,IAAI,aAAa,CAAC;oBACvB,QAAQ,EAAE,QAAQ;iBACrB,CAAC;gBACF,OAAO,EAAE;oBACL,IAAI,gCAAgC,CAAC;wBACjC,KAAK,EAAE,SAAS;qBACnB,CAAC;iBACL;aACJ,CAAC;YACF,KAAK;YACL,kBAAkB;YAClB,0BAA0B;YAC1B,uBAAuB;YACvB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAChD,CAAC;IAKD,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAKD,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CACL,GAAW,EACX,KAAY,EACZ,GAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAY;QAClC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CACL,GAAW,EACX,KAAY,EACZ,GAAoB;QAEpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,KAAa;QACtC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;CACJ"}
@@ -1,3 +1,5 @@
1
- export * from "../../../cache/implementations/derivables/cache";
1
+ export * from "../../../cache/implementations/derivables/cache-factory-settings";
2
2
  export * from "../../../cache/implementations/derivables/cache-factory";
3
+ export * from "../../../cache/implementations/derivables/cache-settings";
4
+ export * from "../../../cache/implementations/derivables/cache";
3
5
  //# sourceMappingURL=_module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/_module.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,kDAAkD,CAAC"}
1
+ {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/_module.ts"],"names":[],"mappings":"AAAA,cAAc,2DAA2D,CAAC;AAC1E,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,79 @@
1
+ export class CacheFactorySettingsBuilder {
2
+ settings;
3
+ constructor(settings = {}) {
4
+ this.settings = settings;
5
+ }
6
+ setShouldRegisterErrors(shouldRegisterErrors) {
7
+ return new CacheFactorySettingsBuilder({
8
+ ...this.settings,
9
+ shouldRegisterErrors,
10
+ });
11
+ }
12
+ setShouldRegisterEvents(shouldRegisterEvents) {
13
+ return new CacheFactorySettingsBuilder({
14
+ ...this.settings,
15
+ shouldRegisterEvents,
16
+ });
17
+ }
18
+ setSerde(serde) {
19
+ return new CacheFactorySettingsBuilder({
20
+ ...this.settings,
21
+ serde,
22
+ });
23
+ }
24
+ setEventBus(eventBus) {
25
+ return new CacheFactorySettingsBuilder({
26
+ ...this.settings,
27
+ eventBus,
28
+ });
29
+ }
30
+ setDefultTtl(time) {
31
+ return new CacheFactorySettingsBuilder({
32
+ ...this.settings,
33
+ defaultTtl: time,
34
+ });
35
+ }
36
+ setRetryAttempts(attempts) {
37
+ return new CacheFactorySettingsBuilder({
38
+ ...this.settings,
39
+ retryAttempts: attempts,
40
+ });
41
+ }
42
+ setBackoffPolicy(policy) {
43
+ return new CacheFactorySettingsBuilder({
44
+ ...this.settings,
45
+ backoffPolicy: policy,
46
+ });
47
+ }
48
+ setRetryPolicy(policy) {
49
+ return new CacheFactorySettingsBuilder({
50
+ ...this.settings,
51
+ retryPolicy: policy,
52
+ });
53
+ }
54
+ setTimeout(time) {
55
+ return new CacheFactorySettingsBuilder({
56
+ ...this.settings,
57
+ timeout: time,
58
+ });
59
+ }
60
+ setAdapter(name, adapter) {
61
+ return new CacheFactorySettingsBuilder({
62
+ ...this.settings,
63
+ adapters: {
64
+ ...this.settings.adapters,
65
+ [name]: adapter,
66
+ },
67
+ });
68
+ }
69
+ setDefaultAdapter(adapter) {
70
+ return new CacheFactorySettingsBuilder({
71
+ ...this.settings,
72
+ defaultAdapter: adapter,
73
+ });
74
+ }
75
+ build() {
76
+ return this.settings;
77
+ }
78
+ }
79
+ //# sourceMappingURL=cache-factory-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-factory-settings.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-factory-settings.ts"],"names":[],"mappings":"AAoFA,MAAM,OAAO,2BAA2B;IAGP;IAA7B,YAA6B,WAAsB,EAAe;QAArC,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAGtE,uBAAuB,CAAC,oBAA6B;QACjD,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,oBAAoB;SACvB,CAAC,CAAC;IACP,CAAC;IAGD,uBAAuB,CAAC,oBAA6B;QACjD,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,oBAAoB;SACvB,CAAC,CAAC;IACP,CAAC;IAGD,QAAQ,CAAC,KAAgC;QACrC,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAGD,WAAW,CAAC,QAAiC;QACzC,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAGD,YAAY,CAAC,IAAc;QACvB,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAGD,gBAAgB,CAAC,QAAuB;QACpC,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACP,CAAC;IAGD,gBAAgB,CAAC,MAA4B;QACzC,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;IAGD,cAAc,CAAC,MAA0B;QACrC,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAGD,UAAU,CAAC,IAAqB;QAC5B,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAGD,UAAU,CAAuB,IAAW,EAAE,OAA2B;QACrE,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAEhB,QAAQ,EAAE;gBACN,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACzB,CAAC,IAAI,CAAC,EAAE,OAAO;aACT;SACb,CAAC,CAAC;IACP,CAAC;IAGD,iBAAiB,CAAC,OAAe;QAC7B,OAAO,IAAI,2BAA2B,CAAC;YACnC,GAAG,IAAI,CAAC,QAAQ;YAChB,cAAc,EAAE,OAAO;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QAGD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
@@ -1,32 +1,66 @@
1
- import { DefaultDriverNotDefinedError, UnregisteredDriverError, } from "../../../utilities/_module";
1
+ import { DefaultAdapterNotDefinedError, UnregisteredAdapterError, } from "../../../utilities/_module";
2
2
  import { Cache } from "../../../cache/implementations/derivables/cache";
3
+ import { CacheFactorySettingsBuilder } from "../../../cache/implementations/derivables/cache-factory-settings";
3
4
  export class CacheFactory {
4
- drivers;
5
- defaultDriver;
5
+ static settings() {
6
+ return new CacheFactorySettingsBuilder();
7
+ }
8
+ caches = {};
9
+ adapters;
10
+ defaultAdapter;
6
11
  eventBus;
7
12
  defaultTtl;
13
+ retryAttempts;
14
+ backoffPolicy;
15
+ retryPolicy;
16
+ timeout;
17
+ serde;
18
+ shouldRegisterErrors;
19
+ shouldRegisterEvents;
8
20
  constructor(settings) {
9
- const { drivers, defaultDriver, eventBus, defaultTtl = null, } = settings;
10
- this.drivers = drivers;
11
- this.defaultDriver = defaultDriver;
21
+ const { shouldRegisterErrors, shouldRegisterEvents, serde, adapters, defaultAdapter, eventBus, defaultTtl = null, retryAttempts, backoffPolicy, retryPolicy, timeout, } = settings;
22
+ this.shouldRegisterErrors = shouldRegisterErrors;
23
+ this.shouldRegisterEvents = shouldRegisterEvents;
24
+ this.serde = serde;
25
+ this.adapters = adapters;
26
+ this.defaultAdapter = defaultAdapter;
12
27
  this.eventBus = eventBus;
13
28
  this.defaultTtl = defaultTtl;
29
+ this.retryAttempts = retryAttempts;
30
+ this.backoffPolicy = backoffPolicy;
31
+ this.retryPolicy = retryPolicy;
32
+ this.timeout = timeout;
33
+ this.initCaches();
14
34
  }
15
- use(driverName = this.defaultDriver) {
16
- if (driverName === undefined) {
17
- throw new DefaultDriverNotDefinedError(CacheFactory.name);
18
- }
19
- const driver = this.drivers[driverName];
20
- if (driver === undefined) {
21
- throw new UnregisteredDriverError(driverName);
35
+ initCaches() {
36
+ for (const key in this.adapters) {
37
+ const { [key]: adapter } = this.adapters;
38
+ if (adapter === undefined) {
39
+ continue;
40
+ }
41
+ this.caches[key] = new Cache({
42
+ adapter,
43
+ serde: this.serde,
44
+ eventBus: this.eventBus,
45
+ defaultTtl: this.defaultTtl,
46
+ retryAttempts: this.retryAttempts,
47
+ backoffPolicy: this.backoffPolicy,
48
+ retryPolicy: this.retryPolicy,
49
+ timeout: this.timeout,
50
+ shouldRegisterErrors: this.shouldRegisterErrors,
51
+ shouldRegisterEvents: this.shouldRegisterEvents,
52
+ });
22
53
  }
23
- return new Cache(driver, {
24
- eventBus: this.eventBus,
25
- defaultTtl: this.defaultTtl,
26
- });
27
54
  }
28
- withType() {
29
- return this;
55
+ use(adapterName = this.defaultAdapter) {
56
+ if (adapterName === undefined) {
57
+ throw new DefaultAdapterNotDefinedError(CacheFactory.name);
58
+ }
59
+ const cache = this.caches[adapterName];
60
+ if (cache === undefined) {
61
+ throw new UnregisteredAdapterError(adapterName);
62
+ }
63
+ return cache;
30
64
  }
31
65
  }
32
66
  //# sourceMappingURL=cache-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache-factory.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AA4CjE,MAAM,OAAO,YAAY;IAGJ,OAAO,CAAyB;IAChC,aAAa,CAAY;IACzB,QAAQ,CAA2B;IAC5C,UAAU,CAAkB;IAEpC,YAAY,QAAwC;QAChD,MAAM,EACF,OAAO,EACP,aAAa,EACb,QAAQ,EACR,UAAU,GAAG,IAAI,GACpB,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,GAAG,CACC,aAAmC,IAAI,CAAC,aAAa;QAErD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,4BAA4B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,KAAK,CAAQ,MAAM,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QAKJ,OAAO,IAAW,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"cache-factory.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AAOjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2DAA2D,CAAC;AAcxG,MAAM,OAAO,YAAY;IA2BrB,MAAM,CAAC,QAAQ;QAIX,OAAO,IAAI,2BAA2B,EAAE,CAAC;IAC7C,CAAC;IAEgB,MAAM,GAAG,EAAuB,CAAC;IACjC,QAAQ,CAA2B;IACnC,cAAc,CAAa;IAC3B,QAAQ,CAA2B;IACnC,UAAU,CAAkB;IAC5B,aAAa,CAAiB;IAC9B,aAAa,CAAwB;IACrC,WAAW,CAAsB;IACjC,OAAO,CAAmB;IAC1B,KAAK,CAA4B;IACjC,oBAAoB,CAAW;IAC/B,oBAAoB,CAAW;IA6BhD,YAAY,QAAyC;QACjD,MAAM,EACF,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,EACL,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,GAAG,IAAI,EACjB,aAAa,EACb,aAAa,EACb,WAAW,EACX,OAAO,GACV,GAAG,QAAQ,CAAC;QAEb,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACb,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAM;gBAC9B,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;aAClD,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,GAAG,CACC,cAAqC,IAAI,CAAC,cAAc;QAExD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
@@ -0,0 +1,70 @@
1
+ export class CacheSettingsBuilder {
2
+ settings;
3
+ constructor(settings = {}) {
4
+ this.settings = settings;
5
+ }
6
+ setShouldRegisterErrors(shouldRegisterErrors) {
7
+ return new CacheSettingsBuilder({
8
+ ...this.settings,
9
+ shouldRegisterErrors,
10
+ });
11
+ }
12
+ setShouldRegisterEvents(shouldRegisterEvents) {
13
+ return new CacheSettingsBuilder({
14
+ ...this.settings,
15
+ shouldRegisterEvents,
16
+ });
17
+ }
18
+ setSerde(serde) {
19
+ return new CacheSettingsBuilder({
20
+ ...this.settings,
21
+ serde,
22
+ });
23
+ }
24
+ setAdapter(adapter) {
25
+ return new CacheSettingsBuilder({
26
+ ...this.settings,
27
+ adapter,
28
+ });
29
+ }
30
+ setEventBus(eventBus) {
31
+ return new CacheSettingsBuilder({
32
+ ...this.settings,
33
+ eventBus,
34
+ });
35
+ }
36
+ setDefultTtl(time) {
37
+ return new CacheSettingsBuilder({
38
+ ...this.settings,
39
+ defaultTtl: time,
40
+ });
41
+ }
42
+ setRetryAttempts(attempts) {
43
+ return new CacheSettingsBuilder({
44
+ ...this.settings,
45
+ retryAttempts: attempts,
46
+ });
47
+ }
48
+ setBackoffPolicy(policy) {
49
+ return new CacheSettingsBuilder({
50
+ ...this.settings,
51
+ backoffPolicy: policy,
52
+ });
53
+ }
54
+ setRetryPolicy(policy) {
55
+ return new CacheSettingsBuilder({
56
+ ...this.settings,
57
+ retryPolicy: policy,
58
+ });
59
+ }
60
+ setTimeout(time) {
61
+ return new CacheSettingsBuilder({
62
+ ...this.settings,
63
+ timeout: time,
64
+ });
65
+ }
66
+ build() {
67
+ return this.settings;
68
+ }
69
+ }
70
+ //# sourceMappingURL=cache-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-settings.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-settings.ts"],"names":[],"mappings":"AA+EA,MAAM,OAAO,oBAAoB;IAGA;IAA7B,YAA6B,WAAsB,EAAe;QAArC,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAGtE,uBAAuB,CAAC,oBAA6B;QACjD,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,oBAAoB;SACvB,CAAC,CAAC;IACP,CAAC;IAGD,uBAAuB,CAAC,oBAA6B;QACjD,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,oBAAoB;SACvB,CAAC,CAAC;IACP,CAAC;IAGD,QAAQ,CAAC,KAAgC;QACrC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAGD,UAAU,CAAC,OAA2B;QAClC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAGD,WAAW,CAAC,QAAiC;QACzC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAGD,YAAY,CAAC,IAAc;QACvB,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC;IAGD,gBAAgB,CAAC,QAAuB;QACpC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACP,CAAC;IAGD,gBAAgB,CAAC,MAA4B;QACzC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;IAGD,cAAc,CAAC,MAA0B;QACrC,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAGD,UAAU,CAAC,IAAqB;QAC5B,OAAO,IAAI,oBAAoB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
@@ -1,104 +1,199 @@
1
- import { KeyNotFoundCacheError, TypeCacheError, UnexpectedCacheError, } from "../../../cache/contracts/_module";
1
+ import { KeyFoundCacheEvent, KeyNotFoundCacheEvent, KeyAddedCacheEvent, KeyUpdatedCacheEvent, KeyRemovedCacheEvent, KeyIncrementedCacheEvent, KeyDecrementedCacheEvent, KeysClearedCacheEvent, } from "../../../cache/contracts/_module";
2
+ import { CacheError, KeyNotFoundCacheError, TypeCacheError, UnexpectedCacheError, } from "../../../cache/contracts/_module";
2
3
  import { isArrayEmpty, isObjectEmpty, simplifyAsyncLazyable, } from "../../../utilities/_module";
3
4
  import { LazyPromise } from "../../../async/_module";
4
5
  import { EventBus, NoOpEventBusAdapter, } from "../../../event-bus/implementations/_module";
6
+ import { CacheSettingsBuilder } from "../../../cache/implementations/derivables/cache-settings";
7
+ import { NoOpSerde } from "../../../serde/implementations/_module";
5
8
  export class Cache {
9
+ static errors = {
10
+ Error: CacheError,
11
+ Unexpected: UnexpectedCacheError,
12
+ Type: TypeCacheError,
13
+ KeyNotFound: KeyNotFoundCacheError,
14
+ };
15
+ static events = {
16
+ KeyFound: KeyFoundCacheEvent,
17
+ KeyNotFound: KeyNotFoundCacheEvent,
18
+ KeyAdded: KeyAddedCacheEvent,
19
+ KeyUpdated: KeyUpdatedCacheEvent,
20
+ KeyRemoved: KeyRemovedCacheEvent,
21
+ KeyIncremented: KeyIncrementedCacheEvent,
22
+ KeyDecremented: KeyDecrementedCacheEvent,
23
+ KeysCleared: KeysClearedCacheEvent,
24
+ };
25
+ static settings() {
26
+ return new CacheSettingsBuilder();
27
+ }
28
+ static defaultRetryPolicy = (error) => {
29
+ return !(error instanceof TypeCacheError ||
30
+ error instanceof KeyNotFoundCacheError);
31
+ };
6
32
  groupdEventBus;
7
33
  eventBus;
8
- cacheAdapter;
34
+ adapter;
9
35
  defaultTtl;
10
- lazyPromiseSettings;
11
- constructor(cacheAdapter, settings = {}) {
12
- const { eventBus: groupdEventBus = new EventBus(new NoOpEventBusAdapter()), defaultTtl = null, lazyPromiseSettings, } = settings;
13
- this.lazyPromiseSettings = lazyPromiseSettings;
36
+ retryAttempts;
37
+ backoffPolicy;
38
+ retryPolicy;
39
+ timeout;
40
+ serde;
41
+ shouldRegisterErrors;
42
+ shouldRegisterEvents;
43
+ constructor(settings) {
44
+ const { shouldRegisterErrors = true, shouldRegisterEvents = true, serde, adapter, eventBus: groupdEventBus = new EventBus({
45
+ adapter: new NoOpEventBusAdapter(),
46
+ serde: new NoOpSerde(),
47
+ }), defaultTtl = null, retryAttempts = null, backoffPolicy = null, retryPolicy = Cache.defaultRetryPolicy, timeout = null, } = settings;
48
+ this.serde = serde;
14
49
  this.groupdEventBus = groupdEventBus;
15
- this.eventBus = groupdEventBus.withGroup(cacheAdapter.getGroup());
16
- this.cacheAdapter = cacheAdapter;
50
+ this.eventBus = groupdEventBus.withGroup(adapter.getGroup());
51
+ this.adapter = adapter;
17
52
  this.defaultTtl = defaultTtl;
53
+ this.retryAttempts = retryAttempts;
54
+ this.backoffPolicy = backoffPolicy;
55
+ this.retryPolicy = retryPolicy;
56
+ this.timeout = timeout;
57
+ this.shouldRegisterErrors = shouldRegisterErrors;
58
+ this.shouldRegisterEvents = shouldRegisterEvents;
59
+ this.registerEvents();
60
+ this.registerErrors();
61
+ }
62
+ registerEvents() {
63
+ if (!this.shouldRegisterEvents) {
64
+ return;
65
+ }
66
+ let array = this.serde;
67
+ if (!Array.isArray(array)) {
68
+ array = [array];
69
+ }
70
+ for (const serde of array) {
71
+ serde
72
+ .registerClass(KeyFoundCacheEvent)
73
+ .registerClass(KeyNotFoundCacheEvent)
74
+ .registerClass(KeyAddedCacheEvent)
75
+ .registerClass(KeyUpdatedCacheEvent)
76
+ .registerClass(KeyRemovedCacheEvent)
77
+ .registerClass(KeyIncrementedCacheEvent)
78
+ .registerClass(KeyDecrementedCacheEvent)
79
+ .registerClass(KeysClearedCacheEvent);
80
+ }
81
+ }
82
+ registerErrors() {
83
+ if (!this.shouldRegisterErrors) {
84
+ return;
85
+ }
86
+ let array = this.serde;
87
+ if (!Array.isArray(array)) {
88
+ array = [array];
89
+ }
90
+ for (const serde of array) {
91
+ serde
92
+ .registerClass(CacheError)
93
+ .registerClass(UnexpectedCacheError)
94
+ .registerClass(TypeCacheError)
95
+ .registerClass(KeyNotFoundCacheError);
96
+ }
18
97
  }
19
98
  createLayPromise(asyncFn) {
20
- return new LazyPromise(asyncFn, {
21
- retryPolicy: (error) => {
22
- return !(error instanceof TypeCacheError ||
23
- error instanceof KeyNotFoundCacheError);
24
- },
25
- ...this.lazyPromiseSettings,
26
- });
99
+ return new LazyPromise(asyncFn)
100
+ .setRetryAttempts(this.retryAttempts)
101
+ .setBackoffPolicy(this.backoffPolicy)
102
+ .setRetryPolicy(this.retryPolicy)
103
+ .setTimeout(this.timeout);
27
104
  }
28
105
  createKeyFoundEvent(key, value) {
29
- return {
30
- type: "key_found",
106
+ return new KeyFoundCacheEvent({
31
107
  group: this.getGroup(),
32
108
  key,
33
109
  value,
34
- };
110
+ });
35
111
  }
36
112
  createKeyNotFoundEvent(key) {
37
- return {
38
- type: "key_not_found",
113
+ return new KeyNotFoundCacheEvent({
39
114
  group: this.getGroup(),
40
115
  key,
41
- };
116
+ });
42
117
  }
43
118
  createKeyAddedEvent(key, value, ttl) {
44
- return {
45
- type: "key_added",
119
+ return new KeyAddedCacheEvent({
46
120
  group: this.getGroup(),
47
121
  key,
48
122
  value,
49
123
  ttl,
50
- };
124
+ });
51
125
  }
52
126
  createKeyUpdatedEvent(key, value) {
53
- return {
54
- type: "key_updated",
127
+ return new KeyUpdatedCacheEvent({
55
128
  group: this.getGroup(),
56
129
  key,
57
130
  value,
58
- };
131
+ });
59
132
  }
60
133
  createKeyRemovedEvent(key) {
61
- return {
62
- type: "key_removed",
134
+ return new KeyRemovedCacheEvent({
63
135
  group: this.getGroup(),
64
136
  key,
65
- };
137
+ });
66
138
  }
67
139
  createKeysClearedEvent() {
68
- return {
69
- type: "keys_cleared",
140
+ return new KeysClearedCacheEvent({
70
141
  group: this.getGroup(),
71
- };
142
+ });
72
143
  }
73
144
  createKeyIncrementedEvent(key, value) {
74
- return {
75
- type: "key_incremented",
145
+ return new KeyIncrementedCacheEvent({
76
146
  group: this.getGroup(),
77
147
  key,
78
148
  value,
79
- };
149
+ });
80
150
  }
81
151
  createKeyDecrementedEvent(key, value) {
82
- return {
83
- type: "key_decremented",
152
+ return new KeyDecrementedCacheEvent({
84
153
  group: this.getGroup(),
85
154
  key,
86
155
  value,
87
- };
156
+ });
157
+ }
158
+ addListener(eventName, listener) {
159
+ return this.eventBus.addListener(eventName, listener);
160
+ }
161
+ addListenerMany(eventNames, listener) {
162
+ return this.eventBus.addListenerMany(eventNames, listener);
163
+ }
164
+ removeListener(eventName, listener) {
165
+ return this.eventBus.removeListener(eventName, listener);
166
+ }
167
+ removeListenerMany(eventNames, listener) {
168
+ return this.eventBus.removeListenerMany(eventNames, listener);
169
+ }
170
+ listenOnce(eventName, listener) {
171
+ return this.eventBus.listenOnce(eventName, listener);
172
+ }
173
+ subscribe(eventName, listener) {
174
+ return this.eventBus.subscribe(eventName, listener);
175
+ }
176
+ subscribeMany(eventNames, listener) {
177
+ return this.eventBus.subscribeMany(eventNames, listener);
88
178
  }
89
179
  withGroup(group) {
90
- return new Cache(this.cacheAdapter.withGroup(group), {
180
+ return new Cache({
181
+ serde: this.serde,
182
+ adapter: this.adapter.withGroup(group),
91
183
  defaultTtl: this.defaultTtl,
92
184
  eventBus: this.groupdEventBus,
93
- lazyPromiseSettings: this.lazyPromiseSettings,
185
+ retryAttempts: this.retryAttempts,
186
+ backoffPolicy: this.backoffPolicy,
187
+ retryPolicy: this.retryPolicy,
188
+ timeout: this.timeout,
94
189
  });
95
190
  }
96
191
  getGroup() {
97
- return this.cacheAdapter.getGroup();
192
+ return this.adapter.getGroup();
98
193
  }
99
194
  get(key) {
100
195
  return this.createLayPromise(async () => {
101
- const value = await this.cacheAdapter.get(key);
196
+ const value = await this.adapter.get(key);
102
197
  if (value === null) {
103
198
  await this.eventBus.dispatch(this.createKeyNotFoundEvent(key));
104
199
  }
@@ -110,7 +205,7 @@ export class Cache {
110
205
  }
111
206
  add(key, value, ttl = this.defaultTtl) {
112
207
  return this.createLayPromise(async () => {
113
- const hasAdded = await this.cacheAdapter.add(key, value, ttl);
208
+ const hasAdded = await this.adapter.add(key, value, ttl);
114
209
  if (hasAdded) {
115
210
  await this.eventBus.dispatch(this.createKeyAddedEvent(key, value, ttl));
116
211
  }
@@ -119,7 +214,7 @@ export class Cache {
119
214
  }
120
215
  update(key, value) {
121
216
  return this.createLayPromise(async () => {
122
- const hasUpdated = await this.cacheAdapter.update(key, value);
217
+ const hasUpdated = await this.adapter.update(key, value);
123
218
  if (hasUpdated) {
124
219
  await this.eventBus.dispatch(this.createKeyUpdatedEvent(key, value));
125
220
  }
@@ -131,7 +226,7 @@ export class Cache {
131
226
  }
132
227
  put(key, value, ttl = this.defaultTtl) {
133
228
  return this.createLayPromise(async () => {
134
- const hasUpdated = await this.cacheAdapter.put(key, value, ttl);
229
+ const hasUpdated = await this.adapter.put(key, value, ttl);
135
230
  if (hasUpdated) {
136
231
  await this.eventBus.dispatch(this.createKeyUpdatedEvent(key, value));
137
232
  }
@@ -143,7 +238,7 @@ export class Cache {
143
238
  }
144
239
  remove(key) {
145
240
  return this.createLayPromise(async () => {
146
- const hasRemoved = await this.cacheAdapter.remove(key);
241
+ const hasRemoved = await this.adapter.remove(key);
147
242
  if (hasRemoved) {
148
243
  await this.eventBus.dispatch(this.createKeyRemovedEvent(key));
149
244
  }
@@ -155,7 +250,7 @@ export class Cache {
155
250
  }
156
251
  increment(key, value = 1) {
157
252
  return this.createLayPromise(async () => {
158
- const hasUpdated = await this.cacheAdapter.increment(key, value);
253
+ const hasUpdated = await this.adapter.increment(key, value);
159
254
  if (hasUpdated) {
160
255
  if (value > 0) {
161
256
  await this.eventBus.dispatch(this.createKeyIncrementedEvent(key, value));
@@ -172,38 +267,17 @@ export class Cache {
172
267
  }
173
268
  clear() {
174
269
  return this.createLayPromise(async () => {
175
- await this.cacheAdapter.clear();
270
+ await this.adapter.clear();
176
271
  await this.eventBus.dispatch(this.createKeysClearedEvent());
177
272
  });
178
273
  }
179
- addListener(eventName, listener) {
180
- return this.eventBus.addListener(eventName, listener);
181
- }
182
- addListenerMany(eventNames, listener) {
183
- return this.eventBus.addListenerMany(eventNames, listener);
184
- }
185
- removeListener(eventName, listener) {
186
- return this.eventBus.removeListener(eventName, listener);
187
- }
188
- removeListenerMany(eventNames, listener) {
189
- return this.eventBus.removeListenerMany(eventNames, listener);
190
- }
191
- listenOnce(eventName, listener) {
192
- return this.eventBus.listenOnce(eventName, listener);
193
- }
194
- subscribe(eventName, listener) {
195
- return this.eventBus.subscribe(eventName, listener);
196
- }
197
- subscribeMany(eventNames, listener) {
198
- return this.eventBus.subscribeMany(eventNames, listener);
199
- }
200
274
  exists(key) {
201
275
  return this.createLayPromise(async () => {
202
- return await this.cacheAdapter.exists(key);
276
+ return await this.adapter.exists(key);
203
277
  });
204
278
  }
205
279
  existsMany(keys) {
206
- return new LazyPromise(async () => {
280
+ return this.createLayPromise(async () => {
207
281
  if (isArrayEmpty(keys)) {
208
282
  return {};
209
283
  }