@zajno/common 1.6.0 → 1.6.2
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/coverage/clover.xml +19 -17
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov-report/src/__tests__/helpers/expect.ts.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/src/cache.ts.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/disposer.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/lazy/index.html +10 -10
- package/coverage/lcov-report/src/lazy/light.ts.html +1 -1
- package/coverage/lcov-report/src/lazy/observable.ts.html +15 -3
- package/coverage/lcov-report/src/lazy/promise.ts.html +22 -10
- package/coverage/lcov-report/src/lazy/singleton.ts.html +1 -1
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +1 -1
- package/coverage/lcov-report/src/queue/index.html +1 -1
- package/coverage/lcov-report/src/queue/parallel.ts.html +1 -1
- package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +1 -1
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +29 -25
- package/lib/assert.d.ts +3 -0
- package/lib/assert.d.ts.map +1 -0
- package/lib/assert.js +21 -0
- package/lib/assert.js.map +1 -0
- package/lib/lazy/observable.d.ts.map +1 -1
- package/lib/lazy/observable.js +1 -0
- package/lib/lazy/observable.js.map +1 -1
- package/lib/lazy/promise.d.ts +1 -0
- package/lib/lazy/promise.d.ts.map +1 -1
- package/lib/lazy/promise.js +5 -1
- package/lib/lazy/promise.js.map +1 -1
- package/package.json +1 -1
- package/src/assert.ts +19 -0
- package/src/lazy/__tests__/lazy.test.ts +1 -0
- package/src/lazy/observable.ts +5 -1
- package/src/lazy/promise.ts +6 -2
- package/yarn.lock +1 -1
|
@@ -376,7 +376,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
376
376
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
377
377
|
Code coverage generated by
|
|
378
378
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
379
|
-
at 2022-09-
|
|
379
|
+
at 2022-09-23T09:53:54.985Z
|
|
380
380
|
</div>
|
|
381
381
|
<script src="../../prettify.js"></script>
|
|
382
382
|
<script>
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
222
222
|
Code coverage generated by
|
|
223
223
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
224
|
-
at 2022-09-
|
|
224
|
+
at 2022-09-23T09:53:54.985Z
|
|
225
225
|
</div>
|
|
226
226
|
<script src="../../prettify.js"></script>
|
|
227
227
|
<script>
|
|
@@ -217,7 +217,7 @@ export function mixinLabel<T, TModel extends IValueModel<T>, TLabel = s
|
|
|
217
217
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
218
218
|
Code coverage generated by
|
|
219
219
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
220
|
-
at 2022-09-
|
|
220
|
+
at 2022-09-23T09:53:54.985Z
|
|
221
221
|
</div>
|
|
222
222
|
<script src="../../prettify.js"></script>
|
|
223
223
|
<script>
|
package/coverage/lcov.info
CHANGED
|
@@ -2196,23 +2196,25 @@ end_of_record
|
|
|
2196
2196
|
TN:
|
|
2197
2197
|
SF:src/lazy/promise.ts
|
|
2198
2198
|
FN:10,(anonymous_0)
|
|
2199
|
-
FN:
|
|
2200
|
-
FN:
|
|
2199
|
+
FN:38,(anonymous_1)
|
|
2200
|
+
FN:51,(anonymous_2)
|
|
2201
2201
|
FN:17,(anonymous_3)
|
|
2202
2202
|
FN:18,(anonymous_4)
|
|
2203
2203
|
FN:20,(anonymous_5)
|
|
2204
|
-
FN:
|
|
2205
|
-
FN:
|
|
2206
|
-
|
|
2207
|
-
|
|
2204
|
+
FN:25,(anonymous_6)
|
|
2205
|
+
FN:30,(anonymous_7)
|
|
2206
|
+
FN:45,(anonymous_8)
|
|
2207
|
+
FNF:9
|
|
2208
|
+
FNH:9
|
|
2208
2209
|
FNDA:2,(anonymous_0)
|
|
2209
2210
|
FNDA:2,(anonymous_1)
|
|
2210
2211
|
FNDA:1,(anonymous_2)
|
|
2211
2212
|
FNDA:6,(anonymous_3)
|
|
2212
2213
|
FNDA:5,(anonymous_4)
|
|
2213
|
-
FNDA:
|
|
2214
|
+
FNDA:3,(anonymous_5)
|
|
2214
2215
|
FNDA:6,(anonymous_6)
|
|
2215
|
-
FNDA:
|
|
2216
|
+
FNDA:9,(anonymous_7)
|
|
2217
|
+
FNDA:1,(anonymous_8)
|
|
2216
2218
|
DA:3,1
|
|
2217
2219
|
DA:5,2
|
|
2218
2220
|
DA:6,2
|
|
@@ -2222,27 +2224,29 @@ DA:12,2
|
|
|
2222
2224
|
DA:14,2
|
|
2223
2225
|
DA:17,6
|
|
2224
2226
|
DA:18,5
|
|
2225
|
-
DA:21,
|
|
2226
|
-
DA:
|
|
2227
|
-
DA:26,
|
|
2228
|
-
DA:27,
|
|
2229
|
-
DA:
|
|
2230
|
-
DA:
|
|
2227
|
+
DA:21,3
|
|
2228
|
+
DA:22,3
|
|
2229
|
+
DA:26,6
|
|
2230
|
+
DA:27,6
|
|
2231
|
+
DA:31,9
|
|
2232
|
+
DA:32,2
|
|
2233
|
+
DA:33,2
|
|
2231
2234
|
DA:34,2
|
|
2232
|
-
DA:
|
|
2233
|
-
DA:
|
|
2234
|
-
DA:
|
|
2235
|
-
DA:
|
|
2236
|
-
DA:
|
|
2237
|
-
DA:
|
|
2238
|
-
|
|
2239
|
-
|
|
2235
|
+
DA:38,2
|
|
2236
|
+
DA:39,2
|
|
2237
|
+
DA:40,2
|
|
2238
|
+
DA:46,1
|
|
2239
|
+
DA:47,1
|
|
2240
|
+
DA:48,1
|
|
2241
|
+
DA:51,2
|
|
2242
|
+
LF:24
|
|
2243
|
+
LH:24
|
|
2240
2244
|
BRDA:12,0,0,2
|
|
2241
|
-
BRDA:
|
|
2242
|
-
BRDA:
|
|
2245
|
+
BRDA:40,1,0,2
|
|
2246
|
+
BRDA:40,1,1,0
|
|
2243
2247
|
BRDA:17,2,0,6
|
|
2244
2248
|
BRDA:17,2,1,4
|
|
2245
|
-
BRDA:
|
|
2249
|
+
BRDA:31,3,0,2
|
|
2246
2250
|
BRF:6
|
|
2247
2251
|
BRH:5
|
|
2248
2252
|
end_of_record
|
package/lib/assert.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAetH"}
|
package/lib/assert.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assert = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const logger_1 = tslib_1.__importDefault(require("./logger"));
|
|
7
|
+
function assert(condition, error, objectToLog) {
|
|
8
|
+
if (condition) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const e = types_1.Getter.getValue(error);
|
|
12
|
+
if (objectToLog) {
|
|
13
|
+
logger_1.default.error('Assertion failed:', e, types_1.Getter.getValue(objectToLog));
|
|
14
|
+
}
|
|
15
|
+
if (typeof e === 'string') {
|
|
16
|
+
throw new Error(e);
|
|
17
|
+
}
|
|
18
|
+
throw e;
|
|
19
|
+
}
|
|
20
|
+
exports.assert = assert;
|
|
21
|
+
//# sourceMappingURL=assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":";;;;AAAA,mCAAiC;AACjC,8DAA8B;AAE9B,SAAgB,MAAM,CAAC,SAAkB,EAAE,KAA6B,EAAE,WAAyB;IAC/F,IAAI,SAAS,EAAE;QACX,OAAO;KACV;IAED,MAAM,CAAC,GAAG,cAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,WAAW,EAAE;QACb,gBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,cAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;KACtB;IAED,MAAM,CAAC,CAAC;AACZ,CAAC;AAfD,wBAeC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/lazy/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;gBAE9B,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;CASjC;AAED,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;gBAGpD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/lazy/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,qBAAa,cAAc,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;gBAE9B,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;CASjC;AAED,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;gBAGpD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,CAAC;CAelB"}
|
package/lib/lazy/observable.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/lazy/observable.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AACnC,uCAAwC;AACxC,+BAA0D;AAE1D,MAAa,cAAkB,SAAQ,gBAAO;IAE1C,YAAY,OAAkB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAA,qBAAc,EAA0C,IAAI,EAAE;YAC1D,SAAS,EAAE,iBAAU;YACrB,KAAK,EAAE,aAAM;YACb,cAAc,EAAE,aAAM;SACzB,CAAC,CAAC;IACP,CAAC;CACJ;AAXD,wCAWC;AAED,MAAa,qBAAyB,SAAQ,qBAAc;IAExD,YACI,OAAyB,EACzB,OAAW;QAEX,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExB,IAAA,qBAAc,
|
|
1
|
+
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/lazy/observable.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AACnC,uCAAwC;AACxC,+BAA0D;AAE1D,MAAa,cAAkB,SAAQ,gBAAO;IAE1C,YAAY,OAAkB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAA,qBAAc,EAA0C,IAAI,EAAE;YAC1D,SAAS,EAAE,iBAAU;YACrB,KAAK,EAAE,aAAM;YACb,cAAc,EAAE,aAAM;SACzB,CAAC,CAAC;IACP,CAAC;CACJ;AAXD,wCAWC;AAED,MAAa,qBAAyB,SAAQ,qBAAc;IAExD,YACI,OAAyB,EACzB,OAAW;QAEX,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExB,IAAA,qBAAc,EAGZ,IAAI,EAAE;YACJ,SAAS,EAAE,iBAAU,CAAC,GAAG;YACzB,KAAK,EAAE,iBAAU;YACjB,WAAW,EAAE,aAAM;YACnB,qBAAqB,EAAE,aAAM;YAC7B,KAAK,EAAE,aAAM;SAChB,CAAC,CAAC;IACP,CAAC;CACJ;AAnBD,sDAmBC"}
|
package/lib/lazy/promise.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW;IAQ1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAiB;IAE9B,OAAO,CAAC,QAAQ,CAAoB;gBAGf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAa;IAK3C,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,WAAW;IAQ1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAiB;IAE9B,OAAO,CAAC,QAAQ,CAAoB;gBAGf,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,CAAa;IAK3C,IAAI,IAAI,YAAkC;IAC1C,IAAI,QAAQ,YAAmC;IAE/C,IAAI,OAAO,eAGV;IAED,IAAI,KAAK,MAGR;IAED,SAAS,CAAC,qBAAqB;IAQ/B,OAAO,CAAC,WAAW,CAKjB;IAEF,KAAK;IAML,OAAO,aAAsB;CAChC"}
|
package/lib/lazy/promise.js
CHANGED
|
@@ -19,15 +19,19 @@ class LazyPromise {
|
|
|
19
19
|
get busy() { return this._busy || false; }
|
|
20
20
|
get hasValue() { return this._busy === false; }
|
|
21
21
|
get promise() {
|
|
22
|
+
this.ensureInstanceLoading();
|
|
22
23
|
return this._promise;
|
|
23
24
|
}
|
|
24
25
|
get value() {
|
|
26
|
+
this.ensureInstanceLoading();
|
|
27
|
+
return this._instance;
|
|
28
|
+
}
|
|
29
|
+
ensureInstanceLoading() {
|
|
25
30
|
if (this._busy === null) {
|
|
26
31
|
this._busy = true;
|
|
27
32
|
this._promise = this._factory();
|
|
28
33
|
this._promise.then(this.setInstance);
|
|
29
34
|
}
|
|
30
|
-
return this._instance;
|
|
31
35
|
}
|
|
32
36
|
reset() {
|
|
33
37
|
this._busy = null;
|
package/lib/lazy/promise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAOpB,YACqB,QAA0B,EAC1B,UAAa,SAAS;QADtB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAe;QAPnC,cAAS,GAAM,SAAS,CAAC;QACzB,UAAK,GAAY,IAAI,CAAC;QAEtB,aAAQ,GAAe,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../src/lazy/promise.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAOpB,YACqB,QAA0B,EAC1B,UAAa,SAAS;QADtB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,YAAO,GAAP,OAAO,CAAe;QAPnC,cAAS,GAAM,SAAS,CAAC;QACzB,UAAK,GAAY,IAAI,CAAC;QAEtB,aAAQ,GAAe,IAAI,CAAC;QA8B5B,gBAAW,GAAG,CAAC,GAAM,EAAE,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC;YAE7B,mDAAmD;QACvD,CAAC,CAAC;QAQF,YAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QArCzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;IAC1C,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,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAES,qBAAqB;QAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACxC;IACL,CAAC;IASD,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CAGJ;AAjDD,kCAiDC"}
|
package/package.json
CHANGED
package/src/assert.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Getter } from './types';
|
|
2
|
+
import logger from './logger';
|
|
3
|
+
|
|
4
|
+
export function assert(condition: boolean, error: Getter<string | Error>, objectToLog?: Getter<any>): asserts condition {
|
|
5
|
+
if (condition) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const e = Getter.getValue(error);
|
|
10
|
+
if (objectToLog) {
|
|
11
|
+
logger.error('Assertion failed:', e, Getter.getValue(objectToLog));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (typeof e === 'string') {
|
|
15
|
+
throw new Error(e);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
throw e;
|
|
19
|
+
}
|
|
@@ -75,6 +75,7 @@ describe('LazyPromise', () => {
|
|
|
75
75
|
|
|
76
76
|
expect(l.value).toBeUndefined();
|
|
77
77
|
expect(l.busy).toBeTrue();
|
|
78
|
+
expect(l.promise).not.toBeNull();
|
|
78
79
|
|
|
79
80
|
const listener = jest.fn().mockImplementation();
|
|
80
81
|
const clean = reaction(() => l.value, listener, { fireImmediately: true });
|
package/src/lazy/observable.ts
CHANGED
|
@@ -23,10 +23,14 @@ export class LazyPromiseObservable<T> extends LazyPromise<T> {
|
|
|
23
23
|
) {
|
|
24
24
|
super(factory, initial);
|
|
25
25
|
|
|
26
|
-
makeObservable<
|
|
26
|
+
makeObservable<
|
|
27
|
+
LazyPromise<T>,
|
|
28
|
+
'_instance' | '_busy' | 'setInstance' | 'ensureInstanceLoading'
|
|
29
|
+
>(this, {
|
|
27
30
|
_instance: observable.ref,
|
|
28
31
|
_busy: observable,
|
|
29
32
|
setInstance: action,
|
|
33
|
+
ensureInstanceLoading: action,
|
|
30
34
|
reset: action,
|
|
31
35
|
});
|
|
32
36
|
}
|
package/src/lazy/promise.ts
CHANGED
|
@@ -18,17 +18,21 @@ export class LazyPromise<T> implements IDisposable {
|
|
|
18
18
|
get hasValue() { return this._busy === false; }
|
|
19
19
|
|
|
20
20
|
get promise() {
|
|
21
|
+
this.ensureInstanceLoading();
|
|
21
22
|
return this._promise;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
get value() {
|
|
26
|
+
this.ensureInstanceLoading();
|
|
27
|
+
return this._instance;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
protected ensureInstanceLoading() {
|
|
25
31
|
if (this._busy === null) {
|
|
26
32
|
this._busy = true;
|
|
27
33
|
this._promise = this._factory();
|
|
28
34
|
this._promise.then(this.setInstance);
|
|
29
35
|
}
|
|
30
|
-
|
|
31
|
-
return this._instance;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
private setInstance = (res: T) => {
|
package/yarn.lock
CHANGED
|
@@ -3235,7 +3235,7 @@ type-fest@^0.20.2:
|
|
|
3235
3235
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
|
|
3236
3236
|
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
|
|
3237
3237
|
|
|
3238
|
-
typescript
|
|
3238
|
+
typescript@^4.8.3:
|
|
3239
3239
|
version "4.8.3"
|
|
3240
3240
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88"
|
|
3241
3241
|
integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==
|