@zajno/common 2.3.16 → 2.3.18
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/api/call.js +1 -1
- package/api/call.js.map +1 -1
- package/functions/throttle.d.ts +19 -7
- package/functions/throttle.d.ts.map +1 -1
- package/functions/throttle.js +54 -40
- package/functions/throttle.js.map +1 -1
- package/lazy/light.d.ts +2 -8
- package/lazy/light.d.ts.map +1 -1
- package/lazy/light.js +1 -0
- package/lazy/light.js.map +1 -1
- package/lazy/promise.d.ts +9 -9
- package/lazy/promise.d.ts.map +1 -1
- package/lazy/promise.js +22 -6
- package/lazy/promise.js.map +1 -1
- package/lazy/singleton.d.ts +11 -7
- package/lazy/singleton.d.ts.map +1 -1
- package/lazy/singleton.js +33 -8
- package/lazy/singleton.js.map +1 -1
- package/lazy/types.d.ts +13 -0
- package/lazy/types.d.ts.map +1 -0
- package/lazy/types.js +3 -0
- package/lazy/types.js.map +1 -0
- package/models/Model.d.ts +2 -2
- package/models/Model.d.ts.map +1 -1
- package/models/Model.js +4 -4
- package/models/Model.js.map +1 -1
- package/package.json +1 -1
- package/structures/expire.d.ts +14 -0
- package/structures/expire.d.ts.map +1 -0
- package/structures/expire.js +22 -0
- package/structures/expire.js.map +1 -0
- package/structures/promiseCache.d.ts +1 -1
- package/structures/promiseCache.d.ts.map +1 -1
- package/structures/promiseCache.js +2 -2
- package/structures/promiseCache.js.map +1 -1
- package/structures/tempoCache.d.ts +22 -2
- package/structures/tempoCache.d.ts.map +1 -1
- package/structures/tempoCache.js +41 -5
- package/structures/tempoCache.js.map +1 -1
- package/validation/throwers.d.ts +1 -0
- package/validation/throwers.d.ts.map +1 -1
- package/validation/throwers.js +8 -4
- package/validation/throwers.js.map +1 -1
package/api/call.js
CHANGED
|
@@ -55,7 +55,7 @@ function buildApiCaller(options) {
|
|
|
55
55
|
config.headers['Content-Type'] = 'multipart/form-data';
|
|
56
56
|
}
|
|
57
57
|
const response = await request(config);
|
|
58
|
-
return register_1.PostProcessors.process(api, response
|
|
58
|
+
return register_1.PostProcessors.process(api, response?.data);
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
exports.buildApiCaller = buildApiCaller;
|
package/api/call.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":";;;AAAA,yCAA2D;AAK3D,uCAAoC;AAuCpC,SAAgB,cAAc,CAA8C,OAA8B;IAEtG,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5C,OAAO,KAAK,UAAU,OAAO,CACzB,GAAM,EACN,IAAyB,EACzB,KAAyB;QAMzB,MAAM,EACF,OAAO,EACP,GAAG,GAAG,KAAK,EACX,QAAQ,EACR,GAAG,SAAS,EACf,GAAG,KAAK,IAAI,EAAE,CAAC;QAEhB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAS,CAAC;QAC/C,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,IAAI,QAAQ,GAAW,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,IAAI,WAAW,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,UAAU,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC;QACxC,IAAI,WAAW,IAAI,iBAAiB,EAAE,MAAM,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACZ,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrB,KAAK,GAAG,KAAK,CAAC;gBAClB,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;gBAChD,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;YAClE,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,MAAM,GAAyC;YACjD,MAAM;YACN,GAAG,EAAE,IAAA,iBAAO,EAAC,GAAG,EAAE,UAA0C,CAAC,GAAG,QAAQ;YACxE,IAAI,EAAE,wBAAa,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,SAAS;YAC1D,OAAO,EAAE,OAAoB,IAAI,EAAE;YACnC,IAAI,EAAE,GAAG;YAET,SAAS,EAAE,QAAQ,IAAI,MAAgB,KAAK,KAAK;YACjD,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,SAAmB;SAC9B,CAAC;QAEF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,qBAAqB,CAAC;QAC3D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAmB,CAAC;QACzD,OAAO,yBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/api/call.ts"],"names":[],"mappings":"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"}
|
package/functions/throttle.d.ts
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
|
+
import { ILogger } from '../logger';
|
|
1
2
|
/** Runs a callback after a timeout, ignoring all consecutive calls until the first is processed. */
|
|
2
3
|
export declare class ThrottleAction<T = any> {
|
|
3
4
|
timeout: number;
|
|
4
5
|
private _timeoutRef;
|
|
5
6
|
private _postponedCb;
|
|
6
7
|
private _locked;
|
|
7
|
-
private
|
|
8
|
+
private _logger;
|
|
9
|
+
/**
|
|
10
|
+
* In case previous action has started processing but not finished yet, and the following one is going to start,
|
|
11
|
+
* this flag allows to run the second in parallel.
|
|
12
|
+
*/
|
|
13
|
+
private _allowParallelRuns;
|
|
14
|
+
private _currentRun;
|
|
8
15
|
constructor(timeout?: number);
|
|
16
|
+
useParallelRuns(): this;
|
|
17
|
+
useLogger(logger: ILogger | string | null): this;
|
|
9
18
|
clear(): void;
|
|
10
|
-
tryRun(cb: () => T | Promise<T>, restartTimeout?: boolean):
|
|
19
|
+
tryRun(cb: () => T | Promise<T>, restartTimeout?: boolean): Promise<T | undefined>;
|
|
11
20
|
forceRun: () => Promise<T | undefined>;
|
|
12
|
-
getPromise(): Promise<
|
|
21
|
+
getPromise(): Promise<T | undefined>;
|
|
13
22
|
}
|
|
23
|
+
type ProcessorResult<T> = {
|
|
24
|
+
result: T | undefined;
|
|
25
|
+
index: number;
|
|
26
|
+
};
|
|
14
27
|
export declare class ThrottleProcessor<TSubject, TResult = any> {
|
|
15
28
|
private readonly process;
|
|
16
29
|
private readonly _queue;
|
|
17
30
|
private readonly _action;
|
|
18
31
|
private _promise;
|
|
19
32
|
constructor(process: (objs: TSubject[]) => Promise<TResult>, timeout?: number);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
index: number;
|
|
23
|
-
}>;
|
|
33
|
+
useLogger(logger: ILogger | string | null): this;
|
|
34
|
+
push(data: TSubject): Promise<ProcessorResult<TResult>>;
|
|
24
35
|
private _process;
|
|
25
36
|
clear(): void;
|
|
26
37
|
}
|
|
38
|
+
export {};
|
|
27
39
|
//# sourceMappingURL=throttle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAC;AAMlD,qGAAqG;AACrG,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG;IAeZ,OAAO;IAb1B,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;QAGI;IACJ,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,WAAW,CAA6C;gBAE7C,OAAO,SAAO;IAE1B,eAAe;IAKf,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAShD,KAAK;IAQL,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAsBhF,QAAQ,+BA8BN;IAEF,UAAU;CAGb;AAED,KAAK,eAAe,CAAC,CAAC,IAAI;IAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,qBAAa,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG;IAOtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D,OAAO,CAAC,QAAQ,CAAuC;gBAE1B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,SAAO;IASrF,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAK1C,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAW7D,OAAO,CAAC,QAAQ,CASd;IAEF,KAAK;CAKR"}
|
package/functions/throttle.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ThrottleProcessor = exports.ThrottleAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const misc_1 = require("../async/misc");
|
|
6
|
-
const logger_1 =
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
const math_1 = require("../math");
|
|
7
7
|
const safe_1 = require("./safe");
|
|
8
8
|
/** Runs a callback after a timeout, ignoring all consecutive calls until the first is processed. */
|
|
9
9
|
class ThrottleAction {
|
|
@@ -11,10 +11,29 @@ class ThrottleAction {
|
|
|
11
11
|
_timeoutRef = null;
|
|
12
12
|
_postponedCb = null;
|
|
13
13
|
_locked = false;
|
|
14
|
-
|
|
14
|
+
_logger = null;
|
|
15
|
+
/**
|
|
16
|
+
* In case previous action has started processing but not finished yet, and the following one is going to start,
|
|
17
|
+
* this flag allows to run the second in parallel.
|
|
18
|
+
*/
|
|
19
|
+
_allowParallelRuns = false;
|
|
20
|
+
_currentRun = null;
|
|
15
21
|
constructor(timeout = 1000) {
|
|
16
22
|
this.timeout = timeout;
|
|
17
23
|
}
|
|
24
|
+
useParallelRuns() {
|
|
25
|
+
this._allowParallelRuns = true;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
useLogger(logger) {
|
|
29
|
+
if (typeof logger === 'string') {
|
|
30
|
+
this._logger = (0, logger_1.createLogger)(logger);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this._logger = logger;
|
|
34
|
+
}
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
18
37
|
clear() {
|
|
19
38
|
if (this._timeoutRef) {
|
|
20
39
|
clearTimeout(this._timeoutRef);
|
|
@@ -23,51 +42,55 @@ class ThrottleAction {
|
|
|
23
42
|
this._postponedCb = null;
|
|
24
43
|
}
|
|
25
44
|
tryRun(cb, restartTimeout = false) {
|
|
26
|
-
if (!this._timeoutRef) {
|
|
45
|
+
if (!this._timeoutRef) { // start new timeout
|
|
46
|
+
if (!this._currentRun) {
|
|
47
|
+
this._currentRun = (0, misc_1.createManualPromise)();
|
|
48
|
+
}
|
|
49
|
+
const result = this._currentRun.promise;
|
|
27
50
|
this._postponedCb = cb;
|
|
28
51
|
this._timeoutRef = setTimeout(() => (0, safe_1.catchPromise)(this.forceRun()), this.timeout);
|
|
29
|
-
|
|
52
|
+
return result;
|
|
30
53
|
}
|
|
31
|
-
|
|
54
|
+
if (restartTimeout) {
|
|
32
55
|
this.clear();
|
|
33
|
-
this.tryRun(cb);
|
|
56
|
+
return this.tryRun(cb, false);
|
|
34
57
|
}
|
|
58
|
+
return this.getPromise();
|
|
35
59
|
}
|
|
36
60
|
forceRun = async () => {
|
|
37
61
|
const cb = this._postponedCb;
|
|
62
|
+
const p = this._currentRun;
|
|
63
|
+
this._currentRun = null;
|
|
38
64
|
this.clear();
|
|
39
|
-
if (this._locked) {
|
|
65
|
+
if (!this._allowParallelRuns && this._locked) {
|
|
40
66
|
// This happening when the previous call is still running, while the new one has finished its timeout and is willing to run.
|
|
41
67
|
// This is probably OK since the running call should cover the current one.
|
|
42
68
|
// TODO Maybe just don't start timeout if the lock is set?
|
|
43
69
|
// The reason for not doing that 👆 is there's still a valid case when previous is still working but it's legit to start a new one (e.g. some state has changed already)
|
|
44
|
-
|
|
70
|
+
this._logger?.warn('[ThrottleAction] THROTTLE LOCKED, but another call is forced. Skipping since the behavior is undefined.');
|
|
45
71
|
}
|
|
46
72
|
else if (cb) {
|
|
47
73
|
let result = undefined;
|
|
74
|
+
const lockId = (0, math_1.random)(1, 1_000_000);
|
|
48
75
|
try {
|
|
49
|
-
this._locked =
|
|
76
|
+
this._locked = lockId;
|
|
50
77
|
result = await cb();
|
|
78
|
+
p?.resolve(result);
|
|
51
79
|
return result;
|
|
52
80
|
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
p?.reject(err);
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
53
85
|
finally {
|
|
54
|
-
this._locked
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// logger.log('getPromise: resolving', resolvers.length);
|
|
58
|
-
resolvers.forEach(r => r(result));
|
|
86
|
+
if (this._locked === lockId) {
|
|
87
|
+
this._locked = false;
|
|
88
|
+
}
|
|
59
89
|
}
|
|
60
90
|
}
|
|
61
91
|
};
|
|
62
92
|
getPromise() {
|
|
63
|
-
|
|
64
|
-
// logger.log('getPromise: nothing to wait for');
|
|
65
|
-
return Promise.resolve();
|
|
66
|
-
}
|
|
67
|
-
return new Promise(resolve => {
|
|
68
|
-
// logger.log('getPromise: adding resolver');
|
|
69
|
-
this._resolvers.push(resolve);
|
|
70
|
-
});
|
|
93
|
+
return this._currentRun?.promise || Promise.resolve(undefined);
|
|
71
94
|
}
|
|
72
95
|
}
|
|
73
96
|
exports.ThrottleAction = ThrottleAction;
|
|
@@ -81,16 +104,16 @@ class ThrottleProcessor {
|
|
|
81
104
|
if (!process) {
|
|
82
105
|
throw new Error('Arg0 expected: process');
|
|
83
106
|
}
|
|
84
|
-
this._action = new ThrottleAction(timeout)
|
|
107
|
+
this._action = new ThrottleAction(timeout)
|
|
108
|
+
.useParallelRuns();
|
|
109
|
+
}
|
|
110
|
+
useLogger(logger) {
|
|
111
|
+
this._action.useLogger(logger);
|
|
112
|
+
return this;
|
|
85
113
|
}
|
|
86
114
|
async push(data) {
|
|
87
115
|
const index = this._queue.push(data) - 1;
|
|
88
|
-
|
|
89
|
-
this._promise = (0, misc_1.createManualPromise)();
|
|
90
|
-
}
|
|
91
|
-
const p = this._promise.promise;
|
|
92
|
-
this._action.tryRun(this._process, true);
|
|
93
|
-
const res = await p;
|
|
116
|
+
const res = await this._action.tryRun(this._process, true);
|
|
94
117
|
return {
|
|
95
118
|
result: res,
|
|
96
119
|
index,
|
|
@@ -102,16 +125,7 @@ class ThrottleProcessor {
|
|
|
102
125
|
}
|
|
103
126
|
const objs = this._queue.slice();
|
|
104
127
|
this._queue.length = 0;
|
|
105
|
-
|
|
106
|
-
const res = await this.process(objs);
|
|
107
|
-
this._promise?.resolve(res);
|
|
108
|
-
}
|
|
109
|
-
catch (err) {
|
|
110
|
-
this._promise?.reject(err);
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
this._promise = null;
|
|
114
|
-
}
|
|
128
|
+
return this.process(objs);
|
|
115
129
|
};
|
|
116
130
|
clear() {
|
|
117
131
|
this._action.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"throttle.js","sourceRoot":"","sources":["../../src/functions/throttle.ts"],"names":[],"mappings":";;;AAAA,wCAAmE;AACnE,sCAAkD;AAClD,kCAAiC;AACjC,iCAAsC;AAItC,qGAAqG;AACrG,MAAa,cAAc;IAeJ;IAbX,WAAW,GAAyC,IAAI,CAAC;IACzD,YAAY,GAAuB,IAAI,CAAC;IACxC,OAAO,GAAmB,KAAK,CAAC;IAChC,OAAO,GAAmB,IAAI,CAAC;IAEvC;;;QAGI;IACI,kBAAkB,GAAG,KAAK,CAAC;IAE3B,WAAW,GAAwC,IAAI,CAAC;IAEhE,YAAmB,UAAU,IAAI;QAAd,YAAO,GAAP,OAAO,CAAO;IAAI,CAAC;IAE/B,eAAe;QAClB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,EAAwB,EAAE,cAAc,GAAG,KAAK;QACnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,oBAAoB;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAG,IAAA,0BAAmB,GAAiB,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAExC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAA,mBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjF,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,GAAG,KAAK,IAAI,EAAE;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,4HAA4H;YAC5H,2EAA2E;YAC3E,0DAA0D;YAC1D,wKAAwK;YACxK,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,yGAAyG,CAAC,CAAC;QAClI,CAAC;aAAM,IAAI,EAAE,EAAE,CAAC;YACZ,IAAI,MAAM,GAAkB,SAAS,CAAC;YACtC,MAAM,MAAM,GAAG,IAAA,aAAM,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;gBACpB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnB,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,GAAY,CAAC,CAAC;gBACxB,OAAO,SAAS,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACP,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;CACJ;AAhGD,wCAgGC;AAID,MAAa,iBAAiB;IAOG;IALZ,MAAM,GAAe,EAAE,CAAC;IACxB,OAAO,CAAsC;IAEtD,QAAQ,GAAkC,IAAI,CAAC;IAEvD,YAA6B,OAA+C,EAAE,OAAO,GAAG,IAAI;QAA/D,YAAO,GAAP,OAAO,CAAwC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC;aACrC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAc;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE3D,OAAO;YACH,MAAM,EAAE,GAAG;YACX,KAAK;SACR,CAAC;IACN,CAAC;IAEO,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,KAAK;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAoB,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CACJ;AAhDD,8CAgDC"}
|
package/lazy/light.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export type ILazy<T> = {
|
|
4
|
-
readonly value: T;
|
|
5
|
-
readonly hasValue: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type LazyLight<T> = ILazy<T> & IDisposable & IResetableModel;
|
|
8
|
-
export declare function createLazy<T>(factory: () => T): LazyLight<T>;
|
|
1
|
+
import type { ILazy } from './types';
|
|
2
|
+
export declare function createLazy<T>(factory: () => T): ILazy<T>;
|
|
9
3
|
//# sourceMappingURL=light.d.ts.map
|
package/lazy/light.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/lazy/light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/lazy/light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,YAoB7C"}
|
package/lazy/light.js
CHANGED
package/lazy/light.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../src/lazy/light.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../src/lazy/light.ts"],"names":[],"mappings":";;;AAEA,SAAgB,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;AApBD,gCAoBC"}
|
package/lazy/promise.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export
|
|
4
|
-
readonly busy: boolean;
|
|
5
|
-
readonly promise: Promise<T>;
|
|
6
|
-
};
|
|
7
|
-
export declare class LazyPromise<T> implements IDisposable, LazyLight<T>, ILazyPromise<T> {
|
|
1
|
+
import type { IExpireTracker } from '../structures/expire';
|
|
2
|
+
import type { ILazyPromise } from './types';
|
|
3
|
+
export declare class LazyPromise<T> implements ILazyPromise<T> {
|
|
8
4
|
private readonly _factory;
|
|
9
5
|
private readonly initial;
|
|
10
6
|
private _instance;
|
|
11
7
|
private _busy;
|
|
12
8
|
private _promise;
|
|
9
|
+
private _expireTracker;
|
|
13
10
|
constructor(_factory: () => Promise<T>, initial?: T | undefined);
|
|
14
|
-
get busy(): boolean;
|
|
11
|
+
get busy(): boolean | null;
|
|
15
12
|
get hasValue(): boolean;
|
|
16
13
|
get promise(): Promise<T>;
|
|
17
14
|
get value(): NonNullable<T>;
|
|
15
|
+
/** does not calls factory */
|
|
16
|
+
get currentValue(): T | undefined;
|
|
17
|
+
withExpire: (tracker: IExpireTracker | undefined) => this;
|
|
18
18
|
protected ensureInstanceLoading(): void;
|
|
19
|
-
protected onResolved
|
|
19
|
+
protected onResolved(res: T): T;
|
|
20
20
|
setInstance: (res: T | undefined) => T | undefined;
|
|
21
21
|
reset: () => void;
|
|
22
22
|
dispose: () => void;
|
package/lazy/promise.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAS9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR5B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,KAAK,CAAwB;IAErC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,cAAc,CAA6B;gBAG9B,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAC,GAAG,SAAqB;IAKvD,IAAI,IAAI,mBAAyB;IACjC,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,mBAGR;IAED,6BAA6B;IAC7B,IAAI,YAAY,kBAEf;IAEM,UAAU,YAAa,cAAc,GAAG,SAAS,UAGtD;IAEF,SAAS,CAAC,qBAAqB;IAY/B,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IASpB,WAAW,QAAS,CAAC,GAAG,SAAS,mBAetC;IAEF,KAAK,aAIH;IAEF,OAAO,aAAsB;CAChC"}
|
package/lazy/promise.js
CHANGED
|
@@ -6,13 +6,14 @@ class LazyPromise {
|
|
|
6
6
|
initial;
|
|
7
7
|
_instance = undefined;
|
|
8
8
|
_busy = null;
|
|
9
|
-
_promise
|
|
9
|
+
_promise;
|
|
10
|
+
_expireTracker;
|
|
10
11
|
constructor(_factory, initial = undefined) {
|
|
11
12
|
this._factory = _factory;
|
|
12
13
|
this.initial = initial;
|
|
13
14
|
this._instance = initial;
|
|
14
15
|
}
|
|
15
|
-
get busy() { return this._busy
|
|
16
|
+
get busy() { return this._busy; }
|
|
16
17
|
get hasValue() { return this._busy === false; }
|
|
17
18
|
get promise() {
|
|
18
19
|
this.ensureInstanceLoading();
|
|
@@ -22,20 +23,32 @@ class LazyPromise {
|
|
|
22
23
|
this.ensureInstanceLoading();
|
|
23
24
|
return this._instance;
|
|
24
25
|
}
|
|
26
|
+
/** does not calls factory */
|
|
27
|
+
get currentValue() {
|
|
28
|
+
return this._instance;
|
|
29
|
+
}
|
|
30
|
+
withExpire = (tracker) => {
|
|
31
|
+
this._expireTracker = tracker;
|
|
32
|
+
return this;
|
|
33
|
+
};
|
|
25
34
|
ensureInstanceLoading() {
|
|
35
|
+
if (this.busy === false && this._instance !== undefined && this._expireTracker?.isExpired) {
|
|
36
|
+
// do not reset the instance, just make sure it will be reloaded
|
|
37
|
+
this._busy = null;
|
|
38
|
+
}
|
|
26
39
|
if (this._busy === null) {
|
|
27
40
|
this._busy = true;
|
|
28
|
-
this._promise = this._factory().then(this.onResolved);
|
|
41
|
+
this._promise = this._factory().then(this.onResolved.bind(this));
|
|
29
42
|
}
|
|
30
43
|
}
|
|
31
|
-
onResolved
|
|
44
|
+
onResolved(res) {
|
|
32
45
|
// case: during the promise `setInstance` was called
|
|
33
46
|
if (!this._busy && this._instance !== undefined) {
|
|
34
47
|
return this._instance;
|
|
35
48
|
}
|
|
36
49
|
this.setInstance(res);
|
|
37
50
|
return res;
|
|
38
|
-
}
|
|
51
|
+
}
|
|
39
52
|
setInstance = (res) => {
|
|
40
53
|
this._busy = false;
|
|
41
54
|
// refresh promise so it won't keep old callbacks
|
|
@@ -43,12 +56,15 @@ class LazyPromise {
|
|
|
43
56
|
// also do this before setting the instance... just in case :)
|
|
44
57
|
this._promise = Promise.resolve(res);
|
|
45
58
|
this._instance = res;
|
|
59
|
+
if (this._expireTracker) {
|
|
60
|
+
this._expireTracker.restart();
|
|
61
|
+
}
|
|
46
62
|
return res;
|
|
47
63
|
};
|
|
48
64
|
reset = () => {
|
|
49
65
|
this._busy = null;
|
|
50
66
|
this._instance = this.initial;
|
|
51
|
-
this._promise =
|
|
67
|
+
this._promise = undefined;
|
|
52
68
|
};
|
|
53
69
|
dispose = () => this.reset();
|
|
54
70
|
}
|
package/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":";;;AAGA,MAAa,WAAW;IASC;IACA;IARb,SAAS,GAAkB,SAAS,CAAC;IACrC,KAAK,GAAmB,IAAI,CAAC;IAE7B,QAAQ,CAAyB;IACjC,cAAc,CAA6B;IAEnD,YACqB,QAA0B,EAC1B,UAAyB,SAAS;QADlC,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAA2B;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAU,CAAC;IAC3B,CAAC;IAED,6BAA6B;IAC7B,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,UAAU,GAAG,CAAC,OAAmC,EAAE,EAAE;QACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEQ,qBAAqB;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC;YACxF,gEAAgE;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAES,UAAU,CAAC,GAAM;QACvB,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,WAAW,GAAG,CAAC,GAAkB,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,iDAAiD;QACjD,oDAAoD;QACpD,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAErB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,GAAG,GAAG,EAAE;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;CAChC;AAnFD,kCAmFC"}
|
package/lazy/singleton.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export declare class Lazy<T> implements
|
|
1
|
+
import type { IExpireTracker } from '../structures/expire';
|
|
2
|
+
import type { ILazy } from './types';
|
|
3
|
+
export declare class Lazy<T> implements ILazy<T> {
|
|
4
4
|
protected readonly _factory: (() => T);
|
|
5
|
-
protected
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
protected _instance: T | undefined;
|
|
6
|
+
private _expireTracker;
|
|
7
|
+
private _disposer?;
|
|
8
|
+
constructor(_factory: (() => T));
|
|
8
9
|
get hasValue(): boolean;
|
|
9
10
|
get value(): NonNullable<T>;
|
|
11
|
+
get currentValue(): T | undefined;
|
|
10
12
|
/** Override me: additional way to make sure instance is valid */
|
|
11
13
|
protected get isValid(): boolean;
|
|
14
|
+
withDisposer: (disposer: (prev: T) => void) => this;
|
|
15
|
+
withExpire: (tracker: IExpireTracker | undefined) => this;
|
|
12
16
|
private ensureInstance;
|
|
13
17
|
prewarm(): this;
|
|
14
|
-
setInstance
|
|
18
|
+
setInstance(instance: T | undefined): void;
|
|
15
19
|
reset(): void;
|
|
16
20
|
dispose(): void;
|
|
17
21
|
}
|
package/lazy/singleton.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,IAAI,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC;IAMxB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAJlD,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAAa;IAC/C,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,SAAS,CAAC,CAAoB;gBAEP,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,QAAQ,YAA2C;IAEvD,IAAI,KAAK,mBAGR;IAED,IAAI,YAAY,kBAEf;IAED,iEAAiE;IACjE,SAAS,KAAK,OAAO,YAapB;IAEM,YAAY,aAAc,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,UAGhD;IAEK,UAAU,YAAa,cAAc,GAAG,SAAS,UAGtD;IAEF,OAAO,CAAC,cAAc;IAWtB,OAAO;IAKP,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS;IAQnC,KAAK;IAOL,OAAO;CACV"}
|
package/lazy/singleton.js
CHANGED
|
@@ -3,19 +3,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Lazy = void 0;
|
|
4
4
|
class Lazy {
|
|
5
5
|
_factory;
|
|
6
|
+
_instance = undefined;
|
|
7
|
+
_expireTracker;
|
|
6
8
|
_disposer;
|
|
7
|
-
|
|
8
|
-
constructor(_factory, _disposer) {
|
|
9
|
+
constructor(_factory) {
|
|
9
10
|
this._factory = _factory;
|
|
10
|
-
this._disposer = _disposer;
|
|
11
11
|
}
|
|
12
|
-
get hasValue() { return this._instance !==
|
|
12
|
+
get hasValue() { return this._instance !== undefined; }
|
|
13
13
|
get value() {
|
|
14
14
|
this.ensureInstance();
|
|
15
15
|
return this._instance;
|
|
16
16
|
}
|
|
17
|
+
get currentValue() {
|
|
18
|
+
return this._instance;
|
|
19
|
+
}
|
|
17
20
|
/** Override me: additional way to make sure instance is valid */
|
|
18
|
-
get isValid() {
|
|
21
|
+
get isValid() {
|
|
22
|
+
if (!this.hasValue) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (this._expireTracker) {
|
|
26
|
+
if (this._expireTracker.isExpired) {
|
|
27
|
+
this.reset();
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
withDisposer = (disposer) => {
|
|
34
|
+
this._disposer = disposer;
|
|
35
|
+
return this;
|
|
36
|
+
};
|
|
37
|
+
withExpire = (tracker) => {
|
|
38
|
+
this._expireTracker = tracker;
|
|
39
|
+
return this;
|
|
40
|
+
};
|
|
19
41
|
ensureInstance() {
|
|
20
42
|
if (this.isValid) {
|
|
21
43
|
return;
|
|
@@ -29,14 +51,17 @@ class Lazy {
|
|
|
29
51
|
this.ensureInstance();
|
|
30
52
|
return this;
|
|
31
53
|
}
|
|
32
|
-
setInstance
|
|
54
|
+
setInstance(instance) {
|
|
33
55
|
this._instance = instance;
|
|
34
|
-
|
|
56
|
+
if (this._instance !== undefined && this._expireTracker) {
|
|
57
|
+
this._expireTracker.restart();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
35
60
|
reset() {
|
|
36
61
|
if (this.hasValue && this._instance && this._disposer) {
|
|
37
62
|
this._disposer(this._instance);
|
|
38
63
|
}
|
|
39
|
-
this.setInstance(
|
|
64
|
+
this.setInstance(undefined);
|
|
40
65
|
}
|
|
41
66
|
dispose() { this.reset(); }
|
|
42
67
|
}
|
package/lazy/singleton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/lazy/singleton.ts"],"names":[],"mappings":";;;AAGA,MAAa,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,GAAG,CAAC,QAA2B,EAAE,EAAE;QAClD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEK,UAAU,GAAG,CAAC,OAAmC,EAAE,EAAE;QACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEM,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;AA7ED,oBA6EC"}
|
package/lazy/types.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IDisposable } from '../functions/disposer';
|
|
2
|
+
import { IResetableModel } from '../models/types';
|
|
3
|
+
export type ILazy<T> = IDisposable & IResetableModel & {
|
|
4
|
+
readonly value: T;
|
|
5
|
+
readonly hasValue: boolean;
|
|
6
|
+
/** should not call the factory or change the value either way */
|
|
7
|
+
readonly currentValue: T | undefined;
|
|
8
|
+
};
|
|
9
|
+
export type ILazyPromise<T> = ILazy<T> & {
|
|
10
|
+
readonly busy: boolean | null;
|
|
11
|
+
readonly promise: Promise<T>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lazy/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,WAAW,GAAG,eAAe,GAAG;IACnD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC"}
|
package/lazy/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lazy/types.ts"],"names":[],"mappings":""}
|
package/models/Model.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare class Model<T> implements IValueModel<Nullable<T>> {
|
|
|
7
7
|
constructor(v?: Getter<Nullable<T>>);
|
|
8
8
|
get value(): T;
|
|
9
9
|
set value(v: T);
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
setValue(value: Getter<Nullable<T>>): void;
|
|
11
|
+
reset(): void;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=Model.d.ts.map
|
package/models/Model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,CAAC,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAQ;IAKzC,IAAW,KAAK,IACI,CAAC,CADuC;IAC5D,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,CAAC,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAQ;IAKzC,IAAW,KAAK,IACI,CAAC,CADuC;IAC5D,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAEM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAInC,KAAK;CAGf"}
|
package/models/Model.js
CHANGED
|
@@ -13,12 +13,12 @@ class Model {
|
|
|
13
13
|
set value(v) {
|
|
14
14
|
this.setValue(v);
|
|
15
15
|
}
|
|
16
|
-
setValue
|
|
16
|
+
setValue(value) {
|
|
17
17
|
this._value = value;
|
|
18
|
-
}
|
|
19
|
-
reset
|
|
18
|
+
}
|
|
19
|
+
reset() {
|
|
20
20
|
this.setValue(this._defaultValue);
|
|
21
|
-
}
|
|
21
|
+
}
|
|
22
22
|
}
|
|
23
23
|
exports.Model = Model;
|
|
24
24
|
//# sourceMappingURL=Model.js.map
|
package/models/Model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC5D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC5D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,KAA0B;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACJ;AAtBD,sBAsBC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface IExpireTracker {
|
|
2
|
+
readonly isExpired: boolean;
|
|
3
|
+
restart(): void;
|
|
4
|
+
}
|
|
5
|
+
export declare class ExpireTracker implements IExpireTracker {
|
|
6
|
+
readonly lifetimeMs: number;
|
|
7
|
+
private _expiringAt;
|
|
8
|
+
constructor(lifetimeMs: number);
|
|
9
|
+
get isExpired(): boolean;
|
|
10
|
+
restart(): void;
|
|
11
|
+
get remainingMs(): number;
|
|
12
|
+
expire(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=expire.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expire.d.ts","sourceRoot":"","sources":["../../src/structures/expire.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,qBAAa,aAAc,YAAW,cAAc;aAGpB,UAAU,EAAE,MAAM;IAF9C,OAAO,CAAC,WAAW,CAAa;gBAEJ,UAAU,EAAE,MAAM;IAE9C,IAAW,SAAS,YAA6C;IAE1D,OAAO;IAId,IAAW,WAAW,WAErB;IAEM,MAAM;CAGhB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpireTracker = void 0;
|
|
4
|
+
class ExpireTracker {
|
|
5
|
+
lifetimeMs;
|
|
6
|
+
_expiringAt = 0; // already expired
|
|
7
|
+
constructor(lifetimeMs) {
|
|
8
|
+
this.lifetimeMs = lifetimeMs;
|
|
9
|
+
}
|
|
10
|
+
get isExpired() { return Date.now() >= this._expiringAt; }
|
|
11
|
+
restart() {
|
|
12
|
+
this._expiringAt = Date.now() + this.lifetimeMs;
|
|
13
|
+
}
|
|
14
|
+
get remainingMs() {
|
|
15
|
+
return Math.max(0, this._expiringAt - Date.now());
|
|
16
|
+
}
|
|
17
|
+
expire() {
|
|
18
|
+
this._expiringAt = 0;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ExpireTracker = ExpireTracker;
|
|
22
|
+
//# sourceMappingURL=expire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expire.js","sourceRoot":"","sources":["../../src/structures/expire.ts"],"names":[],"mappings":";;;AAMA,MAAa,aAAa;IAGM;IAFpB,WAAW,GAAW,CAAC,CAAC,CAAC,kBAAkB;IAEnD,YAA4B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAI,CAAC;IAEnD,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1D,OAAO;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IACpD,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM;QACT,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ;AAlBD,sCAkBC"}
|
|
@@ -43,7 +43,7 @@ export declare class PromiseCache<T, K = string> {
|
|
|
43
43
|
*
|
|
44
44
|
* When provided, effectively replaces the main fetcher; but in case of fail, fallbacks to the main fetcher.
|
|
45
45
|
*/
|
|
46
|
-
useBatching(fetcher: (ids: K[]) => Promise<T[]
|
|
46
|
+
useBatching(fetcher: (ids: K[]) => Promise<T[]>, delay?: number): this;
|
|
47
47
|
/**
|
|
48
48
|
* Enables auto-invalidation of cached items.
|
|
49
49
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAGrB,MAAM,KAAK;;;;KAIc,CAAC;CACpC;AAID;;;;;;EAME;AACF,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;IAiB/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAjB/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAM;IACjE,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAErD,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,+BAA+B,CAAS;IAEhD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAK;IACrB,SAAS,CAAC,UAAU,SAAK;gBAGJ,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,UAAU,CAAC,iCAAgC,CAAC,KAAK,MAAM,aAAA,EACvD,SAAS,CAAC,kCAAiC,MAAM,KAAK,CAAC,aAAA;IAK5E,IAAW,SAAS,WAA8B;IAElD,OAAO,CAAC,GAAG;IAgBX,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IASrD;;;;;;MAME;IACF,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,8 +69,8 @@ class PromiseCache {
|
|
|
69
69
|
*
|
|
70
70
|
* When provided, effectively replaces the main fetcher; but in case of fail, fallbacks to the main fetcher.
|
|
71
71
|
*/
|
|
72
|
-
useBatching(fetcher) {
|
|
73
|
-
this._batch = fetcher ? new throttle_1.ThrottleProcessor(fetcher,
|
|
72
|
+
useBatching(fetcher, delay = BATCHING_DELAY) {
|
|
73
|
+
this._batch = fetcher ? new throttle_1.ThrottleProcessor(fetcher, delay) : null;
|
|
74
74
|
return this;
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,sCAAkD;AAQlD,IAAiB,cAAc,CAQ9B;AARD,WAAiB,cAAc;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAO,IAAI,CAAC,CAAC;IAExC,oBAAK,GAAG;QACjB,IAAI,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,KAAoB,OAAO,gBAAgB,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACA,CAAC;AACrC,CAAC,EARgB,cAAc,8BAAd,cAAc,QAQ9B;AAED,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;;EAME;AACF,MAAa,YAAY;IAiBA;IACA;IACA;IAjBX,WAAW,GAAyC,EAAE,CAAC;IACvD,YAAY,GAA4B,EAAE,CAAC;IAE7C,WAAW,GAAsC,EAAE,CAAC;IACpD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,MAAM,GAAqC,IAAI,CAAC;IAChD,mBAAmB,GAAkB,IAAI,CAAC;IAC1C,+BAA+B,GAAG,KAAK,CAAC;IAExC,OAAO,GAAmB,IAAI,CAAC;IAC/B,QAAQ,GAAG,CAAC,CAAC;IACX,UAAU,GAAG,CAAC,CAAC;IAEzB,YACqB,OAA8B,EAC9B,UAAuD,EACvD,SAAuD;QAFvD,YAAO,GAAP,OAAO,CAAuB;QAC9B,eAAU,GAAV,UAAU,CAA6C;QACvD,cAAS,GAAT,SAAS,CAA8C;QAExE,EAAE;IACN,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1C,GAAG,CAAC,CAAI;QACZ,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,YAA2C;QACjD,IAAI,YAAY,IAAI,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAY,EAAC,iBAAiB,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;MAME;IACF,WAAW,CAAC,OAAmC;
|
|
1
|
+
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,sCAAkD;AAQlD,IAAiB,cAAc,CAQ9B;AARD,WAAiB,cAAc;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAO,IAAI,CAAC,CAAC;IAExC,oBAAK,GAAG;QACjB,IAAI,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,KAAoB,OAAO,gBAAgB,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACA,CAAC;AACrC,CAAC,EARgB,cAAc,8BAAd,cAAc,QAQ9B;AAED,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;;EAME;AACF,MAAa,YAAY;IAiBA;IACA;IACA;IAjBX,WAAW,GAAyC,EAAE,CAAC;IACvD,YAAY,GAA4B,EAAE,CAAC;IAE7C,WAAW,GAAsC,EAAE,CAAC;IACpD,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,MAAM,GAAqC,IAAI,CAAC;IAChD,mBAAmB,GAAkB,IAAI,CAAC;IAC1C,+BAA+B,GAAG,KAAK,CAAC;IAExC,OAAO,GAAmB,IAAI,CAAC;IAC/B,QAAQ,GAAG,CAAC,CAAC;IACX,UAAU,GAAG,CAAC,CAAC;IAEzB,YACqB,OAA8B,EAC9B,UAAuD,EACvD,SAAuD;QAFvD,YAAO,GAAP,OAAO,CAAuB;QAC9B,eAAU,GAAV,UAAU,CAA6C;QACvD,cAAS,GAAT,SAAS,CAA8C;QAExE,EAAE;IACN,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1C,GAAG,CAAC,CAAI;QACZ,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,YAA2C;QACjD,IAAI,YAAY,IAAI,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAY,EAAC,iBAAiB,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;MAME;IACF,WAAW,CAAC,OAAmC,EAAE,KAAK,GAAG,cAAc;QACnE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,4BAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;MAIE;IACF,mBAAmB,CAAC,EAAiB,EAAE,YAAY,GAAG,KAAK;QACvD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,+BAA+B,GAAG,YAAY,CAAC;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAM;QACd,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO;YACH,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7C,CAAC;IACN,CAAC;IAED,SAAS,CAAC,EAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,GAAG,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC;IAES,WAAW,CAAC,EAAK;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7C,+EAA+E;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;YACH,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC7E,GAAG;YACH,SAAS;SACZ,CAAC;IACN,CAAC;IAED,UAAU,CAAC,EAAK,EAAE,aAAa,GAAG,IAAI;QAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,aAAa,EAAE,CAAC;YAChB,aAAa;YACb,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,EAAK;QACL,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtD,6CAA6C;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1B,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,aAAa,GAAG,KAAK,EAAE,EAAK,EAAE,GAAW,EAAE,EAAE;QACnD,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAExB,IAAI,GAAG,GAAa,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEnD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,eAAe,GAAG,KAAK,CAAC;gBACxB,gDAAgD;gBAChD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBAC7D,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;gBAAS,CAAC;YACP,IAAI,eAAe,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,4EAA4E,CAAC,CAAC;YACzG,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,UAAU,CAAC,EAAK;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,mBAAmB,CAAC,EAAK,EAAE,KAAe;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,EAAK;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACvF,CAAC;IAED,IAAI;QACA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACD,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAES,IAAI,CAAC,GAAW,EAAE,IAA0B,EAAE,OAA+B,EAAE,IAAyB;QAC9G,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAES,gBAAgB,CAAC,GAAW;QAClC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACpE,CAAC;IAED,gBAAgB;IACN,SAAS,CAAC,GAAW,EAAE,MAAe;QAC5C,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,gBAAgB;IACN,UAAU,CAAC,GAAW,EAAE,OAA0B;QACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,gBAAgB;IACN,WAAW,CAAC,GAAW,EAAE,GAAa;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB;IACN,aAAa,CAAC,IAAY;QAChC,EAAE,IAAI,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,gBAAgB;IACN,aAAa,CAAC,GAAa;QACjC,OAAO,GAAG,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,gBAAgB;IACN,eAAe,CAAC,GAAW;QACjC,EAAE,IAAI,CAAC,UAAU,CAAC;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,YAAY;IACF,KAAK,CAAC,eAAe,CAAC,EAAK;QACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,SAAS,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC,EAAE;YACT,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7D,iEAAiE;YACjE,OAAO,SAAS,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACJ;AAzRD,oCAyRC;AAED,SAAS,KAAK,CAAI,GAAW,EAAE,GAAsB,EAAE,GAAM;IACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACnB,CAAC;AACL,CAAC"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
+
import type { ILazy, ILazyPromise } from '../lazy/types';
|
|
2
|
+
import { ExpireTracker } from './expire';
|
|
3
|
+
/**
|
|
4
|
+
* Calls factory fn to fetch and store some value for a limited time.
|
|
5
|
+
*
|
|
6
|
+
* To factory method be called, `current` getter must be accessed.
|
|
7
|
+
*/
|
|
1
8
|
export declare class TempoCache<T> {
|
|
2
9
|
readonly factory: () => T;
|
|
3
|
-
readonly lifetimeMs: number;
|
|
4
|
-
private _expiringAt;
|
|
5
10
|
private _current;
|
|
11
|
+
readonly tracker: ExpireTracker;
|
|
6
12
|
constructor(factory: () => T, lifetimeMs: number);
|
|
7
13
|
get isExpired(): boolean;
|
|
8
14
|
get current(): T | undefined;
|
|
9
15
|
}
|
|
16
|
+
export declare namespace TempoCache {
|
|
17
|
+
/**
|
|
18
|
+
* Creates a TempoCache instance which caches `ILazy.value` for a specified time.
|
|
19
|
+
*
|
|
20
|
+
* Note a limitation: calling `reset` (or changing the stored value directly in other way) on `lazy` will not affect the value cached by `TempoCache` instance.
|
|
21
|
+
*/
|
|
22
|
+
function createFromLazy<T>(lazy: ILazy<T>, lifetimeMs: number): TempoCache<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a TempoCache instance which caches `ILazyPromise.promise` for a specified time.
|
|
25
|
+
*
|
|
26
|
+
* Note a limitation: calling `reset` (or changing the stored value directly in other way) on `lazy` will not affect the value cached by `TempoCache` instance.
|
|
27
|
+
*/
|
|
28
|
+
function createFromLazyPromise<T>(lazy: ILazyPromise<T>, lifetimeMs: number): TempoCache<Promise<T>>;
|
|
29
|
+
}
|
|
10
30
|
//# sourceMappingURL=tempoCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempoCache.d.ts","sourceRoot":"","sources":["../../src/structures/tempoCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tempoCache.d.ts","sourceRoot":"","sources":["../../src/structures/tempoCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;EAIE;AACF,qBAAa,UAAU,CAAC,CAAC;IAMT,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAJrC,OAAO,CAAC,QAAQ,CAA4B;IAE5C,SAAgB,OAAO,EAAE,aAAa,CAAC;gBAElB,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM;IAIzD,IAAW,SAAS,YAAqC;IAEzD,IAAW,OAAO,kBAMjB;CACJ;AAGD,yBAAiB,UAAU,CAAC;IAWxB;;;;MAIE;IACF,SAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,iBAGnE;IAED;;;;MAIE;IACF,SAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,0BAGjF;CACJ"}
|
package/structures/tempoCache.js
CHANGED
|
@@ -1,23 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TempoCache = void 0;
|
|
4
|
+
const expire_1 = require("./expire");
|
|
5
|
+
/**
|
|
6
|
+
* Calls factory fn to fetch and store some value for a limited time.
|
|
7
|
+
*
|
|
8
|
+
* To factory method be called, `current` getter must be accessed.
|
|
9
|
+
*/
|
|
4
10
|
class TempoCache {
|
|
5
11
|
factory;
|
|
6
|
-
lifetimeMs;
|
|
7
|
-
_expiringAt = 0; // already expired
|
|
8
12
|
_current = undefined;
|
|
13
|
+
tracker;
|
|
9
14
|
constructor(factory, lifetimeMs) {
|
|
10
15
|
this.factory = factory;
|
|
11
|
-
this.
|
|
16
|
+
this.tracker = new expire_1.ExpireTracker(lifetimeMs);
|
|
12
17
|
}
|
|
13
|
-
get isExpired() { return
|
|
18
|
+
get isExpired() { return this.tracker.isExpired; }
|
|
14
19
|
get current() {
|
|
15
20
|
if (this.isExpired) {
|
|
16
21
|
this._current = this.factory();
|
|
17
|
-
this.
|
|
22
|
+
this.tracker.restart();
|
|
18
23
|
}
|
|
19
24
|
return this._current;
|
|
20
25
|
}
|
|
21
26
|
}
|
|
22
27
|
exports.TempoCache = TempoCache;
|
|
28
|
+
/* istanbul ignore next -- @preserve */
|
|
29
|
+
(function (TempoCache) {
|
|
30
|
+
function createFactory(source, key) {
|
|
31
|
+
return () => {
|
|
32
|
+
// each time factory is called means value is invalidated
|
|
33
|
+
// so we need to reset the lazy
|
|
34
|
+
source.reset();
|
|
35
|
+
return source[key];
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a TempoCache instance which caches `ILazy.value` for a specified time.
|
|
40
|
+
*
|
|
41
|
+
* Note a limitation: calling `reset` (or changing the stored value directly in other way) on `lazy` will not affect the value cached by `TempoCache` instance.
|
|
42
|
+
*/
|
|
43
|
+
function createFromLazy(lazy, lifetimeMs) {
|
|
44
|
+
const factory = createFactory(lazy, 'value');
|
|
45
|
+
return new TempoCache(factory, lifetimeMs);
|
|
46
|
+
}
|
|
47
|
+
TempoCache.createFromLazy = createFromLazy;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a TempoCache instance which caches `ILazyPromise.promise` for a specified time.
|
|
50
|
+
*
|
|
51
|
+
* Note a limitation: calling `reset` (or changing the stored value directly in other way) on `lazy` will not affect the value cached by `TempoCache` instance.
|
|
52
|
+
*/
|
|
53
|
+
function createFromLazyPromise(lazy, lifetimeMs) {
|
|
54
|
+
const factory = createFactory(lazy, 'promise');
|
|
55
|
+
return new TempoCache(factory, lifetimeMs);
|
|
56
|
+
}
|
|
57
|
+
TempoCache.createFromLazyPromise = createFromLazyPromise;
|
|
58
|
+
})(TempoCache || (exports.TempoCache = TempoCache = {}));
|
|
23
59
|
//# sourceMappingURL=tempoCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempoCache.js","sourceRoot":"","sources":["../../src/structures/tempoCache.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tempoCache.js","sourceRoot":"","sources":["../../src/structures/tempoCache.ts"],"names":[],"mappings":";;;AAEA,qCAAyC;AAEzC;;;;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,sBAAa,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"}
|
package/validation/throwers.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export type ValidatorsSchema = Record<string, ValidationGenericLike<any>>;
|
|
|
10
10
|
export type ValidatorThrowers<T extends ValidatorsSchema> = {
|
|
11
11
|
[P in (string & keyof T)]: T[P] extends ValidationGenericLike<infer K> ? ValidationThrower<K> : never;
|
|
12
12
|
};
|
|
13
|
+
export declare function createThrower<T>(schema: ValidationGenericLike<T>): ValidationThrower<T>;
|
|
13
14
|
export declare function createThrowers<T extends ValidatorsSchema>(validators: T): ValidatorThrowers<T>;
|
|
14
15
|
//# sourceMappingURL=throwers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throwers.d.ts","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":"AAEA,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEtE,yBAAiB,iBAAiB,CAAC;IAC/B,SAAsB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F;CACJ;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IAAI;KACvD,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK;CACxG,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"throwers.d.ts","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":"AAEA,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEtE,yBAAiB,iBAAiB,CAAC;IAC/B,SAAsB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F;CACJ;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IAAI;KACvD,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK;CACxG,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAIvF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAS9F"}
|
package/validation/throwers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createThrowers = exports.ValidationThrower = void 0;
|
|
3
|
+
exports.createThrowers = exports.createThrower = exports.ValidationThrower = void 0;
|
|
4
4
|
var ValidationThrower;
|
|
5
5
|
(function (ValidationThrower) {
|
|
6
6
|
async function isValid(value, validator) {
|
|
@@ -14,13 +14,17 @@ var ValidationThrower;
|
|
|
14
14
|
}
|
|
15
15
|
ValidationThrower.isValid = isValid;
|
|
16
16
|
})(ValidationThrower || (exports.ValidationThrower = ValidationThrower = {}));
|
|
17
|
+
function createThrower(schema) {
|
|
18
|
+
return async (value) => {
|
|
19
|
+
await schema.validate(value);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.createThrower = createThrower;
|
|
17
23
|
function createThrowers(validators) {
|
|
18
24
|
return Object.entries(validators).reduce((acc, [key, validator]) => {
|
|
19
25
|
const kk = key;
|
|
20
26
|
if ('validate' in validator) {
|
|
21
|
-
acc[kk] = (
|
|
22
|
-
await validator.validate(v);
|
|
23
|
-
});
|
|
27
|
+
acc[kk] = createThrower(validator);
|
|
24
28
|
}
|
|
25
29
|
return acc;
|
|
26
30
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throwers.js","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":";;;AAKA,IAAiB,iBAAiB,CASjC;AATD,WAAiB,iBAAiB;IACvB,KAAK,UAAU,OAAO,CAAI,KAAQ,EAAE,SAA+B;QACtE,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAPqB,yBAAO,UAO5B,CAAA;AACL,CAAC,EATgB,iBAAiB,iCAAjB,iBAAiB,QASjC;AAYD,SAAgB,cAAc,CAA6B,UAAa;IACpE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,GAAyB,CAAC;QACrC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"throwers.js","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":";;;AAKA,IAAiB,iBAAiB,CASjC;AATD,WAAiB,iBAAiB;IACvB,KAAK,UAAU,OAAO,CAAI,KAAQ,EAAE,SAA+B;QACtE,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAPqB,yBAAO,UAO5B,CAAA;AACL,CAAC,EATgB,iBAAiB,iCAAjB,iBAAiB,QASjC;AAYD,SAAgB,aAAa,CAAI,MAAgC;IAC7D,OAAO,KAAK,EAAE,KAAQ,EAAE,EAAE;QACtB,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;AACN,CAAC;AAJD,sCAIC;AAED,SAAgB,cAAc,CAA6B,UAAa;IACpE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,GAAyB,CAAC;QACrC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS,CAAoC,CAAC;QAC1E,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAA0B,CAAC,CAAC;AACnC,CAAC;AATD,wCASC"}
|