@zajno/common 1.4.3 → 1.4.7

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 (100) hide show
  1. package/.nvmrc +1 -1
  2. package/README.md +5 -5
  3. package/coverage/clover.xml +391 -106
  4. package/coverage/coverage-final.json +17 -12
  5. package/coverage/lcov-report/index.html +38 -38
  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 +24 -9
  10. package/coverage/lcov-report/src/async/timeout.ts.html +230 -0
  11. package/coverage/lcov-report/src/cache.ts.html +623 -0
  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 +332 -0
  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 +1 -1
  27. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  28. package/coverage/lcov-report/src/functions.ts.html +1 -1
  29. package/coverage/lcov-report/src/index.html +70 -10
  30. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/batch.ts.html +2 -2
  32. package/coverage/lcov-report/src/logger/console.ts.html +5 -5
  33. package/coverage/lcov-report/src/logger/index.html +1 -1
  34. package/coverage/lcov-report/src/logger/index.ts.html +22 -22
  35. package/coverage/lcov-report/src/logger/named.ts.html +13 -13
  36. package/coverage/lcov-report/src/logger/proxy.ts.html +7 -7
  37. package/coverage/lcov-report/src/math/arrays.ts.html +23 -23
  38. package/coverage/lcov-report/src/math/calc.ts.html +9 -9
  39. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  40. package/coverage/lcov-report/src/math/index.html +1 -1
  41. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  42. package/coverage/lcov-report/src/observers.ts.html +368 -0
  43. package/coverage/lcov-report/src/observersMap.ts.html +395 -0
  44. package/coverage/lcov-report/src/observingCache.ts.html +530 -0
  45. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  46. package/coverage/lcov-report/src/types.ts.html +5 -5
  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 +2 -2
  54. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +24 -24
  58. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  59. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  60. package/coverage/lcov-report/src/viewModels/index.html +15 -15
  61. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  62. package/coverage/lcov.info +734 -130
  63. package/lib/cache.d.ts +6 -2
  64. package/lib/cache.d.ts.map +1 -1
  65. package/lib/cache.js +20 -4
  66. package/lib/cache.js.map +1 -1
  67. package/lib/observersMap.d.ts +22 -0
  68. package/lib/observersMap.d.ts.map +1 -0
  69. package/lib/observersMap.js +93 -0
  70. package/lib/observersMap.js.map +1 -0
  71. package/lib/observingCache.d.ts +31 -0
  72. package/lib/observingCache.d.ts.map +1 -0
  73. package/lib/observingCache.js +118 -0
  74. package/lib/observingCache.js.map +1 -0
  75. package/lib/validation/validators.js +1 -1
  76. package/lib/viewModels/CommonModel.d.ts.map +1 -1
  77. package/lib/viewModels/CommonModel.js +1 -0
  78. package/lib/viewModels/CommonModel.js.map +1 -1
  79. package/lib/viewModels/InitializableModel.d.ts +6 -0
  80. package/lib/viewModels/InitializableModel.d.ts.map +1 -0
  81. package/lib/viewModels/InitializableModel.js +23 -0
  82. package/lib/viewModels/InitializableModel.js.map +1 -0
  83. package/lib/viewModels/ValueModel.d.ts +12 -0
  84. package/lib/viewModels/ValueModel.d.ts.map +1 -0
  85. package/lib/viewModels/ValueModel.js +29 -0
  86. package/lib/viewModels/ValueModel.js.map +1 -0
  87. package/lib/viewModels/index.d.ts +2 -1
  88. package/lib/viewModels/index.d.ts.map +1 -1
  89. package/lib/viewModels/index.js +2 -1
  90. package/lib/viewModels/index.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/__tests__/observingCache.test.ts +127 -0
  93. package/src/cache.ts +25 -4
  94. package/src/observersMap.ts +105 -0
  95. package/src/observingCache.ts +150 -0
  96. package/src/validation/validators.ts +1 -1
  97. package/src/viewModels/CommonModel.ts +2 -0
  98. package/src/viewModels/InitializableModel.ts +17 -0
  99. package/src/viewModels/ValueModel.ts +34 -0
  100. package/src/viewModels/index.ts +4 -1
@@ -190,7 +190,7 @@ export namespace DateX {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
193
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../prettify.js"></script>
@@ -382,7 +382,7 @@ export namespace Format {
382
382
  <div class='footer quiet pad2 space-top1 center small'>
383
383
  Code coverage generated by
384
384
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
385
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
386
386
  </div>
387
387
  </div>
388
388
  <script src="../../prettify.js"></script>
@@ -230,7 +230,7 @@
230
230
  <div class='footer quiet pad2 space-top1 center small'>
231
231
  Code coverage generated by
232
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
233
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
233
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
234
234
  </div>
235
235
  </div>
236
236
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './yearDate';
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 Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
94
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -136,7 +136,7 @@ export namespace Parse {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
139
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  </div>
142
142
  <script src="../../prettify.js"></script>
@@ -133,7 +133,7 @@ export namespace Period {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
136
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
136
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  </div>
139
139
  <script src="../../prettify.js"></script>
@@ -334,7 +334,7 @@ export function isSame(d1: Date | number, d2: Date | number, g: Granularity, loc
334
334
  <div class='footer quiet pad2 space-top1 center small'>
335
335
  Code coverage generated by
336
336
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
337
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
337
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
338
338
  </div>
339
339
  </div>
340
340
  <script src="../../prettify.js"></script>
@@ -160,7 +160,7 @@ export namespace ConstantGranularity {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
163
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
163
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
@@ -172,7 +172,7 @@ export namespace YearDate {
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
175
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -0,0 +1,332 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/disposer.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> disposer.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">65% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>26/40</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">35% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>7/20</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">83.33% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>10/12</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">62.16% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>23/37</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line medium'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a>
92
+ <a name='L33'></a><a href='#L33'>33</a>
93
+ <a name='L34'></a><a href='#L34'>34</a>
94
+ <a name='L35'></a><a href='#L35'>35</a>
95
+ <a name='L36'></a><a href='#L36'>36</a>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a>
111
+ <a name='L52'></a><a href='#L52'>52</a>
112
+ <a name='L53'></a><a href='#L53'>53</a>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a>
124
+ <a name='L65'></a><a href='#L65'>65</a>
125
+ <a name='L66'></a><a href='#L66'>66</a>
126
+ <a name='L67'></a><a href='#L67'>67</a>
127
+ <a name='L68'></a><a href='#L68'>68</a>
128
+ <a name='L69'></a><a href='#L69'>69</a>
129
+ <a name='L70'></a><a href='#L70'>70</a>
130
+ <a name='L71'></a><a href='#L71'>71</a>
131
+ <a name='L72'></a><a href='#L72'>72</a>
132
+ <a name='L73'></a><a href='#L73'>73</a>
133
+ <a name='L74'></a><a href='#L74'>74</a>
134
+ <a name='L75'></a><a href='#L75'>75</a>
135
+ <a name='L76'></a><a href='#L76'>76</a>
136
+ <a name='L77'></a><a href='#L77'>77</a>
137
+ <a name='L78'></a><a href='#L78'>78</a>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a>
140
+ <a name='L81'></a><a href='#L81'>81</a>
141
+ <a name='L82'></a><a href='#L82'>82</a>
142
+ <a name='L83'></a><a href='#L83'>83</a>
143
+ <a name='L84'></a><a href='#L84'>84</a>
144
+ <a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-yes">1x</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-yes">2x</span>
157
+ <span class="cline-any cline-yes">2x</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-yes">2x</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-yes">2x</span>
163
+ <span class="cline-any cline-no">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-yes">2x</span>
167
+ <span class="cline-any cline-yes">2x</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-yes">2x</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-yes">2x</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-no">&nbsp;</span>
175
+ <span class="cline-any cline-no">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-no">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-no">&nbsp;</span>
184
+ <span class="cline-any cline-no">&nbsp;</span>
185
+ <span class="cline-any cline-no">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-no">&nbsp;</span>
189
+ <span class="cline-any cline-no">&nbsp;</span>
190
+ <span class="cline-any cline-no">&nbsp;</span>
191
+ <span class="cline-any cline-no">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-no">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-yes">2x</span>
199
+ <span class="cline-any cline-no">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-no">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-yes">2x</span>
206
+ <span class="cline-any cline-yes">2x</span>
207
+ <span class="cline-any cline-yes">2x</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-yes">2x</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-yes">1x</span>
215
+ <span class="cline-any cline-yes">1x</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">1x</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-yes">2x</span>
221
+ <span class="cline-any cline-yes">2x</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-yes">2x</span>
224
+ <span class="cline-any cline-yes">2x</span>
225
+ <span class="cline-any cline-yes">2x</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-neutral">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import logger from './logger';
229
+ &nbsp;
230
+ export interface IDisposable {
231
+ dispose(): void;
232
+ }
233
+ &nbsp;
234
+ export interface DisposeFunction {
235
+ (): void;
236
+ }
237
+ &nbsp;
238
+ export class Disposer {
239
+ &nbsp;
240
+ private readonly _disposers: DisposeFunction[] = [];
241
+ private readonly _map = new Map&lt;string, DisposeFunction&gt;();
242
+ &nbsp;
243
+ constructor(readonly logName: string = null) { }
244
+ &nbsp;
245
+ add(d: DisposeFunction | IDisposable, id?: string) {
246
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!d) {
247
+ <span class="cstat-no" title="statement not covered" > return;</span>
248
+ }
249
+ &nbsp;
250
+ const dd: DisposeFunction = typeof d !== 'function'
251
+ ? (() =&gt; d.dispose ? d.dispose() : <span class="branch-1 cbranch-no" title="branch not covered" >null)</span>
252
+ : <span class="branch-1 cbranch-no" title="branch not covered" >d;</span>
253
+ &nbsp;
254
+ this._disposers.push(dd);
255
+ &nbsp;
256
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (id) {
257
+ // dispose previous identified disposer
258
+ <span class="cstat-no" title="statement not covered" > if (this._map.has(id)) {</span>
259
+ <span class="cstat-no" title="statement not covered" > this.execute(id);</span>
260
+ }
261
+ &nbsp;
262
+ <span class="cstat-no" title="statement not covered" > this._map.set(id, dd);</span>
263
+ }
264
+ }
265
+ &nbsp;
266
+ <span class="fstat-no" title="function not covered" > execute(</span>id: string) {
267
+ const d = <span class="cstat-no" title="statement not covered" >this._map.get(id);</span>
268
+ <span class="cstat-no" title="statement not covered" > if (!d) {</span>
269
+ <span class="cstat-no" title="statement not covered" > return;</span>
270
+ }
271
+ &nbsp;
272
+ <span class="cstat-no" title="statement not covered" > this._map.delete(id);</span>
273
+ const i = <span class="cstat-no" title="statement not covered" >this._disposers.indexOf(d);</span>
274
+ <span class="cstat-no" title="statement not covered" > if (i &gt;= 0) {</span>
275
+ <span class="cstat-no" title="statement not covered" > this._disposers.splice(i, 1);</span>
276
+ }
277
+ &nbsp;
278
+ <span class="cstat-no" title="statement not covered" > d();</span>
279
+ }
280
+ &nbsp;
281
+ dispose(log = false) {
282
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (log) {
283
+ <span class="cstat-no" title="statement not covered" > logger.log(</span>
284
+ `[Disposer:${this.logName || '&lt;unknown&gt;'}] Disposing ${this._disposers.length} items including named ones:`,
285
+ Array.from(this._map.entries()).map(<span class="fstat-no" title="function not covered" >e </span>=&gt; <span class="cstat-no" title="statement not covered" >e[0])</span>,
286
+ );
287
+ }
288
+ &nbsp;
289
+ const copy = this._disposers.slice().reverse();
290
+ this._disposers.length = 0;
291
+ this._map.clear();
292
+ &nbsp;
293
+ // this should separate side effects
294
+ copy.forEach(d =&gt; d());
295
+ }
296
+ }
297
+ &nbsp;
298
+ export function combineDisposers(...items: DisposeFunction[]): DisposeFunction {
299
+ return () =&gt; items.forEach(i =&gt; i());
300
+ }
301
+ &nbsp;
302
+ export class Disposable implements IDisposable {
303
+ &nbsp;
304
+ protected readonly disposer = new Disposer();
305
+ protected _isDisposed = false;
306
+ &nbsp;
307
+ public dispose = () =&gt; {
308
+ this._isDisposed = true;
309
+ this.disposer.dispose();
310
+ };
311
+ }
312
+ &nbsp;</pre></td></tr></table></pre>
313
+
314
+ <div class='push'></div><!-- for sticky footer -->
315
+ </div><!-- /wrapper -->
316
+ <div class='footer quiet pad2 space-top1 center small'>
317
+ Code coverage generated by
318
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
319
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
320
+ </div>
321
+ </div>
322
+ <script src="../prettify.js"></script>
323
+ <script>
324
+ window.onload = function () {
325
+ prettyPrint();
326
+ };
327
+ </script>
328
+ <script src="../sorter.js"></script>
329
+ <script src="../block-navigation.js"></script>
330
+ </body>
331
+ </html>
332
+
@@ -433,7 +433,7 @@ export class EnumBitwiseHelper&lt;T extends number&gt; extends EnumHelper&lt;T&g
433
433
  <div class='footer quiet pad2 space-top1 center small'>
434
434
  Code coverage generated by
435
435
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
436
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
436
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
437
437
  </div>
438
438
  </div>
439
439
  <script src="../prettify.js"></script>
@@ -262,7 +262,7 @@ export class Event&lt;T = any&gt; implements IEvent&lt;T&gt; {
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
265
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
265
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  </div>
268
268
  <script src="../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -415,7 +415,7 @@ export function updateArray&lt;T&gt;(
415
415
  <div class='footer quiet pad2 space-top1 center small'>
416
416
  Code coverage generated by
417
417
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
418
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
418
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
419
419
  </div>
420
420
  </div>
421
421
  <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 Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
109
+ at Tue Feb 15 2022 21:38:42 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">86.84% </span>
26
+ <span class="strong">78.3% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>165/190</span>
28
+ <span class='fraction'>350/447</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.18% </span>
33
+ <span class="strong">66.37% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>83/101</span>
35
+ <span class='fraction'>148/223</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">79.71% </span>
40
+ <span class="strong">73.38% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>55/69</span>
42
+ <span class='fraction'>102/139</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.96% </span>
47
+ <span class="strong">78.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>160/184</span>
49
+ <span class='fraction'>335/428</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line medium'></div>
59
59
  <div class="pad1">
60
60
  <table class="coverage-summary">
61
61
  <thead>
@@ -73,6 +73,36 @@
73
73
  </tr>
74
74
  </thead>
75
75
  <tbody><tr>
76
+ <td class="file high" data-value="cache.ts"><a href="cache.ts.html">cache.ts</a></td>
77
+ <td data-value="81.91" class="pic high">
78
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
79
+ </td>
80
+ <td data-value="81.91" class="pct high">81.91%</td>
81
+ <td data-value="94" class="abs high">77/94</td>
82
+ <td data-value="56.52" class="pct medium">56.52%</td>
83
+ <td data-value="46" class="abs medium">26/46</td>
84
+ <td data-value="71.43" class="pct medium">71.43%</td>
85
+ <td data-value="28" class="abs medium">20/28</td>
86
+ <td data-value="80.9" class="pct high">80.9%</td>
87
+ <td data-value="89" class="abs high">72/89</td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <td class="file medium" data-value="disposer.ts"><a href="disposer.ts.html">disposer.ts</a></td>
92
+ <td data-value="65" class="pic medium">
93
+ <div class="chart"><div class="cover-fill" style="width: 65%"></div><div class="cover-empty" style="width: 35%"></div></div>
94
+ </td>
95
+ <td data-value="65" class="pct medium">65%</td>
96
+ <td data-value="40" class="abs medium">26/40</td>
97
+ <td data-value="35" class="pct low">35%</td>
98
+ <td data-value="20" class="abs low">7/20</td>
99
+ <td data-value="83.33" class="pct high">83.33%</td>
100
+ <td data-value="12" class="abs high">10/12</td>
101
+ <td data-value="62.16" class="pct medium">62.16%</td>
102
+ <td data-value="37" class="abs medium">23/37</td>
103
+ </tr>
104
+
105
+ <tr>
76
106
  <td class="file high" data-value="enumHelper.ts"><a href="enumHelper.ts.html">enumHelper.ts</a></td>
77
107
  <td data-value="100" class="pic high">
78
108
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
@@ -132,6 +162,36 @@
132
162
  <td data-value="11" class="abs high">9/11</td>
133
163
  </tr>
134
164
 
165
+ <tr>
166
+ <td class="file medium" data-value="observersMap.ts"><a href="observersMap.ts.html">observersMap.ts</a></td>
167
+ <td data-value="64.29" class="pic medium">
168
+ <div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
169
+ </td>
170
+ <td data-value="64.29" class="pct medium">64.29%</td>
171
+ <td data-value="56" class="abs medium">36/56</td>
172
+ <td data-value="53.13" class="pct medium">53.13%</td>
173
+ <td data-value="32" class="abs medium">17/32</td>
174
+ <td data-value="60" class="pct medium">60%</td>
175
+ <td data-value="10" class="abs medium">6/10</td>
176
+ <td data-value="66.04" class="pct medium">66.04%</td>
177
+ <td data-value="53" class="abs medium">35/53</td>
178
+ </tr>
179
+
180
+ <tr>
181
+ <td class="file medium" data-value="observingCache.ts"><a href="observingCache.ts.html">observingCache.ts</a></td>
182
+ <td data-value="68.66" class="pic medium">
183
+ <div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
184
+ </td>
185
+ <td data-value="68.66" class="pct medium">68.66%</td>
186
+ <td data-value="67" class="abs medium">46/67</td>
187
+ <td data-value="62.5" class="pct medium">62.5%</td>
188
+ <td data-value="24" class="abs medium">15/24</td>
189
+ <td data-value="55" class="pct medium">55%</td>
190
+ <td data-value="20" class="abs medium">11/20</td>
191
+ <td data-value="69.23" class="pct medium">69.23%</td>
192
+ <td data-value="65" class="abs medium">45/65</td>
193
+ </tr>
194
+
135
195
  <tr>
136
196
  <td class="file high" data-value="transitionObserver.ts"><a href="transitionObserver.ts.html">transitionObserver.ts</a></td>
137
197
  <td data-value="88.64" class="pic high">
@@ -170,7 +230,7 @@
170
230
  <div class='footer quiet pad2 space-top1 center small'>
171
231
  Code coverage generated by
172
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Tue Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
233
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
174
234
  </div>
175
235
  </div>
176
236
  <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 Feb 01 2022 13:21:27 GMT+0000 (Coordinated Universal Time)
154
+ at Tue Feb 15 2022 21:38:42 GMT+0000 (Coordinated Universal Time)
155
155
  </div>
156
156
  </div>
157
157
  <script src="../prettify.js"></script>