@zajno/common 1.5.2 → 1.5.5

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 (92) hide show
  1. package/coverage/clover.xml +134 -119
  2. package/coverage/coverage-final.json +5 -5
  3. package/coverage/lcov-report/async/index.html +1 -1
  4. package/coverage/lcov-report/async/timeout.ts.html +12 -12
  5. package/coverage/lcov-report/index.html +36 -36
  6. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  7. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  8. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  9. package/coverage/lcov-report/src/async/index.html +1 -1
  10. package/coverage/lcov-report/src/async/timeout.ts.html +10 -10
  11. package/coverage/lcov-report/src/cache.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/index.html +1 -1
  17. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  23. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  24. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  25. package/coverage/lcov-report/src/event.ts.html +1 -1
  26. package/coverage/lcov-report/src/fields/index.html +14 -14
  27. package/coverage/lcov-report/src/fields/update.ts.html +40 -19
  28. package/coverage/lcov-report/src/functions.ts.html +1 -1
  29. package/coverage/lcov-report/src/index.html +19 -19
  30. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  32. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  33. package/coverage/lcov-report/src/logger/index.html +1 -1
  34. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  35. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  36. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  37. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  38. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  39. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  40. package/coverage/lcov-report/src/math/index.html +1 -1
  41. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  42. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  43. package/coverage/lcov-report/src/observingCache.ts.html +27 -12
  44. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  45. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  46. package/coverage/lcov-report/src/types.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  48. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  49. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/index.html +1 -1
  51. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  53. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  54. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +106 -34
  58. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  59. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +13 -13
  60. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  61. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  62. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  63. package/coverage/lcov-report/src/viewModels/index.html +19 -19
  64. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  65. package/coverage/lcov-report/validation/index.html +1 -1
  66. package/coverage/lcov-report/validation/index.ts.html +6 -6
  67. package/coverage/lcov-report/viewModels/CommonModel.ts.html +1 -1
  68. package/coverage/lcov-report/viewModels/LoadingModel.ts.html +129 -21
  69. package/coverage/lcov-report/viewModels/SelectModel.ts.html +54 -21
  70. package/coverage/lcov-report/viewModels/TextModel.ts.html +1 -1
  71. package/coverage/lcov-report/viewModels/index.html +23 -83
  72. package/coverage/lcov.info +308 -266
  73. package/lib/fields/update.d.ts +5 -4
  74. package/lib/fields/update.d.ts.map +1 -1
  75. package/lib/fields/update.js +13 -7
  76. package/lib/fields/update.js.map +1 -1
  77. package/lib/observingCache.d.ts +1 -1
  78. package/lib/observingCache.d.ts.map +1 -1
  79. package/lib/observingCache.js +8 -2
  80. package/lib/observingCache.js.map +1 -1
  81. package/lib/viewModels/LoadingModel.d.ts +12 -3
  82. package/lib/viewModels/LoadingModel.d.ts.map +1 -1
  83. package/lib/viewModels/LoadingModel.js +33 -16
  84. package/lib/viewModels/LoadingModel.js.map +1 -1
  85. package/lib/viewModels/types.d.ts +4 -1
  86. package/lib/viewModels/types.d.ts.map +1 -1
  87. package/package.json +1 -1
  88. package/src/fields/update.ts +18 -11
  89. package/src/observingCache.ts +7 -2
  90. package/src/viewModels/LoadingModel.ts +41 -17
  91. package/src/viewModels/__tests__/common.test.ts +27 -8
  92. package/src/viewModels/types.ts +5 -1
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.93% </span>
26
+ <span class="strong">75.44% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>41/54</span>
28
+ <span class='fraction'>43/57</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.77% </span>
33
+ <span class="strong">80.68% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>63/78</span>
35
+ <span class='fraction'>71/88</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.43% </span>
47
+ <span class="strong">79.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/46</span>
49
+ <span class='fraction'>39/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -174,7 +174,14 @@
174
174
  <a name='L115'></a><a href='#L115'>115</a>
175
175
  <a name='L116'></a><a href='#L116'>116</a>
176
176
  <a name='L117'></a><a href='#L117'>117</a>
177
- <a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a>
184
+ <a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
178
185
  <span class="cline-any cline-neutral">&nbsp;</span>
179
186
  <span class="cline-any cline-neutral">&nbsp;</span>
180
187
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -230,6 +237,7 @@
230
237
  <span class="cline-any cline-neutral">&nbsp;</span>
231
238
  <span class="cline-any cline-neutral">&nbsp;</span>
232
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
241
  <span class="cline-any cline-yes">1x</span>
234
242
  <span class="cline-any cline-neutral">&nbsp;</span>
235
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -264,12 +272,18 @@
264
272
  <span class="cline-any cline-neutral">&nbsp;</span>
265
273
  <span class="cline-any cline-neutral">&nbsp;</span>
266
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">5x</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
277
  <span class="cline-any cline-neutral">&nbsp;</span>
268
278
  <span class="cline-any cline-yes">5x</span>
269
279
  <span class="cline-any cline-yes">15x</span>
270
280
  <span class="cline-any cline-yes">12x</span>
271
281
  <span class="cline-any cline-yes">12x</span>
272
282
  <span class="cline-any cline-yes">7x</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">7x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
287
  <span class="cline-any cline-yes">7x</span>
274
288
  <span class="cline-any cline-yes">7x</span>
275
289
  <span class="cline-any cline-yes">5x</span>
@@ -334,6 +348,7 @@ const DefaultUpdater: Fields.Updater&lt;any&gt; = <span class="fstat-no" title="
334
348
  &nbsp;
335
349
  export type UpdateArrayOptions&lt;T&gt; = {
336
350
  additive?: boolean,
351
+ unshift?: boolean,
337
352
  clone?: boolean,
338
353
  comparator?: Comparator&lt;T&gt;,
339
354
  updater?: Fields.Updater&lt;T&gt;,
@@ -342,14 +357,14 @@ export type UpdateArrayOptions&lt;T&gt; = {
342
357
  };
343
358
  &nbsp;
344
359
  export type UpdateArrayHooks&lt;T&gt; = {
345
- onAdded?: (item: T) =&gt; void,
346
- onDeleted?: (item: T) =&gt; void,
347
- onUpdated?: (previous: T, next: T) =&gt; void,
360
+ onAdded?: (item: T, index?: number) =&gt; void,
361
+ onDeleted?: (item: T, index?: number) =&gt; void,
362
+ onUpdated?: (previous: T, next: T, index?: number) =&gt; void,
348
363
  };
349
364
  &nbsp;
350
365
  export function updateArray&lt;T&gt;(
351
366
  target: T[] | null,
352
- source: T[],
367
+ source: T[] | null,
353
368
  options?: UpdateArrayOptions&lt;T&gt;,
354
369
  ): { changed: number, result: T[] } {
355
370
  if (!source) {
@@ -373,27 +388,33 @@ export function updateArray&lt;T&gt;(
373
388
  if (source.find(item =&gt; comparator(item, result[i])) == null) {
374
389
  // DELETE
375
390
  const removed = result.splice(i, 1);
376
- safeCall(onDeleted, removed[0]);
391
+ safeCall(onDeleted, removed[0], i);
377
392
  &nbsp;
378
393
  ++changed;
379
394
  --i;
380
395
  }
381
396
  }
382
397
  }
398
+ &nbsp;
399
+ const unshift = options?.unshift || false;
383
400
  &nbsp;
384
401
  // add all new elements and update existing
385
- source.forEach(i =&gt; {
386
- const existingIndex = result.findIndex(item =&gt; comparator(i, item));
402
+ source.forEach(item =&gt; {
403
+ const existingIndex = result.findIndex(i =&gt; comparator(item, i));
387
404
  const existingItem = result[existingIndex];
388
405
  if (existingIndex &lt; 0) {
389
- result.push(i);
390
- safeCall(onAdded, i);
406
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (unshift) {
407
+ <span class="cstat-no" title="statement not covered" > result.unshift(item);</span>
408
+ } else {
409
+ result.push(item);
410
+ }
411
+ safeCall(onAdded, item, unshift ? <span class="branch-0 cbranch-no" title="branch not covered" >0 </span>: result.length - 1);
391
412
  ++changed;
392
413
  } else if (typeof existingItem === 'object') {
393
414
  const before = onUpdate != null ? <span class="branch-0 cbranch-no" title="branch not covered" >{ ...existingItem } </span>: undefined;
394
- result[existingIndex] = updater(existingItem, i);
415
+ result[existingIndex] = updater(existingItem, item);
395
416
  <span class="missing-if-branch" title="if path not taken" >I</span>if (onUpdate != null) {
396
- <span class="cstat-no" title="statement not covered" > onUpdate(before!, result[existingIndex]);</span>
417
+ <span class="cstat-no" title="statement not covered" > onUpdate(before!, result[existingIndex], existingIndex);</span>
397
418
  }
398
419
  }
399
420
  });
@@ -415,7 +436,7 @@ export function updateArray&lt;T&gt;(
415
436
  <div class='footer quiet pad2 space-top1 center small'>
416
437
  Code coverage generated by
417
438
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
418
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
439
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
419
440
  </div>
420
441
  </div>
421
442
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ export function safeCall&lt;T extends (...args: any) =&gt; any&gt;(cb: T | undef
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
109
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.19% </span>
26
+ <span class="strong">77.56% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>362/463</span>
28
+ <span class='fraction'>363/468</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.96% </span>
33
+ <span class="strong">66.38% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>152/227</span>
35
+ <span class='fraction'>152/229</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">73.43% </span>
40
+ <span class="strong">72.92% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>105/143</span>
42
+ <span class='fraction'>105/144</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.1% </span>
47
+ <span class="strong">77.63% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>346/443</span>
49
+ <span class='fraction'>347/447</span>
50
50
  </div>
51
51
 
52
52
 
@@ -179,17 +179,17 @@
179
179
 
180
180
  <tr>
181
181
  <td class="file medium" data-value="observingCache.ts"><a href="observingCache.ts.html">observingCache.ts</a></td>
182
- <td data-value="67.14" class="pic medium">
183
- <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
182
+ <td data-value="64" class="pic medium">
183
+ <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
184
184
  </td>
185
- <td data-value="67.14" class="pct medium">67.14%</td>
186
- <td data-value="70" class="abs medium">47/70</td>
187
- <td data-value="61.54" class="pct medium">61.54%</td>
188
- <td data-value="26" class="abs medium">16/26</td>
189
- <td data-value="52.38" class="pct medium">52.38%</td>
190
- <td data-value="21" class="abs medium">11/21</td>
191
- <td data-value="67.65" class="pct medium">67.65%</td>
192
- <td data-value="68" class="abs medium">46/68</td>
185
+ <td data-value="64" class="pct medium">64%</td>
186
+ <td data-value="75" class="abs medium">48/75</td>
187
+ <td data-value="57.14" class="pct medium">57.14%</td>
188
+ <td data-value="28" class="abs medium">16/28</td>
189
+ <td data-value="50" class="pct medium">50%</td>
190
+ <td data-value="22" class="abs medium">11/22</td>
191
+ <td data-value="65.28" class="pct medium">65.28%</td>
192
+ <td data-value="72" class="abs medium">47/72</td>
193
193
  </tr>
194
194
 
195
195
  <tr>
@@ -245,7 +245,7 @@
245
245
  <div class='footer quiet pad2 space-top1 center small'>
246
246
  Code coverage generated by
247
247
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
248
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
248
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
249
249
  </div>
250
250
  </div>
251
251
  <script src="../prettify.js"></script>
@@ -151,7 +151,7 @@ export function createLazy&lt;T&gt;(factory: () =&gt; T) {
151
151
  <div class='footer quiet pad2 space-top1 center small'>
152
152
  Code coverage generated by
153
153
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
154
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
154
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
155
155
  </div>
156
156
  </div>
157
157
  <script src="../prettify.js"></script>
@@ -91,7 +91,7 @@ export function batchLoggers(...loggers: ILogger[]): ILogger {
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
94
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -220,7 +220,7 @@ export class BufferedConsoleLogger implements ILogger {
220
220
  <div class='footer quiet pad2 space-top1 center small'>
221
221
  Code coverage generated by
222
222
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
223
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
223
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
224
224
  </div>
225
225
  </div>
226
226
  <script src="../../prettify.js"></script>
@@ -155,7 +155,7 @@
155
155
  <div class='footer quiet pad2 space-top1 center small'>
156
156
  Code coverage generated by
157
157
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
158
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
158
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
159
159
  </div>
160
160
  </div>
161
161
  <script src="../../prettify.js"></script>
@@ -277,7 +277,7 @@ function _createImplementation(overrideMode: typeof Mode = undefined): ILogger {
277
277
  <div class='footer quiet pad2 space-top1 center small'>
278
278
  Code coverage generated by
279
279
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
280
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
280
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
281
281
  </div>
282
282
  </div>
283
283
  <script src="../../prettify.js"></script>
@@ -205,7 +205,7 @@ export abstract class NamedLogger implements ILogger, ILoggerSwitchable {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
208
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
208
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  </div>
211
211
  <script src="../../prettify.js"></script>
@@ -151,7 +151,7 @@ export class ProxyLogger extends NamedLogger {
151
151
  <div class='footer quiet pad2 space-top1 center small'>
152
152
  Code coverage generated by
153
153
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
154
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
154
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
155
155
  </div>
156
156
  </div>
157
157
  <script src="../../prettify.js"></script>
@@ -847,7 +847,7 @@ export function arrayRepeat&lt;T&gt;(factory: Getter&lt;T&gt;, count = <span cla
847
847
  <div class='footer quiet pad2 space-top1 center small'>
848
848
  Code coverage generated by
849
849
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
850
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
850
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
851
851
  </div>
852
852
  </div>
853
853
  <script src="../../prettify.js"></script>
@@ -271,7 +271,7 @@ export function <span class="fstat-no" title="function not covered" >badRandomSt
271
271
  <div class='footer quiet pad2 space-top1 center small'>
272
272
  Code coverage generated by
273
273
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
274
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
274
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
275
275
  </div>
276
276
  </div>
277
277
  <script src="../../prettify.js"></script>
@@ -124,7 +124,7 @@ export function extendDistribution&lt;T extends keyof any&gt;(count: number, typ
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
127
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
127
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  </div>
130
130
  <script src="../../prettify.js"></script>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
143
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../../prettify.js"></script>
@@ -145,7 +145,7 @@ export function format(n: number, digits?: number) {
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
148
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
148
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  </div>
151
151
  <script src="../../prettify.js"></script>
@@ -379,7 +379,7 @@ export class ObserversMap implements IDisposable {
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
382
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
382
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  </div>
385
385
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">67.14% </span>
26
+ <span class="strong">64% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/70</span>
28
+ <span class='fraction'>48/75</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">61.54% </span>
33
+ <span class="strong">57.14% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/26</span>
35
+ <span class='fraction'>16/28</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">52.38% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/21</span>
42
+ <span class='fraction'>11/22</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">67.65% </span>
47
+ <span class="strong">65.28% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>46/68</span>
49
+ <span class='fraction'>47/72</span>
50
50
  </div>
51
51
 
52
52
 
@@ -212,11 +212,17 @@
212
212
  <a name='L153'></a><a href='#L153'>153</a>
213
213
  <a name='L154'></a><a href='#L154'>154</a>
214
214
  <a name='L155'></a><a href='#L155'>155</a>
215
- <a name='L156'></a><a href='#L156'>156</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
216
221
  <span class="cline-any cline-yes">1x</span>
217
222
  <span class="cline-any cline-yes">1x</span>
218
223
  <span class="cline-any cline-yes">1x</span>
219
224
  <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-yes">1x</span>
220
226
  <span class="cline-any cline-neutral">&nbsp;</span>
221
227
  <span class="cline-any cline-neutral">&nbsp;</span>
222
228
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -289,6 +295,10 @@
289
295
  <span class="cline-any cline-neutral">&nbsp;</span>
290
296
  <span class="cline-any cline-no">&nbsp;</span>
291
297
  <span class="cline-any cline-no">&nbsp;</span>
298
+ <span class="cline-any cline-no">&nbsp;</span>
299
+ <span class="cline-any cline-no">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-no">&nbsp;</span>
292
302
  <span class="cline-any cline-neutral">&nbsp;</span>
293
303
  <span class="cline-any cline-neutral">&nbsp;</span>
294
304
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -372,6 +382,7 @@ import { Disposable } from './disposer';
372
382
  import { PromiseCache, DeferredGetter } from './cache';
373
383
  import { ObserversMap } from './observersMap';
374
384
  import { Fields } from './fields';
385
+ import logger from './logger';
375
386
  &nbsp;
376
387
  export type Unsub = () =&gt; void;
377
388
  export type Fetcher&lt;T&gt; = (key: string, cb: (val: T) =&gt; Promise&lt;void&gt; | void) =&gt; Unsub | Promise&lt;Unsub&gt;;
@@ -431,7 +442,7 @@ export class ObservingCache&lt;T&gt; extends Disposable implements IObservingCac
431
442
  <span class="cstat-no" title="statement not covered" > return this._cache.getCurrent(key, false);</span>
432
443
  }
433
444
  &nbsp;
434
- get(key: string, overrideStrategy?: ObserveStrategy): DeferredGetter&lt;T&gt; {
445
+ get(key: string, overrideStrategy?: ObserveStrategy, observingStartedPromise?: (p: Promise&lt;void&gt;) =&gt; void): DeferredGetter&lt;T&gt; {
435
446
  <span class="missing-if-branch" title="if path not taken" >I</span>if (overrideStrategy !== undefined) {
436
447
  <span class="cstat-no" title="statement not covered" > this._observeStrategyOverrides[key] = overrideStrategy;</span>
437
448
  }
@@ -443,7 +454,11 @@ export class ObservingCache&lt;T&gt; extends Disposable implements IObservingCac
443
454
  <span class="missing-if-branch" title="if path not taken" >I</span>if (this._cache.hasKey(key)) {
444
455
  // the request has been initiated already
445
456
  const timeout = <span class="cstat-no" title="statement not covered" >getObserveTimeout(strategy);</span>
446
- <span class="cstat-no" title="statement not covered" > this._observers.enable(key, true, timeout);</span>
457
+ const promise = <span class="cstat-no" title="statement not covered" >this._observers.enable(key, true, timeout);</span>
458
+ <span class="cstat-no" title="statement not covered" > if (observingStartedPromise) {</span>
459
+ <span class="cstat-no" title="statement not covered" > observingStartedPromise(promise);</span>
460
+ }
461
+ <span class="cstat-no" title="statement not covered" > promise.catch(<span class="fstat-no" title="function not covered" >err </span>=&gt; <span class="cstat-no" title="statement not covered" >logger.error('[ObservingCache] Error on starting observe', key, strategy, err))</span>;</span>
447
462
  }
448
463
  }
449
464
  &nbsp;
@@ -529,7 +544,7 @@ function firstDefined&lt;T&gt;(...values: (T | undefined)[]) {
529
544
  <div class='footer quiet pad2 space-top1 center small'>
530
545
  Code coverage generated by
531
546
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
532
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
547
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
533
548
  </div>
534
549
  </div>
535
550
  <script src="../prettify.js"></script>
@@ -118,7 +118,7 @@ export class TempoCache&lt;T&gt; {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
121
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
121
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  </div>
124
124
  <script src="../prettify.js"></script>
@@ -613,7 +613,7 @@ export function <span class="fstat-no" title="function not covered" >waitFor&lt;
613
613
  <div class='footer quiet pad2 space-top1 center small'>
614
614
  Code coverage generated by
615
615
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
616
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
616
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
617
617
  </div>
618
618
  </div>
619
619
  <script src="../prettify.js"></script>
@@ -154,7 +154,7 @@ export type TypedKeys&lt;T extends Object, K&gt; = {
154
154
  <div class='footer quiet pad2 space-top1 center small'>
155
155
  Code coverage generated by
156
156
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
157
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
157
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
158
158
  </div>
159
159
  </div>
160
160
  <script src="../prettify.js"></script>
@@ -142,7 +142,7 @@ export namespace <span class="branch-1 cbranch-no" title="branch not covered" >V
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
145
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -139,7 +139,7 @@ export default {
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
142
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -205,7 +205,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
208
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
208
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  </div>
211
211
  <script src="../../prettify.js"></script>
@@ -185,7 +185,7 @@
185
185
  <div class='footer quiet pad2 space-top1 center small'>
186
186
  Code coverage generated by
187
187
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
188
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
188
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './helpers';
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
94
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -118,7 +118,7 @@ export class ValidationError&lt;TErrors = ValidationErrors&gt; extends Error {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
121
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
121
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  </div>
124
124
  <script src="../../prettify.js"></script>
@@ -229,7 +229,7 @@ export const Validators = {
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
232
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
232
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  </div>
235
235
  <script src="../../prettify.js"></script>
@@ -142,7 +142,7 @@ export const Wrappers = {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
145
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -199,7 +199,7 @@ export class CommonModel&lt;T = any&gt; extends ValidatableModel&lt;T&gt; {
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
202
- at Tue May 24 2022 13:49:19 GMT+0000 (Coordinated Universal Time)
202
+ at Sat Jun 18 2022 09:26:04 GMT+0000 (Coordinated Universal Time)
203
203
  </div>
204
204
  </div>
205
205
  <script src="../../prettify.js"></script>