@zajno/common 2.7.7 → 2.8.1

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 (53) hide show
  1. package/cjs/lazy/extensions.js +48 -0
  2. package/cjs/lazy/extensions.js.map +1 -0
  3. package/cjs/lazy/lazy.js +35 -14
  4. package/cjs/lazy/lazy.js.map +1 -1
  5. package/cjs/lazy/light.js +11 -1
  6. package/cjs/lazy/light.js.map +1 -1
  7. package/cjs/lazy/promise.js +139 -18
  8. package/cjs/lazy/promise.js.map +1 -1
  9. package/cjs/models/Loading.js.map +1 -1
  10. package/cjs/structures/extendObject.js +8 -0
  11. package/cjs/structures/extendObject.js.map +1 -0
  12. package/cjs/structures/path/utils/indexTrim.js +3 -3
  13. package/cjs/structures/path/utils/indexTrim.js.map +1 -1
  14. package/cjs/structures/promiseCache.js +126 -19
  15. package/cjs/structures/promiseCache.js.map +1 -1
  16. package/cjs/structures/promiseProxy.js +2 -5
  17. package/cjs/structures/promiseProxy.js.map +1 -1
  18. package/cjs/structures/tempoCache.js.map +1 -1
  19. package/esm/lazy/extensions.js +45 -0
  20. package/esm/lazy/extensions.js.map +1 -0
  21. package/esm/lazy/lazy.js +35 -14
  22. package/esm/lazy/lazy.js.map +1 -1
  23. package/esm/lazy/light.js +11 -1
  24. package/esm/lazy/light.js.map +1 -1
  25. package/esm/lazy/promise.js +139 -18
  26. package/esm/lazy/promise.js.map +1 -1
  27. package/esm/models/Loading.js.map +1 -1
  28. package/esm/structures/extendObject.js +5 -0
  29. package/esm/structures/extendObject.js.map +1 -0
  30. package/esm/structures/path/utils/indexTrim.js +3 -3
  31. package/esm/structures/path/utils/indexTrim.js.map +1 -1
  32. package/esm/structures/promiseCache.js +126 -19
  33. package/esm/structures/promiseCache.js.map +1 -1
  34. package/esm/structures/promiseProxy.js +2 -5
  35. package/esm/structures/promiseProxy.js.map +1 -1
  36. package/esm/structures/tempoCache.js.map +1 -1
  37. package/package.json +1 -1
  38. package/tsconfig.cjs.tsbuildinfo +1 -1
  39. package/tsconfig.esm.tsbuildinfo +1 -1
  40. package/tsconfig.types.tsbuildinfo +1 -1
  41. package/types/lazy/extensions.d.ts +10 -0
  42. package/types/lazy/lazy.d.ts +8 -3
  43. package/types/lazy/light.d.ts +3 -1
  44. package/types/lazy/promise.d.ts +63 -10
  45. package/types/lazy/types.d.ts +106 -8
  46. package/types/models/Loading.d.ts +4 -4
  47. package/types/models/Model.d.ts +2 -2
  48. package/types/models/types.d.ts +1 -1
  49. package/types/structures/extendObject.d.ts +13 -0
  50. package/types/structures/path/utils/indexTrim.d.ts +2 -1
  51. package/types/structures/promiseCache.d.ts +127 -12
  52. package/types/structures/promiseProxy.d.ts +10 -6
  53. package/types/structures/tempoCache.d.ts +3 -2
@@ -7,17 +7,20 @@ const Model_js_1 = require("../models/Model.js");
7
7
  var DeferredGetter;
8
8
  (function (DeferredGetter) {
9
9
  const _resolvedPromise = Promise.resolve(null);
10
+ /** Empty resolved value. */
10
11
  DeferredGetter.Empty = {
11
12
  get current() { return null; },
12
13
  get promise() { return _resolvedPromise; },
13
- get busy() { return false; },
14
+ get isLoading() { return false; },
14
15
  };
15
16
  })(DeferredGetter || (exports.DeferredGetter = DeferredGetter = {}));
16
17
  const BATCHING_DELAY = 200;
17
- /** Caches items by key which are resolve by a promise.
18
+ /**
19
+ * Caches items by a key (string or another type) which are resolved by an async fetcher (`Promise`).
18
20
  *
19
21
  * Supports:
20
22
  * - custom key adapter and parser for non-string keys.
23
+ * - direct manual cache manipulation.
21
24
  * - batching of fetches.
22
25
  * - auto-invalidation of cached items.
23
26
  */
@@ -25,35 +28,78 @@ class PromiseCache extends loggable_js_1.Loggable {
25
28
  fetcher;
26
29
  keyAdapter;
27
30
  keyParser;
31
+ /** Stores resolved items in map by id. */
28
32
  _itemsCache;
33
+ /** Stores items loading state (loading or not) in map by id. */
29
34
  _itemsStatus;
30
- _busyCount;
35
+ /** Stores items loading count. */
36
+ _loadingCount;
37
+ /** Stores items Promises state (if still loading) in map by id. */
31
38
  _fetchCache;
39
+ /** Stores items resolve timestamps (for expiration) in map by id. */
32
40
  _timestamps = new Map();
33
41
  _batch = null;
34
42
  _invalidationTimeMs = null;
35
43
  _keepInstanceDuringInvalidation = false;
36
44
  _version = 0;
45
+ /**
46
+ * Creates an instance of PromiseCache.
47
+ * @param fetcher Function to fetch data by key.
48
+ * @param keyAdapter Optional function to adapt non-string keys to strings.
49
+ * @param keyParser Optional function to parse string keys back to their original type.
50
+ */
37
51
  constructor(fetcher, keyAdapter, keyParser) {
38
52
  super();
39
53
  this.fetcher = fetcher;
40
54
  this.keyAdapter = keyAdapter;
41
55
  this.keyParser = keyParser;
42
- this._busyCount = this.pure_createBusyCount();
56
+ this._loadingCount = this.pure_createBusyCount();
43
57
  this._itemsCache = this.pure_createItemsCache();
44
58
  this._itemsStatus = this.pure_createItemsStatus();
45
59
  this._fetchCache = this.pure_createFetchCache();
46
60
  }
47
- get busyCount() { return this._busyCount.value; }
61
+ get busyCount() { return this._loadingCount.value; }
62
+ /**
63
+ * @pure @const
64
+ * Creates a model for tracking the loading state. Override to inject own instance, e.g. for observability.
65
+ *
66
+ * Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
67
+ *
68
+ * @returns A value model for the loading count.
69
+ */
48
70
  pure_createBusyCount() {
49
71
  return new Model_js_1.Model(0);
50
72
  }
73
+ /**
74
+ * @pure @const
75
+ * Creates a map for caching resolved items by id. Override to inject own instance, e.g. for observability.
76
+ *
77
+ * Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
78
+ *
79
+ * @returns A map model for the items cache.
80
+ */
51
81
  pure_createItemsCache() {
52
82
  return new Map();
53
83
  }
84
+ /**
85
+ * @pure @const
86
+ * Creates a map for tracking the loading state of items by id. Override to inject own instance, e.g. for observability.
87
+ *
88
+ * Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
89
+ *
90
+ * @returns A map model for the items loading state.
91
+ */
54
92
  pure_createItemsStatus() {
55
93
  return new Map();
56
94
  }
95
+ /**
96
+ * @pure @const
97
+ * Creates a map for caching promises of items by id. Override to inject own instance, e.g. for observability.
98
+ *
99
+ * Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
100
+ *
101
+ * @returns A map model for the items promises cache.
102
+ */
57
103
  pure_createFetchCache() {
58
104
  return new Map();
59
105
  }
@@ -69,6 +115,11 @@ class PromiseCache extends loggable_js_1.Loggable {
69
115
  }
70
116
  return this.keyAdapter(k);
71
117
  }
118
+ /**
119
+ * Creates a logger name for this instance.
120
+ * @param name The name of the cache instance.
121
+ * @returns The logger name.
122
+ */
72
123
  getLoggerName(name) {
73
124
  return `[PromiseCache:${name || '?'}]`;
74
125
  }
@@ -87,21 +138,35 @@ class PromiseCache extends loggable_js_1.Loggable {
87
138
  * Enables auto-invalidation of cached items.
88
139
  *
89
140
  * @param ms Time in milliseconds after which the item will be considered invalid. If null, auto-invalidation is disabled.
141
+ * @param keepInstance If true, the cached item will not be removed during invalidation, but will be set to `undefined` instead. Defaults to false.
90
142
  */
91
143
  useInvalidationTime(ms, keepInstance = false) {
92
144
  this._invalidationTimeMs = ms;
93
145
  this._keepInstanceDuringInvalidation = keepInstance;
94
146
  return this;
95
147
  }
148
+ /**
149
+ * Returns a {@link DeferredGetter} object for a specfied key.
150
+ *
151
+ * This can be used to access the current value, promise, and loading state of the item.
152
+ *
153
+ * @param key The key of the item.
154
+ */
96
155
  getDeferred(key) {
97
156
  // eslint-disable-next-line @typescript-eslint/no-this-alias
98
157
  const self = this;
99
158
  return {
100
159
  get current() { return self.getCurrent(key); },
101
160
  get promise() { return self.get(key); },
102
- get busy() { return self.getIsBusy(key); },
161
+ get isLoading() { return self.getIsBusy(key); },
103
162
  };
104
163
  }
164
+ /**
165
+ * Returns the loading state of an item.
166
+ *
167
+ * @param id The id of the item.
168
+ * @returns The loading state of the item: true if loading, false if loading completed, undefined if loading was not started yet for the specified key.
169
+ */
105
170
  getIsBusy(id) {
106
171
  const key = this._pk(id);
107
172
  const res = this._itemsStatus.get(key);
@@ -111,6 +176,11 @@ class PromiseCache extends loggable_js_1.Loggable {
111
176
  const isInvalid = this.getIsInvalidated(key);
112
177
  return isInvalid ? undefined : res;
113
178
  }
179
+ /**
180
+ * Returns the current cached value for the specified key, without triggering a fetch.
181
+ * @param id The id of the item.
182
+ * @returns The current cached value of the item.
183
+ */
114
184
  _getCurrent(id) {
115
185
  const key = this._pk(id);
116
186
  const isInvalid = this.getIsInvalidated(key);
@@ -125,6 +195,12 @@ class PromiseCache extends loggable_js_1.Loggable {
125
195
  isInvalid,
126
196
  };
127
197
  }
198
+ /**
199
+ * Returns the current cached value for the specified key, optionally triggering a fetch.
200
+ * @param id The id of the item.
201
+ * @param initiateFetch If true, will initiate a fetch if the item is not cached.
202
+ * @returns The current cached value of the item.
203
+ */
128
204
  getCurrent(id, initiateFetch = true) {
129
205
  const { item, key } = this._getCurrent(id);
130
206
  if (initiateFetch) {
@@ -134,6 +210,14 @@ class PromiseCache extends loggable_js_1.Loggable {
134
210
  this.logger.log(key, 'getCurrent: returns', item);
135
211
  return item;
136
212
  }
213
+ /**
214
+ * Returns a promise that resolves to the cached value of the item if loaded already, otherwise starts fetching and the promise will be resolved to the final value.
215
+ *
216
+ * Consequent calls will return the same promise until it resolves.
217
+ *
218
+ * @param id The id of the item.
219
+ * @returns A promise that resolves to the result, whether it's cached or freshly fetched.
220
+ */
137
221
  get(id) {
138
222
  const { item, key, isInvalid } = this._getCurrent(id);
139
223
  // return cached item if it's not invalidated
@@ -151,6 +235,12 @@ class PromiseCache extends loggable_js_1.Loggable {
151
235
  this.setPromise(key, promise);
152
236
  return promise;
153
237
  }
238
+ /**
239
+ * Fetches the item asynchronously.
240
+ * @param id The id of the item.
241
+ * @param key The cache key.
242
+ * @returns A promise that resolves to the fetched item.
243
+ */
154
244
  _doFetchAsync = async (id, key) => {
155
245
  let isInSameVersion = true;
156
246
  try {
@@ -178,14 +268,24 @@ class PromiseCache extends loggable_js_1.Loggable {
178
268
  }
179
269
  }
180
270
  };
271
+ /**
272
+ * Instantly invalidates the cached item for the specified id, like it was never fetched/accessed.
273
+ * @param id The id of the item.
274
+ */
181
275
  invalidate(id) {
182
276
  const key = this._pk(id);
183
277
  this._set(key, undefined, undefined, undefined);
184
278
  }
279
+ /**
280
+ * Updates the cached value for the specified id directly, like it was fetched already. Overrides existing value, if any.
281
+ * @param id The id of the item.
282
+ * @param value The new value to cache.
283
+ */
185
284
  updateValueDirectly(id, value) {
186
285
  const key = this._pk(id);
187
286
  this._set(key, value, undefined, undefined);
188
287
  }
288
+ /** Returns true if the item is cached or fetching was initiated. Does not initiates fetching. */
189
289
  hasKey(id) {
190
290
  const key = this._pk(id);
191
291
  return this._itemsCache.get(key) !== undefined || this._itemsStatus.get(key) !== undefined;
@@ -211,19 +311,26 @@ class PromiseCache extends loggable_js_1.Loggable {
211
311
  }
212
312
  })();
213
313
  }
314
+ /** Clears the cache and resets the loading state. */
214
315
  clear() {
215
316
  ++this._version;
216
- this._busyCount.value = 0;
317
+ this._loadingCount.value = 0;
217
318
  this._batch?.clear();
218
319
  this._itemsCache.clear();
219
320
  this._itemsStatus.clear();
220
321
  this._fetchCache.clear();
221
322
  }
323
+ /** @internal updates all caches states at once. */
222
324
  _set(key, item, promise, busy) {
223
325
  _setX(key, this._fetchCache, promise);
224
326
  _setX(key, this._itemsStatus, busy);
225
327
  _setX(key, this._itemsCache, item);
226
328
  }
329
+ /**
330
+ * Checks if the cached item for the specified key is invalidated (expired).
331
+ * @param key The cache key.
332
+ * @returns True if the item is invalidated, false otherwise.
333
+ */
227
334
  getIsInvalidated(key) {
228
335
  if (!this._invalidationTimeMs) {
229
336
  return false;
@@ -231,35 +338,35 @@ class PromiseCache extends loggable_js_1.Loggable {
231
338
  const ts = this._timestamps.get(key);
232
339
  return ts != null && Date.now() - ts > this._invalidationTimeMs;
233
340
  }
234
- /** @override */
341
+ /** Updates the loading status for the specified key. Override to add a hook. */
235
342
  setStatus(key, status) {
236
343
  this.logger.log(key, 'status update:', status);
237
344
  this._itemsStatus.set(key, status);
238
345
  }
239
- /** @override */
346
+ /** Updates the promise for the specified key. Override to add a hook. */
240
347
  setPromise(key, promise) {
241
348
  this._fetchCache.set(key, promise);
242
349
  }
243
- /** @override */
350
+ /** Stores the result for the specified key. Override to add a hook. */
244
351
  storeResult(key, res) {
245
352
  this._itemsCache.set(key, res);
246
353
  this._timestamps.set(key, Date.now());
247
354
  }
248
- /** @override */
355
+ /** Hooks into the fetch process before it starts. */
249
356
  onBeforeFetch(_key) {
250
- this._busyCount.value = this._busyCount.value + 1;
251
- }
252
- /** @override */
253
- prepareResult(res) {
254
- return res || null;
357
+ this._loadingCount.value = this._loadingCount.value + 1;
255
358
  }
256
- /** @override */
359
+ /** Hooks into the fetch process after it completes. */
257
360
  onFetchComplete(key) {
258
- this._busyCount.value = this._busyCount.value - 1;
361
+ this._loadingCount.value = this._loadingCount.value - 1;
259
362
  this._fetchCache.delete(key);
260
363
  this._itemsStatus.set(key, false);
261
364
  }
262
- /** @pure */
365
+ /** Hooks into the result preparation process, before it's stored into the cache. */
366
+ prepareResult(res) {
367
+ return res || null;
368
+ }
369
+ /** @pure Performs a fetch operation in batch mode if available, otherwise uses the regular fetch. */
263
370
  async tryFetchInBatch(id) {
264
371
  const fetchWrap = () => this.fetcher(id).catch(err => {
265
372
  this.logger.warn('fetcher failed', id, err);
@@ -1 +1 @@
1
- {"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,8 @@ exports.createPromiseProxy = createPromiseProxy;
4
4
  const promise_js_1 = require("../lazy/promise.js");
5
5
  const PromiseGetter = '__promise';
6
6
  /**
7
- * Creates a proxy object that will be resolved to the object returned by the loader function. // Thanks CoPilot for this comment :)
8
- *
9
- * @param loader a function returning a promise that resolves to a proxied object
10
- * @param fnKeys an array of keys that should be treated as functions so that they can be called before the object is resolved
11
- * @param wrap an object that will be used as a wrapper for the proxied object. can contain any fields that will be copied to the resolved object
7
+ * Creates a proxy object that will be resolved to the object returned by the loader function.
8
+ * @param options - Options for creating the proxy, see {@link Options}
12
9
  * @returns a proxy object that will be resolved to the object returned by the loader function
13
10
  */
14
11
  function createPromiseProxy(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"promiseProxy.js","sourceRoot":"","sources":["../../../src/structures/promiseProxy.ts"],"names":[],"mappings":";;AAmCA,gDAuFC;AA1HD,mDAAiD;AAGjD,MAAM,aAAa,GAAG,WAAW,CAAC;AAwBlC;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAC9B,OAAuD;IAEvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,wBAAW,EAAE,GAAG,OAAO,CAAC;IAEpE,gFAAgF;IAChF,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAG,CAA6B,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,IAAI,SAAS,GAAa,IAAI,CAAC;IAE/B,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;QAC5B,iBAAiB;QACjB,MAAM,MAAM,GAAM,MAAM,MAAM,EAAE,CAAC;QACjC,qCAAqC;QACrC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC7C,MAAM,EAAE,GAAG,GAAwB,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,GAAc,CAAC,GAAG,KAAmB,CAAC;YACjD,CAAC;QACL,CAAC,CAAC,CAAC;QACH,iEAAiE;QACjE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAA6B,CAAC;YACnD,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,SAAS,GAAG,MAAM,CAAC;QACnB,IAAI,SAAS,EAAE,CAAC;YACZ,oDAAoD;YACpD,IAAI,GAAG,IAAW,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;QAC7B,GAAG,CAAC,MAAM,EAAE,GAAG;YACX,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3C,CAAC;YAED,MAAM,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC3C,OAAO,MAAM,CAAC,GAA0B,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAA2B,CAAC,CAAC;gBACjD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,OAAQ,GAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,IAAI,MAAM,EAAE,QAAQ,CAAC,GAAc,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;oBACtB,aAAa,CAAC,GAAG,CAAC,GAAc,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC,GAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;YAClB,MAAM,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,GAA2B,CAAC,GAAG,KAAK,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAA0B,CAAC,GAAG,KAAK,CAAC;YAC/C,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,GAAG;YAChC,MAAM,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,MAAM;YACV,MAAM,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,KAAuD,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"promiseProxy.js","sourceRoot":"","sources":["../../../src/structures/promiseProxy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tempoCache.js","sourceRoot":"","sources":["../../../src/structures/tempoCache.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C;;;;EAIE;AACF,MAAa,UAAU;IAME;IAJb,QAAQ,GAAkB,SAAS,CAAC;IAE5B,OAAO,CAAgB;IAEvC,YAAqB,OAAgB,EAAE,UAAkB;QAApC,YAAO,GAAP,OAAO,CAAS;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAnBD,gCAmBC;AAED,uCAAuC;AACvC,WAAiB,UAAU;IAEvB,SAAS,aAAa,CAA+C,MAAS,EAAE,GAAM;QAClF,OAAO,GAAG,EAAE;YACR,yDAAyD;YACzD,+BAA+B;YAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;IACN,CAAC;IAED;;;;MAIE;IACF,SAAgB,cAAc,CAAI,IAAc,EAAE,UAAkB;QAChE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAHe,yBAAc,iBAG7B,CAAA;IAED;;;;MAIE;IACF,SAAgB,qBAAqB,CAAI,IAAqB,EAAE,UAAkB;QAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAHe,gCAAqB,wBAGpC,CAAA;AACL,CAAC,EA9BgB,UAAU,0BAAV,UAAU,QA8B1B"}
1
+ {"version":3,"file":"tempoCache.js","sourceRoot":"","sources":["../../../src/structures/tempoCache.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C;;;;EAIE;AACF,MAAa,UAAU;IAME;IAJb,QAAQ,GAAkB,SAAS,CAAC;IAE5B,OAAO,CAAgB;IAEvC,YAAqB,OAAgB,EAAE,UAAkB;QAApC,YAAO,GAAP,OAAO,CAAS;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,IAAW,OAAO;QACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAnBD,gCAmBC;AAED,uCAAuC;AACvC,WAAiB,UAAU;IAEvB,SAAS,aAAa,CAAgD,MAAS,EAAE,GAAM;QACnF,OAAO,GAAG,EAAE;YACR,yDAAyD;YACzD,+BAA+B;YAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;IACN,CAAC;IAED;;;;MAIE;IACF,SAAgB,cAAc,CAAI,IAAiC,EAAE,UAAkB;QACnF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAHe,yBAAc,iBAG7B,CAAA;IAED;;;;MAIE;IACF,SAAgB,qBAAqB,CAAI,IAAwC,EAAE,UAAkB;QACjG,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAHe,gCAAqB,wBAGpC,CAAA;AACL,CAAC,EA9BgB,UAAU,0BAAV,UAAU,QA8B1B"}
@@ -0,0 +1,45 @@
1
+ import { extendObject } from '../structures/extendObject.js';
2
+ export function createCacheExtension(storage) {
3
+ return {
4
+ overrideFactory: (original) => {
5
+ return async (refreshing) => {
6
+ if (!refreshing) {
7
+ // read cached value first
8
+ const cached = await storage.getValue();
9
+ if (cached != null) {
10
+ return cached;
11
+ }
12
+ }
13
+ const value = await original(refreshing);
14
+ // cache the fresh result
15
+ storage.setValue(value);
16
+ return value;
17
+ };
18
+ },
19
+ extendShape: (previous) => {
20
+ return extendObject(previous, {
21
+ cache: {
22
+ get: () => storage,
23
+ },
24
+ resetWithCache: {
25
+ value: () => {
26
+ storage.removeValue();
27
+ previous.reset();
28
+ },
29
+ },
30
+ setCachedInstance: {
31
+ value: (value) => {
32
+ if (value == null) {
33
+ storage.removeValue();
34
+ }
35
+ else {
36
+ storage.setValue(value);
37
+ }
38
+ return previous.setInstance(value);
39
+ },
40
+ },
41
+ });
42
+ },
43
+ };
44
+ }
45
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/lazy/extensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAa7D,MAAM,UAAU,oBAAoB,CAA8D,OAAiB;IAC/G,OAAO;QACH,eAAe,EAAE,CACb,QAA8C,EACR,EAAE;YACxC,OAAO,KAAK,EAAE,UAAoB,EAAc,EAAE;gBAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,0BAA0B;oBAC1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;wBACjB,OAAO,MAAM,CAAC;oBAClB,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEzC,yBAAyB;gBACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAExB,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;QACN,CAAC;QACD,WAAW,EAAE,CACT,QAA+C,EACjD,EAAE;YACA,OAAO,YAAY,CACf,QAAQ,EACR;gBACI,KAAK,EAAE;oBACH,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO;iBACrB;gBACD,cAAc,EAAE;oBACZ,KAAK,EAAE,GAAG,EAAE;wBACR,OAAO,CAAC,WAAW,EAAE,CAAC;wBACtB,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;iBACJ;gBACD,iBAAiB,EAAE;oBACf,KAAK,EAAE,CAAC,KAAQ,EAAE,EAAE;wBAChB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;4BAChB,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC1B,CAAC;6BAAM,CAAC;4BACJ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC5B,CAAC;wBAED,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACvC,CAAC;iBACJ;aACJ,CACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
package/esm/lazy/lazy.js CHANGED
@@ -1,8 +1,10 @@
1
+ import { tryDispose } from '../functions/disposer.js';
1
2
  export class Lazy {
2
3
  _factory;
3
4
  _instance = undefined;
4
5
  _expireTracker;
5
6
  _disposer;
7
+ _error = null;
6
8
  constructor(_factory) {
7
9
  this._factory = _factory;
8
10
  }
@@ -11,9 +13,8 @@ export class Lazy {
11
13
  this.ensureInstance();
12
14
  return this._instance;
13
15
  }
14
- get currentValue() {
15
- return this._instance;
16
- }
16
+ get currentValue() { return this._instance; }
17
+ get error() { return this._error; }
17
18
  /** Override me: additional way to make sure instance is valid */
18
19
  get isValid() {
19
20
  if (!this.hasValue) {
@@ -35,15 +36,6 @@ export class Lazy {
35
36
  this._expireTracker = tracker;
36
37
  return this;
37
38
  }
38
- ensureInstance() {
39
- if (this.isValid) {
40
- return;
41
- }
42
- // additional reset to make sure previous instance has been disposed
43
- this.reset();
44
- const res = this._factory();
45
- this.setInstance(res);
46
- }
47
39
  prewarm() {
48
40
  this.ensureInstance();
49
41
  return this;
@@ -55,11 +47,40 @@ export class Lazy {
55
47
  }
56
48
  }
57
49
  reset() {
58
- if (this.hasValue && this._instance && this._disposer) {
59
- this._disposer(this._instance);
50
+ if (this.hasValue && this._instance) {
51
+ if (this._disposer) {
52
+ this._disposer(this._instance);
53
+ }
54
+ else {
55
+ tryDispose(this._instance);
56
+ }
60
57
  }
61
58
  this.setInstance(undefined);
59
+ this._error = null;
62
60
  }
63
61
  dispose() { this.reset(); }
62
+ ensureInstance() {
63
+ if (this.isValid) {
64
+ return;
65
+ }
66
+ // additional reset to make sure previous instance has been disposed
67
+ this.reset();
68
+ try {
69
+ const res = this._factory();
70
+ this.setInstance(res);
71
+ }
72
+ catch (e) {
73
+ this._error = this.parseError(e);
74
+ }
75
+ }
76
+ parseError(err) {
77
+ if (typeof err === 'string') {
78
+ return err;
79
+ }
80
+ if (err instanceof Error) {
81
+ return err.message;
82
+ }
83
+ return String(err) || 'Unknown error';
84
+ }
64
85
  }
65
86
  //# sourceMappingURL=lazy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/lazy/lazy.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,IAAI;IAMkB;IAJrB,SAAS,GAAkB,SAAS,CAAC;IACvC,cAAc,CAA6B;IAC3C,SAAS,CAAqB;IAEtC,YAA+B,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;IAAI,CAAC;IAEvD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;IAEvD,IAAI,KAAK;QACL,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,iEAAiE;IACjE,IAAc,OAAO;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,QAA2B;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAAmC;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,cAAc;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,QAAuB;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/lazy/lazy.ts"],"names":[],"mappings":"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"}
package/esm/lazy/light.js CHANGED
@@ -1,17 +1,27 @@
1
1
  export function createLazy(factory) {
2
2
  const _factory = factory;
3
3
  let _instance = undefined;
4
+ let _error = null;
4
5
  const res = {
5
6
  get value() {
6
7
  if (_instance === undefined) {
7
- _instance = _factory();
8
+ _error = null;
9
+ try {
10
+ _instance = _factory();
11
+ }
12
+ catch (e) {
13
+ _error = e instanceof Error ? e.message : String(e);
14
+ throw e;
15
+ }
8
16
  }
9
17
  return _instance;
10
18
  },
11
19
  get currentValue() { return _instance; },
12
20
  get hasValue() { return _instance !== undefined; },
21
+ get error() { return _error; },
13
22
  reset: () => {
14
23
  _instance = undefined;
24
+ _error = null;
15
25
  },
16
26
  dispose: () => res.reset(),
17
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/lazy/light.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAI,OAAgB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,SAAS,GAAkB,SAAS,CAAC;IAEzC,MAAM,GAAG,GAAa;QAClB,IAAI,KAAK;YACL,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC3B,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,YAAY,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QAClD,KAAK,EAAE,GAAG,EAAE;YACR,SAAS,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;KAC7B,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/lazy/light.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,UAAU,CAAI,OAAgB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,IAAI,SAAS,GAAkB,SAAS,CAAC;IACzC,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,MAAM,GAAG,GAA8C;QACnD,IAAI,KAAK;YACL,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,CAAC;oBACD,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBAClB,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,CAAC;gBACZ,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,YAAY,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;QAC9B,KAAK,EAAE,GAAG,EAAE;YACR,SAAS,GAAG,SAAS,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;KAC7B,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC"}