@daiso-tech/core 0.27.0 → 0.28.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 (83) hide show
  1. package/README.md +10 -10
  2. package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +57 -19
  3. package/dist/async/utilities/lazy-promise/lazy-promise.js +93 -52
  4. package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  5. package/dist/async/utilities/retry/retry-or-fail.d.ts +2 -0
  6. package/dist/async/utilities/retry/retry-or-fail.js.map +1 -1
  7. package/dist/cache/contracts/cache.contract.d.ts +98 -14
  8. package/dist/cache/implementations/adapters/_module-exports.d.ts +1 -0
  9. package/dist/cache/implementations/adapters/_module-exports.js +1 -0
  10. package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
  11. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.d.ts +1 -0
  12. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js +2 -0
  13. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js.map +1 -0
  14. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +23 -0
  15. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +41 -0
  16. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -0
  17. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +2 -3
  18. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  19. package/dist/cache/implementations/derivables/cache/cache.d.ts +250 -45
  20. package/dist/cache/implementations/derivables/cache/cache.js +256 -28
  21. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  22. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +20 -17
  23. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +33 -19
  24. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  25. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +4 -20
  26. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +7 -4
  27. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  28. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +1 -1
  29. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +1 -1
  30. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +21 -36
  31. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +24 -17
  32. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  33. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +57 -14
  34. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +61 -13
  35. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  36. package/dist/lock/contracts/lock-provider.contract.d.ts +19 -5
  37. package/dist/lock/contracts/lock.contract.d.ts +37 -8
  38. package/dist/lock/implementations/adapters/_module-exports.d.ts +1 -0
  39. package/dist/lock/implementations/adapters/_module-exports.js +1 -0
  40. package/dist/lock/implementations/adapters/_module-exports.js.map +1 -1
  41. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.d.ts +1 -0
  42. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.js +2 -0
  43. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.js.map +1 -0
  44. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +17 -0
  45. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +24 -0
  46. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -0
  47. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +2 -3
  48. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -1
  49. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +130 -62
  50. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +134 -44
  51. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  52. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +238 -0
  53. package/dist/lock/implementations/derivables/lock-provider/lock.js +258 -0
  54. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  55. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +75 -9
  56. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +85 -7
  57. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  58. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +162 -8
  59. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  60. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +1 -0
  61. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +1 -0
  62. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js.map +1 -1
  63. package/dist/utilities/_module-exports.d.ts +1 -1
  64. package/dist/utilities/_module-exports.js +1 -1
  65. package/dist/utilities/_module-exports.js.map +1 -1
  66. package/dist/utilities/classes/key-prefixer/key-prefixer.js +1 -1
  67. package/dist/utilities/classes/key-prefixer/key-prefixer.js.map +1 -1
  68. package/dist/utilities/{_constants.d.ts → constants.d.ts} +0 -3
  69. package/dist/utilities/constants.js +5 -0
  70. package/dist/utilities/constants.js.map +1 -0
  71. package/dist/utilities/contracts/_module.d.ts +2 -1
  72. package/dist/utilities/contracts/_module.js +2 -1
  73. package/dist/utilities/contracts/_module.js.map +1 -1
  74. package/dist/utilities/contracts/sqlite-database.contract.d.ts +26 -0
  75. package/dist/utilities/contracts/sqlite-database.contract.js +5 -0
  76. package/dist/utilities/contracts/sqlite-database.contract.js.map +1 -0
  77. package/dist/utilities/functions.d.ts +4 -0
  78. package/dist/utilities/functions.js +10 -4
  79. package/dist/utilities/functions.js.map +1 -1
  80. package/dist/utilities/types.d.ts +4 -4
  81. package/package.json +1 -1
  82. package/dist/utilities/_constants.js +0 -8
  83. package/dist/utilities/_constants.js.map +0 -1
@@ -40,7 +40,8 @@ export class Cache {
40
40
  retryAttempts;
41
41
  backoffPolicy;
42
42
  retryPolicy;
43
- timeout;
43
+ retryTimeout;
44
+ totalTimeout;
44
45
  keyPrefixer;
45
46
  /**
46
47
  *
@@ -74,27 +75,29 @@ export class Cache {
74
75
  * import { SqliteCacheAdapter } from "@daiso-tech/core/cache/adapters";
75
76
  * import type { ICacheAdapter } from "@daiso-tech/core/cache/contracts";
76
77
  * import { Serde } from "@daiso-tech/core/serde";
78
+ * import type { ISerde } from "@daiso-tech/core/serde/contracts";
77
79
  * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters"
78
80
  * import Sqlite from "better-sqlite3";
79
81
  * import { Cache } from "@daiso-tech/core/cache";
80
- * import { KeyPrefixer, type Promiseable } from "@daiso-tech/core/utilities";
81
- *
82
- *
83
- * async function cahceAdapterFactory(prefix: string): Promiseable<ICacheAdapter> {
84
- * const database = new Sqlite("local.db");
85
- * const serde = new Serde(new SuperJsonSerdeAdapter());
86
- * const cacheAdapter = new SqliteCacheAdapter({
87
- * database,
88
- * serde,
89
- * tableName: `cache_${prefix}`
90
- * });
91
- * await cacheAdapter.init();
92
- * return cacheAdapter;
82
+ * import { KeyPrefixer, type ISqliteDatabase, type FactoryFn } from "@daiso-tech/core/utilities";
83
+ *
84
+ * function cahceAdapterFactory(database: ISqliteDatabase, serde: ISerde<string>): FactoryFn<string, ICacheAdapter> {
85
+ * return async (prefix) => {
86
+ * const cacheAdapter = new SqliteCacheAdapter({
87
+ * database,
88
+ * serde,
89
+ * tableName: `cache_${prefix}`
90
+ * });
91
+ * await cacheAdapter.init();
92
+ * return cacheAdapter;
93
+ * }
93
94
  * }
94
95
  *
96
+ * const database = new Sqlite("local.db");
97
+ * const serde = new Serde(new SuperJsonSerdeAdapter());
95
98
  * const cache = new Cache({
96
99
  * keyPrefixer: new KeyPrefixer("cache"),
97
- * adapter: cahceAdapterFactory,
100
+ * adapter: cahceAdapterFactory(database, serde),
98
101
  * });
99
102
  * ```
100
103
  *
@@ -104,28 +107,31 @@ export class Cache {
104
107
  * import { SqliteCacheAdapter } from "@daiso-tech/core/cache/adapters";
105
108
  * import type { ICacheAdapter } from "@daiso-tech/core/cache/contracts";
106
109
  * import { Serde } from "@daiso-tech/core/serde";
110
+ * import type { ISerde } from "@daiso-tech/core/serde/contracts";
107
111
  * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters"
108
112
  * import Sqlite from "better-sqlite3";
109
113
  * import { Cache } from "@daiso-tech/core/cache";
110
- * import { KeyPrefixer, type IFactoryObject, type Promiseable } from "@daiso-tech/core/utilities";
114
+ * import { KeyPrefixer, type ISqliteDatabase, type IFactoryObject, type Promiseable } from "@daiso-tech/core/utilities";
111
115
  *
112
116
  * class CahceAdapterFactory implements IFactoryObject<string, ICacheAdapter> {
117
+ * constructor(private readonly database: ISqliteDatabase, private readonly serde: ISerde<string>) {}
118
+ *
113
119
  * async use(prefix: string): Promiseable<ICacheAdapter> {
114
- * const database = new Sqlite("local.db");
115
- * const serde = new Serde(new SuperJsonSerdeAdapter());
116
120
  * const cacheAdapter = new SqliteCacheAdapter({
117
- * database,
118
- * serde,
121
+ * database: this.database,
122
+ * serde: this.serde,
119
123
  * tableName: `cache_${prefix}`
120
124
  * });
121
125
  * await cacheAdapter.init();
122
126
  * return cacheAdapter;
123
127
  * }
124
128
  * }
125
- * const cahceAdapterFactory = new CahceAdapterFactory();
129
+ *
130
+ * const database = new Sqlite("local.db");
131
+ * const serde = new Serde(new SuperJsonSerdeAdapter());
126
132
  * const cache = new Cache({
127
133
  * keyPrefixer: new KeyPrefixer("cache"),
128
- * adapter: cahceAdapterFactory,
134
+ * adapter: new CahceAdapterFactory(database, serde),
129
135
  * });
130
136
  * ```
131
137
  */
@@ -133,7 +139,7 @@ export class Cache {
133
139
  const { keyPrefixer, adapter, eventBus: groupdEventBus = new EventBus({
134
140
  keyPrefixer: new KeyPrefixer("event-bus"),
135
141
  adapter: new MemoryEventBusAdapter(),
136
- }), defaultTtl = null, retryAttempts = null, backoffPolicy = null, retryPolicy = Cache.defaultRetryPolicy, timeout = null, } = settings;
142
+ }), defaultTtl = null, retryAttempts = null, backoffPolicy = null, retryPolicy = Cache.defaultRetryPolicy, retryTimeout = null, totalTimeout = null, } = settings;
137
143
  this.keyPrefixer = keyPrefixer;
138
144
  this.groupdEventBus = groupdEventBus;
139
145
  this.adapterFactoryable = adapter;
@@ -141,7 +147,8 @@ export class Cache {
141
147
  this.retryAttempts = retryAttempts;
142
148
  this.backoffPolicy = backoffPolicy;
143
149
  this.retryPolicy = retryPolicy;
144
- this.timeout = timeout;
150
+ this.retryTimeout = retryTimeout;
151
+ this.totalTimeout = totalTimeout;
145
152
  this.eventBus = this.groupdEventBus.withGroup(this.keyPrefixer.resolvedRootPrefix);
146
153
  if (this.keyPrefixer.resolvedGroup) {
147
154
  this.eventBus = this.groupdEventBus.withGroup([
@@ -151,27 +158,59 @@ export class Cache {
151
158
  }
152
159
  this.adapterPromise = new LazyPromise(() => Cache.resolveCacheAdapterFactoryable(this.adapterFactoryable, this.keyPrefixer.keyPrefix));
153
160
  }
161
+ /**
162
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
163
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
164
+ */
154
165
  addListener(event, listener) {
155
166
  return this.eventBus.addListener(event, listener);
156
167
  }
168
+ /**
169
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
170
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
171
+ */
157
172
  addListenerMany(events, listener) {
158
173
  return this.eventBus.addListenerMany(events, listener);
159
174
  }
175
+ /**
176
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
177
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
178
+ */
160
179
  removeListener(event, listener) {
161
180
  return this.eventBus.removeListener(event, listener);
162
181
  }
182
+ /**
183
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
184
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
185
+ */
163
186
  removeListenerMany(events, listener) {
164
187
  return this.eventBus.removeListenerMany(events, listener);
165
188
  }
189
+ /**
190
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
191
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
192
+ */
166
193
  listenOnce(event, listener) {
167
194
  return this.eventBus.listenOnce(event, listener);
168
195
  }
196
+ /**
197
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
198
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
199
+ */
169
200
  asPromise(event) {
170
201
  return this.eventBus.asPromise(event);
171
202
  }
203
+ /**
204
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
205
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
206
+ */
172
207
  subscribe(event, listener) {
173
208
  return this.eventBus.subscribe(event, listener);
174
209
  }
210
+ /**
211
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
212
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
213
+ */
175
214
  subscribeMany(events, listener) {
176
215
  return this.eventBus.subscribeMany(events, listener);
177
216
  }
@@ -180,7 +219,8 @@ export class Cache {
180
219
  retryAttempts: this.retryAttempts,
181
220
  backoffPolicy: this.backoffPolicy,
182
221
  retryPolicy: this.retryPolicy,
183
- timeout: this.timeout,
222
+ retryTimeout: this.retryTimeout,
223
+ totalTimeout: this.totalTimeout,
184
224
  });
185
225
  }
186
226
  exists(key) {
@@ -286,6 +326,78 @@ export class Cache {
286
326
  }
287
327
  });
288
328
  }
329
+ /**
330
+ * @example
331
+ * ```ts
332
+ * import { Cache } from "@daiso-tech/core/cache";
333
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
334
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
335
+ *
336
+ * const cache = new Cache({
337
+ * adapter: new MemoryCacheAdapter(),
338
+ * keyPrefixer: new KeyPrefixer("cache")
339
+ * });
340
+ *
341
+ * const value = await cache.getOr("a", 1);
342
+ *
343
+ * // Will be 1
344
+ * console.log(value);
345
+ * ```
346
+ *
347
+ * You can also pass in a function
348
+ * @example
349
+ * ```ts
350
+ * import { Cache } from "@daiso-tech/core/cache";
351
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
352
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
353
+ *
354
+ * const cache = new Cache({
355
+ * adapter: new MemoryCacheAdapter(),
356
+ * keyPrefixer: new KeyPrefixer("cache")
357
+ * });
358
+ *
359
+ * const value = await cache.getOr("a", () => 1);
360
+ *
361
+ * // Will be 1
362
+ * console.log(value);
363
+ * ```
364
+ *
365
+ * You can also pass in a async function. This is useful because it allows for retrieval of external data if the key doesnt't.
366
+ * @example
367
+ * ```ts
368
+ * import { Cache } from "@daiso-tech/core/cache";
369
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
370
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
371
+ *
372
+ * const cache = new Cache({
373
+ * adapter: new MemoryCacheAdapter(),
374
+ * keyPrefixer: new KeyPrefixer("cache")
375
+ * });
376
+ *
377
+ * const value = await cache.getOr("a", async () => 1);
378
+ *
379
+ * // Will be 1
380
+ * console.log(value);
381
+ * ```
382
+ *
383
+ * You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
384
+ * @example
385
+ * ```ts
386
+ * import { Cache } from "@daiso-tech/core/cache";
387
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
388
+ * import { KeyPrefixer, LazyPromise } from "@daiso-tech/core/utilities";
389
+ *
390
+ * const cache = new Cache({
391
+ * adapter: new MemoryCacheAdapter(),
392
+ * keyPrefixer: new KeyPrefixer("cache")
393
+ * });
394
+ *
395
+ * const value = await cache.getOr("a", new LazyPromise(async () => 1));
396
+ *
397
+ * // Will be 1
398
+ * console.log(value);
399
+ * ```
400
+ */
289
401
  getOr(key, defaultValue) {
290
402
  return this.createLazyPromise(async () => {
291
403
  const value = await this.get(key);
@@ -296,6 +408,78 @@ export class Cache {
296
408
  return value;
297
409
  });
298
410
  }
411
+ /**
412
+ * @example
413
+ * ```ts
414
+ * import { Cache } from "@daiso-tech/core/cache";
415
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
416
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
417
+ *
418
+ * const cache = new Cache({
419
+ * adapter: new MemoryCacheAdapter(),
420
+ * keyPrefixer: new KeyPrefixer("cache")
421
+ * });
422
+ *
423
+ * const value = await cache.getOrAdd("a", 1);
424
+ *
425
+ * // Will be 1
426
+ * console.log(value);
427
+ * ```
428
+ *
429
+ * You can also pass in a function
430
+ * @example
431
+ * ```ts
432
+ * import { Cache } from "@daiso-tech/core/cache";
433
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
434
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
435
+ *
436
+ * const cache = new Cache({
437
+ * adapter: new MemoryCacheAdapter(),
438
+ * keyPrefixer: new KeyPrefixer("cache")
439
+ * });
440
+ *
441
+ * const value = await cache.getOrAdd("a", () => 1);
442
+ *
443
+ * // Will be 1
444
+ * console.log(value);
445
+ * ```
446
+ *
447
+ * You can also pass in a async function. This is useful because it allows for retrieval of external data if the key doesnt't.
448
+ * @example
449
+ * ```ts
450
+ * import { Cache } from "@daiso-tech/core/cache";
451
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
452
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
453
+ *
454
+ * const cache = new Cache({
455
+ * adapter: new MemoryCacheAdapter(),
456
+ * keyPrefixer: new KeyPrefixer("cache")
457
+ * });
458
+ *
459
+ * const value = await cache.getOrAdd("a", async () => 1);
460
+ *
461
+ * // Will be 1
462
+ * console.log(value);
463
+ * ```
464
+ *
465
+ * You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
466
+ * @example
467
+ * ```ts
468
+ * import { Cache } from "@daiso-tech/core/cache";
469
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
470
+ * import { KeyPrefixer, LazyPromise } from "@daiso-tech/core/utilities";
471
+ *
472
+ * const cache = new Cache({
473
+ * adapter: new MemoryCacheAdapter(),
474
+ * keyPrefixer: new KeyPrefixer("cache")
475
+ * });
476
+ *
477
+ * const value = await cache.getOrAdd("a", new LazyPromise(async () => 1));
478
+ *
479
+ * // Will be 1
480
+ * console.log(value);
481
+ * ```
482
+ */
299
483
  getOrAdd(key, valueToAdd, ttl) {
300
484
  return this.createLazyPromise(async () => {
301
485
  const value = await this.get(key);
@@ -511,10 +695,11 @@ export class Cache {
511
695
  }
512
696
  removeMany(keys) {
513
697
  return this.createLazyPromise(async () => {
514
- if (keys.length === 0) {
698
+ const keysArr = [...keys];
699
+ if (keysArr.length === 0) {
515
700
  return true;
516
701
  }
517
- const keyObjArr = keys.map((key) => this.keyPrefixer.create(key));
702
+ const keyObjArr = keysArr.map((key) => this.keyPrefixer.create(key));
518
703
  try {
519
704
  const adapter = await this.adapterPromise;
520
705
  const hasRemovedAtLeastOne = await adapter.removeMany(keyObjArr.map((keyObj) => keyObj.prefixed));
@@ -574,12 +759,55 @@ export class Cache {
574
759
  }
575
760
  });
576
761
  }
762
+ /**
763
+ * @example
764
+ * ```ts
765
+ * import { Cache } from "@daiso-tech/core/cache";
766
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
767
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
768
+ *
769
+ * const cache = new Cache({
770
+ * adapter: new MemoryCacheAdapter(),
771
+ * keyPrefixer: new KeyPrefixer("cache")
772
+ * });
773
+ *
774
+ * // Will log null because the cache is not in a group
775
+ * console.log(cache.getGroup());
776
+ *
777
+ * const groupedCache = cache.withGroup("group-a");
778
+ *
779
+ * // Will log "group-a" because the groupedCache is in a group
780
+ * console.log(groupedCache.getGroup());
781
+ * ```
782
+ */
577
783
  getGroup() {
578
784
  if (this.keyPrefixer.resolvedGroup) {
579
785
  return this.keyPrefixer.resolvedGroup;
580
786
  }
581
787
  return null;
582
788
  }
789
+ /**
790
+ * @example
791
+ * ```ts
792
+ * import { Cache } from "@daiso-tech/core/cache";
793
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
794
+ * import { KeyPrefixer } from "@daiso-tech/core/utilities";
795
+ *
796
+ * const cache = new Cache({
797
+ * adapter: new MemoryCacheAdapter(),
798
+ * keyPrefixer: new KeyPrefixer("cache")
799
+ * });
800
+ *
801
+ * const groupedCache = cache.withGroup("group-a");
802
+ * await groupedCache.add("a", 1);
803
+ *
804
+ * // Will log "a".
805
+ * console.log(await groupedCache.get("a"));
806
+ *
807
+ * // Will log null because the caches are in different groups.
808
+ * console.log(await cache.get("a"));
809
+ * ```
810
+ */
583
811
  withGroup(group) {
584
812
  const cache = new Cache({
585
813
  keyPrefixer: this.keyPrefixer.withGroup(group),
@@ -589,7 +817,7 @@ export class Cache {
589
817
  retryAttempts: this.retryAttempts,
590
818
  backoffPolicy: this.backoffPolicy,
591
819
  retryPolicy: this.retryPolicy,
592
- timeout: this.timeout,
820
+ retryTimeout: this.retryTimeout,
593
821
  });
594
822
  return cache;
595
823
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache/cache.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  import type { IGroupableEventBus } from "../../../../event-bus/contracts/_module-exports.js";
5
5
  import type { IGroupableCache, ICacheFactory } from "../../../../cache/contracts/_module-exports.js";
6
6
  import { type CacheSettingsBase, type CacheAdapterFactoryable } from "../../../../cache/implementations/derivables/cache/_module.js";
7
- import type { KeyPrefixer, TimeSpan } from "../../../../utilities/_module-exports.js";
7
+ import { KeyPrefixer, type TimeSpan } from "../../../../utilities/_module-exports.js";
8
8
  import type { BackoffPolicy, RetryPolicy } from "../../../../async/_module-exports.js";
9
9
  /**
10
10
  *
@@ -40,36 +40,40 @@ export declare class CacheFactory<TAdapters extends string = string> implements
40
40
  setRetryAttempts(attempts: number): CacheFactory<TAdapters>;
41
41
  setBackoffPolicy(policy: BackoffPolicy): CacheFactory<TAdapters>;
42
42
  setRetryPolicy(policy: RetryPolicy): CacheFactory<TAdapters>;
43
- setTimeout(timeout: TimeSpan): CacheFactory<TAdapters>;
43
+ setRetryTimeout(timeout: TimeSpan): CacheFactory<TAdapters>;
44
+ setTotalTimeout(timeout: TimeSpan): CacheFactory<TAdapters>;
44
45
  /**
45
46
  * @example
46
47
  * ```ts
47
48
  * import { CacheFactory } from "@daiso-tech/core/cache";
49
+ * import type { ICacheAdapter } from "@daiso-tech/core/cache/contracts";
48
50
  * import { MemoryCacheAdapter, RedisCacheAdapter, SqliteCacheAdapter } from "@daiso-tech/core/cache/adapters";
49
51
  * import { Serde } from "@daiso-tech/core/serde";
52
+ * import type { ISerde } from "@daiso-tech/core/serde/contracts";
50
53
  * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
51
- * import { KeyPrefixer, TimeSpan, type IFactoryObject, type Promiseable } from "@daiso-tech/core/utilities";
54
+ * import { KeyPrefixer, TimeSpan, type ISqliteDatabase, type FactoryFn } from "@daiso-tech/core/utilities";
52
55
  * import Redis from "ioredis"
53
56
  * import Sqlite from "better-sqlite3";
54
57
  *
55
- * const serde = new Serde(new SuperJsonSerdeAdapter());
56
- *
57
- * async function cahceAdapterFactory(prefix: string): Promiseable<SqliteCacheAdapter> {
58
- * const database = new Sqlite("local.db");
59
- * const cacheAdapter = new SqliteCacheAdapter({
60
- * database,
61
- * serde,
62
- * tableName: `cache_${prefix}`
63
- * });
64
- * await cacheAdapter.init();
65
- * return cacheAdapter;
58
+ * function cahceAdapterFactory(database: ISqliteDatabase, serde: ISerde<string>): FactoryFn<string, ICacheAdapter> {
59
+ * return async (prefix) => {
60
+ * const cacheAdapter = new SqliteCacheAdapter({
61
+ * database,
62
+ * serde,
63
+ * tableName: `cache_${prefix}`
64
+ * });
65
+ * await cacheAdapter.init();
66
+ * return cacheAdapter;
67
+ * }
66
68
  * }
67
69
  *
70
+ * const database = new Sqlite("local.db");
71
+ * const serde = new Serde(new SuperJsonSerdeAdapter());
68
72
  * const cacheFactory = new CacheFactory({
69
73
  * serde,
70
74
  * keyPrefixer: new KeyPrefixer("cache"),
71
75
  * adapters: {
72
- * sqlite: cahceAdapterFactory,
76
+ * sqlite: cahceAdapterFactory(database, serde),
73
77
  * memory: new MemoryCacheAdapter(),
74
78
  * redis: new RedisCacheAdapter({
75
79
  * client: new Redis("YOUR_REDIS_CONNECTION"),
@@ -77,7 +81,6 @@ export declare class CacheFactory<TAdapters extends string = string> implements
77
81
  * }),
78
82
  * },
79
83
  * defaultAdapter: "memory",
80
- * eventBus,
81
84
  * });
82
85
  *
83
86
  * // Will add key to cache using the default adapter which is MemoryCacheAdapter
@@ -106,7 +109,7 @@ export declare class CacheFactory<TAdapters extends string = string> implements
106
109
  *
107
110
  * // You can extend the settings
108
111
  * const extendedCacheFactory = longLivedCacheFactory
109
- * .setTimeout(TimeSpan.fromSeconds(1));
112
+ * .setRetryTimeout(TimeSpan.fromSeconds(1));
110
113
  *
111
114
  * await extendedCacheFactory
112
115
  * .use()