@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.
- package/cjs/lazy/extensions.js +48 -0
- package/cjs/lazy/extensions.js.map +1 -0
- package/cjs/lazy/lazy.js +35 -14
- package/cjs/lazy/lazy.js.map +1 -1
- package/cjs/lazy/light.js +11 -1
- package/cjs/lazy/light.js.map +1 -1
- package/cjs/lazy/promise.js +139 -18
- package/cjs/lazy/promise.js.map +1 -1
- package/cjs/models/Loading.js.map +1 -1
- package/cjs/structures/extendObject.js +8 -0
- package/cjs/structures/extendObject.js.map +1 -0
- package/cjs/structures/path/utils/indexTrim.js +3 -3
- package/cjs/structures/path/utils/indexTrim.js.map +1 -1
- package/cjs/structures/promiseCache.js +126 -19
- package/cjs/structures/promiseCache.js.map +1 -1
- package/cjs/structures/promiseProxy.js +2 -5
- package/cjs/structures/promiseProxy.js.map +1 -1
- package/cjs/structures/tempoCache.js.map +1 -1
- package/esm/lazy/extensions.js +45 -0
- package/esm/lazy/extensions.js.map +1 -0
- package/esm/lazy/lazy.js +35 -14
- package/esm/lazy/lazy.js.map +1 -1
- package/esm/lazy/light.js +11 -1
- package/esm/lazy/light.js.map +1 -1
- package/esm/lazy/promise.js +139 -18
- package/esm/lazy/promise.js.map +1 -1
- package/esm/models/Loading.js.map +1 -1
- package/esm/structures/extendObject.js +5 -0
- package/esm/structures/extendObject.js.map +1 -0
- package/esm/structures/path/utils/indexTrim.js +3 -3
- package/esm/structures/path/utils/indexTrim.js.map +1 -1
- package/esm/structures/promiseCache.js +126 -19
- package/esm/structures/promiseCache.js.map +1 -1
- package/esm/structures/promiseProxy.js +2 -5
- package/esm/structures/promiseProxy.js.map +1 -1
- package/esm/structures/tempoCache.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/tsconfig.types.tsbuildinfo +1 -1
- package/types/lazy/extensions.d.ts +10 -0
- package/types/lazy/lazy.d.ts +8 -3
- package/types/lazy/light.d.ts +3 -1
- package/types/lazy/promise.d.ts +63 -10
- package/types/lazy/types.d.ts +106 -8
- package/types/models/Loading.d.ts +4 -4
- package/types/models/Model.d.ts +2 -2
- package/types/models/types.d.ts +1 -1
- package/types/structures/extendObject.d.ts +13 -0
- package/types/structures/path/utils/indexTrim.d.ts +2 -1
- package/types/structures/promiseCache.d.ts +127 -12
- package/types/structures/promiseProxy.d.ts +10 -6
- package/types/structures/tempoCache.d.ts +3 -2
package/esm/lazy/promise.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import { tryDispose } from '../functions/disposer.js';
|
|
1
2
|
export class LazyPromise {
|
|
2
3
|
_factory;
|
|
3
|
-
|
|
4
|
-
_instance
|
|
5
|
-
|
|
4
|
+
_initial;
|
|
5
|
+
_instance;
|
|
6
|
+
_isLoading = null;
|
|
6
7
|
_promise;
|
|
7
8
|
_expireTracker;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.
|
|
9
|
+
_lastRefreshingPromise = null;
|
|
10
|
+
_error = null;
|
|
11
|
+
constructor(factory, initial) {
|
|
12
|
+
this._factory = factory;
|
|
13
|
+
this._initial = initial;
|
|
14
|
+
this._instance = initial; // as ILazyValue<T, TInitial>;
|
|
12
15
|
}
|
|
13
|
-
get
|
|
14
|
-
get hasValue() { return this.
|
|
16
|
+
get isLoading() { return this._isLoading; }
|
|
17
|
+
get hasValue() { return this._isLoading === false; }
|
|
18
|
+
get error() { return this._error; }
|
|
15
19
|
get promise() {
|
|
16
20
|
this.ensureInstanceLoading();
|
|
17
21
|
return this._promise;
|
|
@@ -28,26 +32,94 @@ export class LazyPromise {
|
|
|
28
32
|
this._expireTracker = tracker;
|
|
29
33
|
return this;
|
|
30
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Extends this instance with additional functionality by applying extensions in place.
|
|
37
|
+
*
|
|
38
|
+
* **Capabilities:**
|
|
39
|
+
* - `overrideFactory`: Wrap the factory function (logging, retry, caching, etc.)
|
|
40
|
+
* - `extendShape`: Add custom properties/methods to the instance
|
|
41
|
+
*
|
|
42
|
+
* **Type Safety:**
|
|
43
|
+
* - Use `ILazyPromiseExtension<any>` for universal extensions
|
|
44
|
+
* - Use `ILazyPromiseExtension<ConcreteType>` for type-specific extensions (e.g., number-only)
|
|
45
|
+
*
|
|
46
|
+
* **Note:** Extensions mutate the instance and can be chained. Subclasses preserve their type.
|
|
47
|
+
*
|
|
48
|
+
* @param extension - Configuration with factory override and/or shape extensions
|
|
49
|
+
* @returns The same instance (this) with applied extensions
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // Universal logging extension
|
|
54
|
+
* const logged = lazy.extend({
|
|
55
|
+
* overrideFactory: (factory) => async (refreshing) => {
|
|
56
|
+
* console.log('Loading...');
|
|
57
|
+
* return await factory(refreshing);
|
|
58
|
+
* }
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* // Type-specific extension with custom methods
|
|
62
|
+
* const enhanced = lazyNumber.extend<{ double: () => number | undefined }>({
|
|
63
|
+
* extendShape: (instance) => Object.assign(instance, {
|
|
64
|
+
* double: () => instance.currentValue !== undefined
|
|
65
|
+
* ? instance.currentValue * 2
|
|
66
|
+
* : undefined
|
|
67
|
+
* })
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* // Chaining multiple extensions
|
|
71
|
+
* const composed = lazy
|
|
72
|
+
* .extend(cacheExtension)
|
|
73
|
+
* .extend(loggingExtension);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
extend(
|
|
77
|
+
// Partial allows extensions with extra properties beyond the interface
|
|
78
|
+
// 'any' type parameter doesn't affect return type since we return 'this'
|
|
79
|
+
extension) {
|
|
80
|
+
// Override the factory if provided
|
|
81
|
+
if (extension.overrideFactory) {
|
|
82
|
+
this._factory = extension.overrideFactory(this._factory, this);
|
|
83
|
+
}
|
|
84
|
+
// Apply shape extension if provided
|
|
85
|
+
if (extension.extendShape) {
|
|
86
|
+
return extension.extendShape(this);
|
|
87
|
+
}
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
31
90
|
ensureInstanceLoading() {
|
|
32
|
-
if (this.
|
|
91
|
+
if (this.isLoading === false && this._instance !== undefined && this._expireTracker?.isExpired) {
|
|
33
92
|
// do not reset the instance, just make sure it will be reloaded
|
|
34
|
-
this.
|
|
93
|
+
this._isLoading = null;
|
|
35
94
|
}
|
|
36
|
-
if (this.
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
95
|
+
if (this._isLoading === null) {
|
|
96
|
+
this._isLoading = true;
|
|
97
|
+
this.doLoad();
|
|
39
98
|
}
|
|
40
99
|
}
|
|
100
|
+
doLoad() {
|
|
101
|
+
this._promise = this._factory(false)
|
|
102
|
+
.then(this.onResolved.bind(this))
|
|
103
|
+
.catch(this.onRejected.bind(this));
|
|
104
|
+
}
|
|
41
105
|
onResolved(res) {
|
|
42
106
|
// case: during the promise `setInstance` was called
|
|
43
|
-
if (!this.
|
|
107
|
+
if (!this._isLoading && this._instance !== undefined) {
|
|
44
108
|
return this._instance;
|
|
45
109
|
}
|
|
46
110
|
this.setInstance(res);
|
|
47
111
|
return res;
|
|
48
112
|
}
|
|
113
|
+
onRejected(e) {
|
|
114
|
+
this._isLoading = false;
|
|
115
|
+
this._instance = this._initial;
|
|
116
|
+
this._promise = Promise.resolve(this._initial);
|
|
117
|
+
this.setError(e);
|
|
118
|
+
return this._initial;
|
|
119
|
+
}
|
|
49
120
|
setInstance(res) {
|
|
50
|
-
this.
|
|
121
|
+
this._isLoading = false;
|
|
122
|
+
this.clearError(); // clear error on successful set
|
|
51
123
|
// refresh promise so it won't keep old callbacks
|
|
52
124
|
// + make sure it's resolved with the freshest value
|
|
53
125
|
// also do this before setting the instance... just in case :)
|
|
@@ -58,13 +130,62 @@ export class LazyPromise {
|
|
|
58
130
|
}
|
|
59
131
|
return res;
|
|
60
132
|
}
|
|
133
|
+
setError(err) {
|
|
134
|
+
this._error = this.parseError(err);
|
|
135
|
+
}
|
|
136
|
+
clearError() {
|
|
137
|
+
this._error = null;
|
|
138
|
+
}
|
|
139
|
+
async refresh() {
|
|
140
|
+
let myPromise = null;
|
|
141
|
+
try {
|
|
142
|
+
myPromise = this._factory(true);
|
|
143
|
+
// every new refresh overrides the previous one
|
|
144
|
+
// so this one becomes "last"
|
|
145
|
+
// and previous becomes stale and won't update the value when it resolves
|
|
146
|
+
this._lastRefreshingPromise = myPromise;
|
|
147
|
+
const fresh = await myPromise;
|
|
148
|
+
if (this._lastRefreshingPromise === myPromise) {
|
|
149
|
+
this.setInstance(fresh);
|
|
150
|
+
}
|
|
151
|
+
return fresh;
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
this.setError(e);
|
|
155
|
+
return this._instance;
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
if (myPromise != null && this._lastRefreshingPromise === myPromise) {
|
|
159
|
+
this._lastRefreshingPromise = null;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
61
163
|
reset() {
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
164
|
+
this._isLoading = null;
|
|
165
|
+
this.clearError();
|
|
166
|
+
const wasDisposed = tryDispose(this._instance);
|
|
167
|
+
this._instance = this._initial;
|
|
168
|
+
const p = this._promise;
|
|
64
169
|
this._promise = undefined;
|
|
170
|
+
// check if loading is still in progress
|
|
171
|
+
// need to dispose abandoned value
|
|
172
|
+
if (p && !wasDisposed) {
|
|
173
|
+
p.then(value => {
|
|
174
|
+
tryDispose(value);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
65
177
|
}
|
|
66
178
|
dispose() {
|
|
67
179
|
this.reset();
|
|
68
180
|
}
|
|
181
|
+
parseError(err) {
|
|
182
|
+
if (typeof err === 'string') {
|
|
183
|
+
return err;
|
|
184
|
+
}
|
|
185
|
+
if (err instanceof Error) {
|
|
186
|
+
return err.message;
|
|
187
|
+
}
|
|
188
|
+
return String(err) || 'Unknown error';
|
|
189
|
+
}
|
|
69
190
|
}
|
|
70
191
|
//# sourceMappingURL=promise.js.map
|
package/esm/lazy/promise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../src/lazy/promise.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../src/lazy/promise.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../src/models/Loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAgB,KAA2B,EAAE,EAAoB,EAAE,YAA+B,KAAK;IACpI,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAEnB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG;SACd,CAAC;IACN,CAAC;YAAS,CAAC;QACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,YAAY;IAEF,OAAO,
|
|
1
|
+
{"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../src/models/Loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAgB,KAA2B,EAAE,EAAoB,EAAE,YAA+B,KAAK;IACpI,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAEnB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG;SACd,CAAC;IACN,CAAC;YAAS,CAAC;QACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,YAAY;IAEF,OAAO,CAAyC;IACzD,UAAU,CAAU;IAE9B;;OAEG;IACH,YAAY,YAAY,GAAG,KAAK;QAC5B,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhE,IAAW,KAAK,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9D,IAAW,KAAK,CAAC,CAAU;QACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU,CAAI,EAAoB,EAAE,YAA+B,KAAK;QAC3E,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEM,QAAQ,CAAC,SAAkB;QAC9B,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,kBAAkB;IACR,gBAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB;IACR,gBAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;0EAEsE;IAC5D,wBAAwB;QAC9B,OAAO,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAChC,CAAC;CACJ;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAIxB;IAFpB,YACI,OAAO,GAAG,yEAAyE,EACnE,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,eAAU,GAAV,UAAU,CAAS;IAGvC,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extendObject.js","sourceRoot":"","sources":["../../../src/structures/extendObject.ts"],"names":[],"mappings":"AAcA,qDAAqD;AACrD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,uBAAiD;IAEjD,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,CAAmB,CAAC;AAClF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function indexTrim(str, ch) {
|
|
2
|
-
if (!str || str === ch
|
|
2
|
+
if (!str || !ch || str === ch) {
|
|
3
3
|
return '';
|
|
4
4
|
}
|
|
5
5
|
let start = 0, end = str.length;
|
|
@@ -7,8 +7,8 @@ export function indexTrim(str, ch) {
|
|
|
7
7
|
++start;
|
|
8
8
|
while (end > start && str[end - 1] === ch)
|
|
9
9
|
--end;
|
|
10
|
-
return (start > 0 || end < str.length)
|
|
10
|
+
return ((start > 0 || end < str.length)
|
|
11
11
|
? str.substring(start, end)
|
|
12
|
-
: str;
|
|
12
|
+
: str);
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=indexTrim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexTrim.js","sourceRoot":"","sources":["../../../../../src/structures/path/utils/indexTrim.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"indexTrim.js","sourceRoot":"","sources":["../../../../../src/structures/path/utils/indexTrim.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,SAAS,CAAqC,GAAyB,EAAE,EAAK;IAC1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,GAAa,KAAK,EAAY,EAAE,CAAC;QAChD,OAAO,EAAoB,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAEhC,OAAO,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;QACnC,EAAE,KAAK,CAAC;IAEZ,OAAO,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE;QACrC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;QAC3B,CAAC,CAAC,GAAG,CAAmB,CAAC;AACjC,CAAC"}
|
|
@@ -4,17 +4,20 @@ import { Model } from '../models/Model.js';
|
|
|
4
4
|
export var DeferredGetter;
|
|
5
5
|
(function (DeferredGetter) {
|
|
6
6
|
const _resolvedPromise = Promise.resolve(null);
|
|
7
|
+
/** Empty resolved value. */
|
|
7
8
|
DeferredGetter.Empty = {
|
|
8
9
|
get current() { return null; },
|
|
9
10
|
get promise() { return _resolvedPromise; },
|
|
10
|
-
get
|
|
11
|
+
get isLoading() { return false; },
|
|
11
12
|
};
|
|
12
13
|
})(DeferredGetter || (DeferredGetter = {}));
|
|
13
14
|
const BATCHING_DELAY = 200;
|
|
14
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Caches items by a key (string or another type) which are resolved by an async fetcher (`Promise`).
|
|
15
17
|
*
|
|
16
18
|
* Supports:
|
|
17
19
|
* - custom key adapter and parser for non-string keys.
|
|
20
|
+
* - direct manual cache manipulation.
|
|
18
21
|
* - batching of fetches.
|
|
19
22
|
* - auto-invalidation of cached items.
|
|
20
23
|
*/
|
|
@@ -22,35 +25,78 @@ export class PromiseCache extends Loggable {
|
|
|
22
25
|
fetcher;
|
|
23
26
|
keyAdapter;
|
|
24
27
|
keyParser;
|
|
28
|
+
/** Stores resolved items in map by id. */
|
|
25
29
|
_itemsCache;
|
|
30
|
+
/** Stores items loading state (loading or not) in map by id. */
|
|
26
31
|
_itemsStatus;
|
|
27
|
-
|
|
32
|
+
/** Stores items loading count. */
|
|
33
|
+
_loadingCount;
|
|
34
|
+
/** Stores items Promises state (if still loading) in map by id. */
|
|
28
35
|
_fetchCache;
|
|
36
|
+
/** Stores items resolve timestamps (for expiration) in map by id. */
|
|
29
37
|
_timestamps = new Map();
|
|
30
38
|
_batch = null;
|
|
31
39
|
_invalidationTimeMs = null;
|
|
32
40
|
_keepInstanceDuringInvalidation = false;
|
|
33
41
|
_version = 0;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an instance of PromiseCache.
|
|
44
|
+
* @param fetcher Function to fetch data by key.
|
|
45
|
+
* @param keyAdapter Optional function to adapt non-string keys to strings.
|
|
46
|
+
* @param keyParser Optional function to parse string keys back to their original type.
|
|
47
|
+
*/
|
|
34
48
|
constructor(fetcher, keyAdapter, keyParser) {
|
|
35
49
|
super();
|
|
36
50
|
this.fetcher = fetcher;
|
|
37
51
|
this.keyAdapter = keyAdapter;
|
|
38
52
|
this.keyParser = keyParser;
|
|
39
|
-
this.
|
|
53
|
+
this._loadingCount = this.pure_createBusyCount();
|
|
40
54
|
this._itemsCache = this.pure_createItemsCache();
|
|
41
55
|
this._itemsStatus = this.pure_createItemsStatus();
|
|
42
56
|
this._fetchCache = this.pure_createFetchCache();
|
|
43
57
|
}
|
|
44
|
-
get busyCount() { return this.
|
|
58
|
+
get busyCount() { return this._loadingCount.value; }
|
|
59
|
+
/**
|
|
60
|
+
* @pure @const
|
|
61
|
+
* Creates a model for tracking the loading state. Override to inject own instance, e.g. for observability.
|
|
62
|
+
*
|
|
63
|
+
* Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
|
|
64
|
+
*
|
|
65
|
+
* @returns A value model for the loading count.
|
|
66
|
+
*/
|
|
45
67
|
pure_createBusyCount() {
|
|
46
68
|
return new Model(0);
|
|
47
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* @pure @const
|
|
72
|
+
* Creates a map for caching resolved items by id. Override to inject own instance, e.g. for observability.
|
|
73
|
+
*
|
|
74
|
+
* Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
|
|
75
|
+
*
|
|
76
|
+
* @returns A map model for the items cache.
|
|
77
|
+
*/
|
|
48
78
|
pure_createItemsCache() {
|
|
49
79
|
return new Map();
|
|
50
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* @pure @const
|
|
83
|
+
* Creates a map for tracking the loading state of items by id. Override to inject own instance, e.g. for observability.
|
|
84
|
+
*
|
|
85
|
+
* Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
|
|
86
|
+
*
|
|
87
|
+
* @returns A map model for the items loading state.
|
|
88
|
+
*/
|
|
51
89
|
pure_createItemsStatus() {
|
|
52
90
|
return new Map();
|
|
53
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* @pure @const
|
|
94
|
+
* Creates a map for caching promises of items by id. Override to inject own instance, e.g. for observability.
|
|
95
|
+
*
|
|
96
|
+
* Warning: as name indicates, this should be "pure"/"const" function, i.e. should not reference `this`/`super`.
|
|
97
|
+
*
|
|
98
|
+
* @returns A map model for the items promises cache.
|
|
99
|
+
*/
|
|
54
100
|
pure_createFetchCache() {
|
|
55
101
|
return new Map();
|
|
56
102
|
}
|
|
@@ -66,6 +112,11 @@ export class PromiseCache extends Loggable {
|
|
|
66
112
|
}
|
|
67
113
|
return this.keyAdapter(k);
|
|
68
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Creates a logger name for this instance.
|
|
117
|
+
* @param name The name of the cache instance.
|
|
118
|
+
* @returns The logger name.
|
|
119
|
+
*/
|
|
69
120
|
getLoggerName(name) {
|
|
70
121
|
return `[PromiseCache:${name || '?'}]`;
|
|
71
122
|
}
|
|
@@ -84,21 +135,35 @@ export class PromiseCache extends Loggable {
|
|
|
84
135
|
* Enables auto-invalidation of cached items.
|
|
85
136
|
*
|
|
86
137
|
* @param ms Time in milliseconds after which the item will be considered invalid. If null, auto-invalidation is disabled.
|
|
138
|
+
* @param keepInstance If true, the cached item will not be removed during invalidation, but will be set to `undefined` instead. Defaults to false.
|
|
87
139
|
*/
|
|
88
140
|
useInvalidationTime(ms, keepInstance = false) {
|
|
89
141
|
this._invalidationTimeMs = ms;
|
|
90
142
|
this._keepInstanceDuringInvalidation = keepInstance;
|
|
91
143
|
return this;
|
|
92
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Returns a {@link DeferredGetter} object for a specfied key.
|
|
147
|
+
*
|
|
148
|
+
* This can be used to access the current value, promise, and loading state of the item.
|
|
149
|
+
*
|
|
150
|
+
* @param key The key of the item.
|
|
151
|
+
*/
|
|
93
152
|
getDeferred(key) {
|
|
94
153
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
95
154
|
const self = this;
|
|
96
155
|
return {
|
|
97
156
|
get current() { return self.getCurrent(key); },
|
|
98
157
|
get promise() { return self.get(key); },
|
|
99
|
-
get
|
|
158
|
+
get isLoading() { return self.getIsBusy(key); },
|
|
100
159
|
};
|
|
101
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Returns the loading state of an item.
|
|
163
|
+
*
|
|
164
|
+
* @param id The id of the item.
|
|
165
|
+
* @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.
|
|
166
|
+
*/
|
|
102
167
|
getIsBusy(id) {
|
|
103
168
|
const key = this._pk(id);
|
|
104
169
|
const res = this._itemsStatus.get(key);
|
|
@@ -108,6 +173,11 @@ export class PromiseCache extends Loggable {
|
|
|
108
173
|
const isInvalid = this.getIsInvalidated(key);
|
|
109
174
|
return isInvalid ? undefined : res;
|
|
110
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Returns the current cached value for the specified key, without triggering a fetch.
|
|
178
|
+
* @param id The id of the item.
|
|
179
|
+
* @returns The current cached value of the item.
|
|
180
|
+
*/
|
|
111
181
|
_getCurrent(id) {
|
|
112
182
|
const key = this._pk(id);
|
|
113
183
|
const isInvalid = this.getIsInvalidated(key);
|
|
@@ -122,6 +192,12 @@ export class PromiseCache extends Loggable {
|
|
|
122
192
|
isInvalid,
|
|
123
193
|
};
|
|
124
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Returns the current cached value for the specified key, optionally triggering a fetch.
|
|
197
|
+
* @param id The id of the item.
|
|
198
|
+
* @param initiateFetch If true, will initiate a fetch if the item is not cached.
|
|
199
|
+
* @returns The current cached value of the item.
|
|
200
|
+
*/
|
|
125
201
|
getCurrent(id, initiateFetch = true) {
|
|
126
202
|
const { item, key } = this._getCurrent(id);
|
|
127
203
|
if (initiateFetch) {
|
|
@@ -131,6 +207,14 @@ export class PromiseCache extends Loggable {
|
|
|
131
207
|
this.logger.log(key, 'getCurrent: returns', item);
|
|
132
208
|
return item;
|
|
133
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* 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.
|
|
212
|
+
*
|
|
213
|
+
* Consequent calls will return the same promise until it resolves.
|
|
214
|
+
*
|
|
215
|
+
* @param id The id of the item.
|
|
216
|
+
* @returns A promise that resolves to the result, whether it's cached or freshly fetched.
|
|
217
|
+
*/
|
|
134
218
|
get(id) {
|
|
135
219
|
const { item, key, isInvalid } = this._getCurrent(id);
|
|
136
220
|
// return cached item if it's not invalidated
|
|
@@ -148,6 +232,12 @@ export class PromiseCache extends Loggable {
|
|
|
148
232
|
this.setPromise(key, promise);
|
|
149
233
|
return promise;
|
|
150
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Fetches the item asynchronously.
|
|
237
|
+
* @param id The id of the item.
|
|
238
|
+
* @param key The cache key.
|
|
239
|
+
* @returns A promise that resolves to the fetched item.
|
|
240
|
+
*/
|
|
151
241
|
_doFetchAsync = async (id, key) => {
|
|
152
242
|
let isInSameVersion = true;
|
|
153
243
|
try {
|
|
@@ -175,14 +265,24 @@ export class PromiseCache extends Loggable {
|
|
|
175
265
|
}
|
|
176
266
|
}
|
|
177
267
|
};
|
|
268
|
+
/**
|
|
269
|
+
* Instantly invalidates the cached item for the specified id, like it was never fetched/accessed.
|
|
270
|
+
* @param id The id of the item.
|
|
271
|
+
*/
|
|
178
272
|
invalidate(id) {
|
|
179
273
|
const key = this._pk(id);
|
|
180
274
|
this._set(key, undefined, undefined, undefined);
|
|
181
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Updates the cached value for the specified id directly, like it was fetched already. Overrides existing value, if any.
|
|
278
|
+
* @param id The id of the item.
|
|
279
|
+
* @param value The new value to cache.
|
|
280
|
+
*/
|
|
182
281
|
updateValueDirectly(id, value) {
|
|
183
282
|
const key = this._pk(id);
|
|
184
283
|
this._set(key, value, undefined, undefined);
|
|
185
284
|
}
|
|
285
|
+
/** Returns true if the item is cached or fetching was initiated. Does not initiates fetching. */
|
|
186
286
|
hasKey(id) {
|
|
187
287
|
const key = this._pk(id);
|
|
188
288
|
return this._itemsCache.get(key) !== undefined || this._itemsStatus.get(key) !== undefined;
|
|
@@ -208,19 +308,26 @@ export class PromiseCache extends Loggable {
|
|
|
208
308
|
}
|
|
209
309
|
})();
|
|
210
310
|
}
|
|
311
|
+
/** Clears the cache and resets the loading state. */
|
|
211
312
|
clear() {
|
|
212
313
|
++this._version;
|
|
213
|
-
this.
|
|
314
|
+
this._loadingCount.value = 0;
|
|
214
315
|
this._batch?.clear();
|
|
215
316
|
this._itemsCache.clear();
|
|
216
317
|
this._itemsStatus.clear();
|
|
217
318
|
this._fetchCache.clear();
|
|
218
319
|
}
|
|
320
|
+
/** @internal updates all caches states at once. */
|
|
219
321
|
_set(key, item, promise, busy) {
|
|
220
322
|
_setX(key, this._fetchCache, promise);
|
|
221
323
|
_setX(key, this._itemsStatus, busy);
|
|
222
324
|
_setX(key, this._itemsCache, item);
|
|
223
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* Checks if the cached item for the specified key is invalidated (expired).
|
|
328
|
+
* @param key The cache key.
|
|
329
|
+
* @returns True if the item is invalidated, false otherwise.
|
|
330
|
+
*/
|
|
224
331
|
getIsInvalidated(key) {
|
|
225
332
|
if (!this._invalidationTimeMs) {
|
|
226
333
|
return false;
|
|
@@ -228,35 +335,35 @@ export class PromiseCache extends Loggable {
|
|
|
228
335
|
const ts = this._timestamps.get(key);
|
|
229
336
|
return ts != null && Date.now() - ts > this._invalidationTimeMs;
|
|
230
337
|
}
|
|
231
|
-
/**
|
|
338
|
+
/** Updates the loading status for the specified key. Override to add a hook. */
|
|
232
339
|
setStatus(key, status) {
|
|
233
340
|
this.logger.log(key, 'status update:', status);
|
|
234
341
|
this._itemsStatus.set(key, status);
|
|
235
342
|
}
|
|
236
|
-
/**
|
|
343
|
+
/** Updates the promise for the specified key. Override to add a hook. */
|
|
237
344
|
setPromise(key, promise) {
|
|
238
345
|
this._fetchCache.set(key, promise);
|
|
239
346
|
}
|
|
240
|
-
/**
|
|
347
|
+
/** Stores the result for the specified key. Override to add a hook. */
|
|
241
348
|
storeResult(key, res) {
|
|
242
349
|
this._itemsCache.set(key, res);
|
|
243
350
|
this._timestamps.set(key, Date.now());
|
|
244
351
|
}
|
|
245
|
-
/**
|
|
352
|
+
/** Hooks into the fetch process before it starts. */
|
|
246
353
|
onBeforeFetch(_key) {
|
|
247
|
-
this.
|
|
248
|
-
}
|
|
249
|
-
/** @override */
|
|
250
|
-
prepareResult(res) {
|
|
251
|
-
return res || null;
|
|
354
|
+
this._loadingCount.value = this._loadingCount.value + 1;
|
|
252
355
|
}
|
|
253
|
-
/**
|
|
356
|
+
/** Hooks into the fetch process after it completes. */
|
|
254
357
|
onFetchComplete(key) {
|
|
255
|
-
this.
|
|
358
|
+
this._loadingCount.value = this._loadingCount.value - 1;
|
|
256
359
|
this._fetchCache.delete(key);
|
|
257
360
|
this._itemsStatus.set(key, false);
|
|
258
361
|
}
|
|
259
|
-
/**
|
|
362
|
+
/** Hooks into the result preparation process, before it's stored into the cache. */
|
|
363
|
+
prepareResult(res) {
|
|
364
|
+
return res || null;
|
|
365
|
+
}
|
|
366
|
+
/** @pure Performs a fetch operation in batch mode if available, otherwise uses the regular fetch. */
|
|
260
367
|
async tryFetchInBatch(id) {
|
|
261
368
|
const fetchWrap = () => this.fetcher(id).catch(err => {
|
|
262
369
|
this.logger.warn('fetcher failed', id, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../../src/structures/promiseCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { LazyPromise } from '../lazy/promise.js';
|
|
2
2
|
const PromiseGetter = '__promise';
|
|
3
3
|
/**
|
|
4
|
-
* Creates a proxy object that will be resolved to the object returned by the loader function.
|
|
5
|
-
*
|
|
6
|
-
* @param loader a function returning a promise that resolves to a proxied object
|
|
7
|
-
* @param fnKeys an array of keys that should be treated as functions so that they can be called before the object is resolved
|
|
8
|
-
* @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
|
|
4
|
+
* Creates a proxy object that will be resolved to the object returned by the loader function.
|
|
5
|
+
* @param options - Options for creating the proxy, see {@link Options}
|
|
9
6
|
* @returns a proxy object that will be resolved to the object returned by the loader function
|
|
10
7
|
*/
|
|
11
8
|
export function createPromiseProxy(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseProxy.js","sourceRoot":"","sources":["../../../src/structures/promiseProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,aAAa,GAAG,WAAW,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,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;EAIE;AACF,MAAM,OAAO,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,aAAa,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;AAED,uCAAuC;AACvC,WAAiB,UAAU;IAEvB,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"tempoCache.js","sourceRoot":"","sources":["../../../src/structures/tempoCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;EAIE;AACF,MAAM,OAAO,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,aAAa,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;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,KAAV,UAAU,QA8B1B"}
|