@zajno/common 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/coverage/clover.xml +19 -17
  2. package/coverage/coverage-final.json +2 -2
  3. package/coverage/lcov-report/index.html +14 -14
  4. package/coverage/lcov-report/src/__tests__/helpers/expect.ts.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  6. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  8. package/coverage/lcov-report/src/async/index.html +1 -1
  9. package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
  10. package/coverage/lcov-report/src/cache.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.html +1 -1
  16. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  22. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  23. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  24. package/coverage/lcov-report/src/event.ts.html +1 -1
  25. package/coverage/lcov-report/src/fields/index.html +1 -1
  26. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  27. package/coverage/lcov-report/src/functions.ts.html +1 -1
  28. package/coverage/lcov-report/src/index.html +1 -1
  29. package/coverage/lcov-report/src/lazy/index.html +10 -10
  30. package/coverage/lcov-report/src/lazy/light.ts.html +1 -1
  31. package/coverage/lcov-report/src/lazy/observable.ts.html +15 -3
  32. package/coverage/lcov-report/src/lazy/promise.ts.html +22 -10
  33. package/coverage/lcov-report/src/lazy/singleton.ts.html +1 -1
  34. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  35. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  36. package/coverage/lcov-report/src/logger/index.html +1 -1
  37. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  38. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  39. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  40. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  41. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  42. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  43. package/coverage/lcov-report/src/math/index.html +1 -1
  44. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  45. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  46. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  47. package/coverage/lcov-report/src/queue/index.html +1 -1
  48. package/coverage/lcov-report/src/queue/parallel.ts.html +1 -1
  49. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  50. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  51. package/coverage/lcov-report/src/types.ts.html +1 -1
  52. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  53. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  54. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  55. package/coverage/lcov-report/src/validation/index.html +1 -1
  56. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  57. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  58. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  59. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  60. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  61. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  62. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
  63. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  64. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  65. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  66. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  67. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  68. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  69. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  70. package/coverage/lcov.info +29 -25
  71. package/lib/lazy/observable.d.ts.map +1 -1
  72. package/lib/lazy/observable.js +1 -0
  73. package/lib/lazy/observable.js.map +1 -1
  74. package/lib/lazy/promise.d.ts +1 -0
  75. package/lib/lazy/promise.d.ts.map +1 -1
  76. package/lib/lazy/promise.js +5 -1
  77. package/lib/lazy/promise.js.map +1 -1
  78. package/package.json +1 -1
  79. package/src/lazy/__tests__/lazy.test.ts +1 -0
  80. package/src/lazy/observable.ts +5 -1
  81. package/src/lazy/promise.ts +6 -2
  82. 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-22T18:32:33.570Z
379
+ at 2022-09-23T08:36:17.800Z
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-22T18:32:33.570Z
224
+ at 2022-09-23T08:36:17.800Z
225
225
  </div>
226
226
  <script src="../../prettify.js"></script>
227
227
  <script>
@@ -217,7 +217,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, 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-22T18:32:33.570Z
220
+ at 2022-09-23T08:36:17.800Z
221
221
  </div>
222
222
  <script src="../../prettify.js"></script>
223
223
  <script>
@@ -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:34,(anonymous_1)
2200
- FN:47,(anonymous_2)
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:24,(anonymous_6)
2205
- FN:41,(anonymous_7)
2206
- FNF:8
2207
- FNH:8
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:2,(anonymous_5)
2214
+ FNDA:3,(anonymous_5)
2214
2215
  FNDA:6,(anonymous_6)
2215
- FNDA:1,(anonymous_7)
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,2
2226
- DA:25,6
2227
- DA:26,2
2228
- DA:27,2
2229
- DA:28,2
2230
- DA:31,6
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:35,2
2233
- DA:36,2
2234
- DA:42,1
2235
- DA:43,1
2236
- DA:44,1
2237
- DA:47,2
2238
- LF:22
2239
- LH:22
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:36,1,0,2
2242
- BRDA:36,1,1,0
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:25,3,0,2
2249
+ BRDA:31,3,0,2
2246
2250
  BRF:6
2247
2251
  BRH:5
2248
2252
  end_of_record
@@ -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;CAWlB"}
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"}
@@ -22,6 +22,7 @@ class LazyPromiseObservable extends promise_1.LazyPromise {
22
22
  _instance: mobx_1.observable.ref,
23
23
  _busy: mobx_1.observable,
24
24
  setInstance: mobx_1.action,
25
+ ensureInstanceLoading: mobx_1.action,
25
26
  reset: mobx_1.action,
26
27
  });
27
28
  }
@@ -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,EAAwD,IAAI,EAAE;YACxE,SAAS,EAAE,iBAAU,CAAC,GAAG;YACzB,KAAK,EAAE,iBAAU;YACjB,WAAW,EAAE,aAAM;YACnB,KAAK,EAAE,aAAM;SAChB,CAAC,CAAC;IACP,CAAC;CACJ;AAfD,sDAeC"}
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"}
@@ -10,6 +10,7 @@ export declare class LazyPromise<T> implements IDisposable {
10
10
  get hasValue(): boolean;
11
11
  get promise(): Promise<T>;
12
12
  get value(): T;
13
+ protected ensureInstanceLoading(): void;
13
14
  private setInstance;
14
15
  reset(): void;
15
16
  dispose: () => void;
@@ -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,eAEV;IAED,IAAI,KAAK,MAQR;IAED,OAAO,CAAC,WAAW,CAKjB;IAEF,KAAK;IAML,OAAO,aAAsB;CAChC"}
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"}
@@ -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;
@@ -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;QA0B5B,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;QAjCzB,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,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACL,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;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,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;AA7CD,kCA6CC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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 });
@@ -23,10 +23,14 @@ export class LazyPromiseObservable<T> extends LazyPromise<T> {
23
23
  ) {
24
24
  super(factory, initial);
25
25
 
26
- makeObservable<LazyPromise<T>, '_instance' | '_busy' | 'setInstance'>(this, {
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
  }
@@ -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@4.8.3:
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==