@zajno/common 1.3.11 → 1.3.15

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 +35 -32
  2. package/coverage/coverage-final.json +4 -4
  3. package/coverage/lcov-report/index.html +26 -26
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  9. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/fields/index.html +1 -1
  22. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  23. package/coverage/lcov-report/src/functions.ts.html +1 -1
  24. package/coverage/lcov-report/src/index.html +15 -15
  25. package/coverage/lcov-report/src/lazy.light.ts.html +33 -21
  26. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/index.html +1 -1
  29. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/index.html +1 -1
  36. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  37. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  38. package/coverage/lcov-report/src/types.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/types.ts.html +6 -6
  45. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  50. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -10
  51. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +44 -44
  52. package/coverage/lcov-report/src/viewModels/index.html +28 -28
  53. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  54. package/coverage/lcov.info +62 -57
  55. package/lib/disposer.d.ts.map +1 -1
  56. package/lib/disposer.js +3 -1
  57. package/lib/disposer.js.map +1 -1
  58. package/lib/lazy.d.ts +6 -2
  59. package/lib/lazy.d.ts.map +1 -1
  60. package/lib/lazy.js +22 -12
  61. package/lib/lazy.js.map +1 -1
  62. package/lib/lazy.light.d.ts +2 -1
  63. package/lib/lazy.light.d.ts.map +1 -1
  64. package/lib/lazy.light.js +11 -9
  65. package/lib/lazy.light.js.map +1 -1
  66. package/lib/pool.d.ts +12 -4
  67. package/lib/pool.d.ts.map +1 -1
  68. package/lib/pool.js +28 -5
  69. package/lib/pool.js.map +1 -1
  70. package/lib/validation/types.d.ts +5 -5
  71. package/lib/validation/types.d.ts.map +1 -1
  72. package/lib/validation/types.js.map +1 -1
  73. package/lib/validation/wrappers.d.ts +4 -3
  74. package/lib/validation/wrappers.d.ts.map +1 -1
  75. package/lib/viewModels/TextModel.d.ts +2 -3
  76. package/lib/viewModels/TextModel.d.ts.map +1 -1
  77. package/lib/viewModels/TextModel.js +1 -1
  78. package/lib/viewModels/TextModel.js.map +1 -1
  79. package/lib/viewModels/Validatable.d.ts +8 -10
  80. package/lib/viewModels/Validatable.d.ts.map +1 -1
  81. package/lib/viewModels/Validatable.js +5 -6
  82. package/lib/viewModels/Validatable.js.map +1 -1
  83. package/package.json +5 -3
  84. package/src/disposer.ts +4 -1
  85. package/src/lazy.light.ts +15 -11
  86. package/src/lazy.ts +22 -15
  87. package/src/pool.ts +31 -8
  88. package/src/validation/types.ts +5 -5
  89. package/src/viewModels/TextModel.ts +3 -4
  90. package/src/viewModels/Validatable.ts +14 -14
  91. package/yarn-error.log +3709 -0
  92. package/yarn.lock +1 -1
@@ -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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
148
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  </div>
151
151
  <script src="../../prettify.js"></script>
@@ -592,7 +592,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
592
592
  <div class='footer quiet pad2 space-top1 center small'>
593
593
  Code coverage generated by
594
594
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
595
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
595
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
596
596
  </div>
597
597
  </div>
598
598
  <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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
157
+ at Sun Jan 23 2022 16:32:35 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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
145
+ at Sun Jan 23 2022 16:32:35 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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
142
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -208,7 +208,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
211
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
188
+ at Sun Jan 23 2022 16:32:35 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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
94
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -89,15 +89,15 @@
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
90
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ValidationErrors } from './ValidationErrors';
91
91
  &nbsp;
92
- export type ValidatorFunction&lt;T = string&gt; = (val: T) =&gt; ValidationErrors;
93
- export type ValidatorFunctionAsync&lt;T = string&gt; = (val: T) =&gt; Promise&lt;ValidationErrors&gt;;
92
+ export type ValidatorFunction&lt;T = string, TErrors = ValidationErrors&gt; = (val: T) =&gt; TErrors;
93
+ export type ValidatorFunctionAsync&lt;T = string, TErrors = ValidationErrors&gt; = (val: T) =&gt; Promise&lt;TErrors&gt;;
94
94
  &nbsp;
95
95
  export type WrapperFunction = (val: ValidatorFunction) =&gt; ValidatorFunction;
96
96
  &nbsp;
97
- export class ValidationError extends Error {
98
- readonly <span class="cstat-no" title="statement not covered" >code: ValidationErrors = null;</span>
97
+ export class ValidationError&lt;TErrors = ValidationErrors&gt; extends Error {
98
+ readonly <span class="cstat-no" title="statement not covered" >code: TErrors = null;</span>
99
99
  &nbsp;
100
- <span class="fstat-no" title="function not covered" > constructor(m</span>essage: string, code: ValidationErrors) {
100
+ <span class="fstat-no" title="function not covered" > constructor(m</span>essage: string, code: TErrors) {
101
101
  <span class="cstat-no" title="statement not covered" > super(message);</span>
102
102
  <span class="cstat-no" title="statement not covered" > this.code = code;</span>
103
103
  }
@@ -109,7 +109,7 @@ export class ValidationError extends Error {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
112
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
232
+ at Sun Jan 23 2022 16:32:35 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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
145
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -238,7 +238,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
238
238
  <div class='footer quiet pad2 space-top1 center small'>
239
239
  Code coverage generated by
240
240
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
241
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
241
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
242
242
  </div>
243
243
  </div>
244
244
  <script src="../../prettify.js"></script>
@@ -556,7 +556,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
556
556
  <div class='footer quiet pad2 space-top1 center small'>
557
557
  Code coverage generated by
558
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
559
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
560
560
  </div>
561
561
  </div>
562
562
  <script src="../../prettify.js"></script>
@@ -181,7 +181,7 @@ export default NumberModel;
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
184
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.16% </span>
26
+ <span class="strong">93.55% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>59/62</span>
28
+ <span class='fraction'>58/62</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88% </span>
40
+ <span class="strong">84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>22/25</span>
42
+ <span class='fraction'>21/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.64% </span>
47
+ <span class="strong">92.86% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>53/56</span>
49
+ <span class='fraction'>52/56</span>
50
50
  </div>
51
51
 
52
52
 
@@ -215,7 +215,7 @@
215
215
  <span class="cline-any cline-yes">5x</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">1x</span>
218
+ <span class="cline-any cline-no">&nbsp;</span>
219
219
  <span class="cline-any cline-neutral">&nbsp;</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-yes">1x</span>
@@ -245,7 +245,7 @@
245
245
  <span class="cline-any cline-neutral">&nbsp;</span>
246
246
  <span class="cline-any cline-neutral">&nbsp;</span>
247
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">5x</span>
248
+ <span class="cline-any cline-yes">4x</span>
249
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
250
  <span class="cline-any cline-neutral">&nbsp;</span>
251
251
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -343,7 +343,7 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
343
343
  this._index = initialIndex;
344
344
  }
345
345
  &nbsp;
346
- protected get valueToValidate() { return this.selectedItem; }
346
+ <span class="fstat-no" title="function not covered" > protected get v</span>alueToValidate() { <span class="cstat-no" title="statement not covered" >return this.selectedItem; </span>}
347
347
  &nbsp;
348
348
  @computed
349
349
  get values(): readonly string[] {
@@ -448,7 +448,7 @@ export class SelectString&lt;T extends string = string&gt; extends Select&lt;T&g
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
451
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
451
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
452
452
  </div>
453
453
  </div>
454
454
  <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">60% </span>
26
+ <span class="strong">38.64% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/45</span>
28
+ <span class='fraction'>17/44</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">47.83% </span>
33
+ <span class="strong">4.35% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>11/23</span>
35
+ <span class='fraction'>1/23</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">46.15% </span>
40
+ <span class="strong">30.77% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/13</span>
42
+ <span class='fraction'>4/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">62.5% </span>
47
+ <span class="strong">41.03% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>25/40</span>
49
+ <span class='fraction'>16/39</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 medium'></div>
58
+ <div class='status-line low'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -161,6 +161,7 @@
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
163
  <span class="cline-any cline-yes">2x</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
165
  <span class="cline-any cline-yes">2x</span>
165
166
  <span class="cline-any cline-neutral">&nbsp;</span>
166
167
  <span class="cline-any cline-yes">11x</span>
@@ -173,7 +174,6 @@
173
174
  <span class="cline-any cline-neutral">&nbsp;</span>
174
175
  <span class="cline-any cline-neutral">&nbsp;</span>
175
176
  <span class="cline-any cline-yes">11x</span>
176
- <span class="cline-any cline-yes">11x</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
179
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -183,9 +183,9 @@
183
183
  <span class="cline-any cline-yes">1x</span>
184
184
  <span class="cline-any cline-neutral">&nbsp;</span>
185
185
  <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">11x</span>
187
- <span class="cline-any cline-yes">11x</span>
188
- <span class="cline-any cline-yes">11x</span>
186
+ <span class="cline-any cline-no">&nbsp;</span>
187
+ <span class="cline-any cline-no">&nbsp;</span>
188
+ <span class="cline-any cline-no">&nbsp;</span>
189
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
190
  <span class="cline-any cline-neutral">&nbsp;</span>
191
191
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -198,25 +198,25 @@
198
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
200
  <span class="cline-any cline-yes">1x</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
201
+ <span class="cline-any cline-yes">1x</span>
202
202
  <span class="cline-any cline-neutral">&nbsp;</span>
203
203
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">1x</span>
205
- <span class="cline-any cline-yes">1x</span>
206
- <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
205
+ <span class="cline-any cline-no">&nbsp;</span>
206
+ <span class="cline-any cline-no">&nbsp;</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
208
  <span class="cline-any cline-neutral">&nbsp;</span>
209
209
  <span class="cline-any cline-neutral">&nbsp;</span>
210
210
  <span class="cline-any cline-no">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">1x</span>
214
- <span class="cline-any cline-yes">1x</span>
213
+ <span class="cline-any cline-no">&nbsp;</span>
214
+ <span class="cline-any cline-no">&nbsp;</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-no">&nbsp;</span>
217
217
  <span class="cline-any cline-no">&nbsp;</span>
218
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">1x</span>
219
+ <span class="cline-any cline-no">&nbsp;</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -243,28 +243,28 @@
243
243
  import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors, ValidationError } from '../validation';
244
244
  import { someAsync } from '../async/arrays';
245
245
  &nbsp;
246
- export type ValueValidator&lt;T&gt; = ValidatorFunction&lt;T&gt; | ValidatorFunctionAsync&lt;T&gt;;
247
- export type ValidationErrorsStrings = { [code: number]: string };
246
+ export type ValueValidator&lt;T, TErrors = ValidationErrors&gt; = ValidatorFunction&lt;T, TErrors&gt; | ValidatorFunctionAsync&lt;T, TErrors&gt;;
247
+ export type ValidationErrorsStrings&lt;TErrors extends string | number = number&gt; = Record&lt;TErrors, string&gt;;
248
248
  &nbsp;
249
- export type ValidationConfig&lt;T&gt; = {
250
- validator: ValueValidator&lt;Readonly&lt;T&gt;&gt;,
251
- errors: ValidationErrorsStrings,
249
+ export type ValidationConfig&lt;T, TErrors extends string | number = ValidationErrors&gt; = {
250
+ validator: ValueValidator&lt;Readonly&lt;T&gt;, TErrors&gt;,
251
+ errors: ValidationErrorsStrings&lt;TErrors&gt;,
252
252
  };
253
253
  &nbsp;
254
- const EmptyValidator = () =&gt; ValidationErrors.None;
254
+ const EmptyValidator = <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >0;</span>
255
+ &nbsp;
255
256
  export abstract class ValidatableModel&lt;T = string&gt; {
256
257
  &nbsp;
257
- private _validator: ValueValidator&lt;Readonly&lt;T&gt;&gt; = null;
258
- private _strings: ValidationErrorsStrings = null;
258
+ private _validator: ValueValidator&lt;Readonly&lt;T&gt;, any&gt; = null;
259
+ private _strings: ValidationErrorsStrings&lt;any&gt; = null;
259
260
  &nbsp;
260
261
  @observable
261
262
  private _error: string = null;
262
263
  &nbsp;
263
264
  private _validationError: ValidationError = null;
264
265
  &nbsp;
265
- constructor(config?: ValidationConfig&lt;T&gt;) {
266
+ constructor() {
266
267
  makeObservable(this);
267
- this.setValidationConfig(config);
268
268
  }
269
269
  &nbsp;
270
270
  protected abstract get valueToValidate(): Readonly&lt;T&gt;;
@@ -273,10 +273,10 @@ export abstract class ValidatableModel&lt;T = string&gt; {
273
273
  &nbsp;
274
274
  get error() { return this._error; }
275
275
  &nbsp;
276
- public setValidationConfig(config?: ValidationConfig&lt;T&gt;) {
277
- this._validator = <span class="branch-1 cbranch-no" title="branch not covered" >config?.validator </span>|| EmptyValidator;
278
- this._strings = <span class="branch-1 cbranch-no" title="branch not covered" >config?.errors;</span>
279
- return this;
276
+ public <span class="fstat-no" title="function not covered" >setValidationConfig&lt;</span>TErrors extends string | number = ValidationErrors&gt;(config?: ValidationConfig&lt;T, TErrors&gt;) {
277
+ <span class="cstat-no" title="statement not covered" > this._validator = config?.validator || EmptyValidator;</span>
278
+ <span class="cstat-no" title="statement not covered" > this._strings = config?.errors;</span>
279
+ <span class="cstat-no" title="statement not covered" > return this;</span>
280
280
  }
281
281
  &nbsp;
282
282
  public <span class="fstat-no" title="function not covered" >async </span>testValidate(value: T) {
@@ -288,26 +288,26 @@ export abstract class ValidatableModel&lt;T = string&gt; {
288
288
  }
289
289
  &nbsp;
290
290
  async validate() {
291
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!this._validator) {
292
- <span class="cstat-no" title="statement not covered" > return true;</span>
291
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._validator) {
292
+ return true;
293
293
  }
294
294
  &nbsp;
295
- try {
296
- const valid = await this._validator(this.valueToValidate);
297
- this._validationError = valid === ValidationErrors.None
295
+ <span class="cstat-no" title="statement not covered" > try {</span>
296
+ const validationResult = <span class="cstat-no" title="statement not covered" >await this._validator(this.valueToValidate);</span>
297
+ <span class="cstat-no" title="statement not covered" > this._validationError = !validationResult</span>
298
298
  ? null
299
- : <span class="branch-1 cbranch-no" title="branch not covered" >new ValidationError('Unknown error', valid);</span>
299
+ : new ValidationError('Unknown error', validationResult);
300
300
  } catch (err) {
301
301
  <span class="cstat-no" title="statement not covered" > this._validationError = err as ValidationError;</span>
302
302
  }
303
303
  &nbsp;
304
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._validationError) {
305
- this._error = null;
304
+ <span class="cstat-no" title="statement not covered" > if (!this._validationError) {</span>
305
+ <span class="cstat-no" title="statement not covered" > this._error = null;</span>
306
306
  } else {
307
307
  const code = <span class="cstat-no" title="statement not covered" >this._validationError.code;</span>
308
308
  <span class="cstat-no" title="statement not covered" > this._error = this._strings &amp;&amp; this._strings[code];</span>
309
309
  }
310
- return this._validationError == null;
310
+ <span class="cstat-no" title="statement not covered" > return this._validationError == null;</span>
311
311
  }
312
312
  &nbsp;
313
313
  <span class="fstat-no" title="function not covered" > async </span>getIsInvalid() {
@@ -337,7 +337,7 @@ export abstract class ValidatableModel&lt;T = string&gt; {
337
337
  <div class='footer quiet pad2 space-top1 center small'>
338
338
  Code coverage generated by
339
339
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
340
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
340
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
341
341
  </div>
342
342
  </div>
343
343
  <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.18% </span>
26
+ <span class="strong">74.45% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>215/275</span>
28
+ <span class='fraction'>204/274</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">59.32% </span>
33
+ <span class="strong">42.37% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>35/59</span>
35
+ <span class='fraction'>25/59</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">65.71% </span>
40
+ <span class="strong">62.86% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>69/105</span>
42
+ <span class='fraction'>66/105</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.11% </span>
47
+ <span class="strong">74.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>182/233</span>
49
+ <span class='fraction'>172/232</span>
50
50
  </div>
51
51
 
52
52
 
@@ -119,32 +119,32 @@
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="SelectModel.ts"><a href="SelectModel.ts.html">SelectModel.ts</a></td>
122
- <td data-value="95.16" class="pic high">
123
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
122
+ <td data-value="93.55" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
124
124
  </td>
125
- <td data-value="95.16" class="pct high">95.16%</td>
126
- <td data-value="62" class="abs high">59/62</td>
125
+ <td data-value="93.55" class="pct high">93.55%</td>
126
+ <td data-value="62" class="abs high">58/62</td>
127
127
  <td data-value="93.75" class="pct high">93.75%</td>
128
128
  <td data-value="16" class="abs high">15/16</td>
129
- <td data-value="88" class="pct high">88%</td>
130
- <td data-value="25" class="abs high">22/25</td>
131
- <td data-value="94.64" class="pct high">94.64%</td>
132
- <td data-value="56" class="abs high">53/56</td>
129
+ <td data-value="84" class="pct high">84%</td>
130
+ <td data-value="25" class="abs high">21/25</td>
131
+ <td data-value="92.86" class="pct high">92.86%</td>
132
+ <td data-value="56" class="abs high">52/56</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
136
- <td class="file medium" data-value="Validatable.ts"><a href="Validatable.ts.html">Validatable.ts</a></td>
137
- <td data-value="60" class="pic medium">
138
- <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
136
+ <td class="file low" data-value="Validatable.ts"><a href="Validatable.ts.html">Validatable.ts</a></td>
137
+ <td data-value="38.64" class="pic low">
138
+ <div class="chart"><div class="cover-fill" style="width: 38%"></div><div class="cover-empty" style="width: 62%"></div></div>
139
139
  </td>
140
- <td data-value="60" class="pct medium">60%</td>
141
- <td data-value="45" class="abs medium">27/45</td>
142
- <td data-value="47.83" class="pct low">47.83%</td>
143
- <td data-value="23" class="abs low">11/23</td>
144
- <td data-value="46.15" class="pct low">46.15%</td>
145
- <td data-value="13" class="abs low">6/13</td>
146
- <td data-value="62.5" class="pct medium">62.5%</td>
147
- <td data-value="40" class="abs medium">25/40</td>
140
+ <td data-value="38.64" class="pct low">38.64%</td>
141
+ <td data-value="44" class="abs low">17/44</td>
142
+ <td data-value="4.35" class="pct low">4.35%</td>
143
+ <td data-value="23" class="abs low">1/23</td>
144
+ <td data-value="30.77" class="pct low">30.77%</td>
145
+ <td data-value="13" class="abs low">4/13</td>
146
+ <td data-value="41.03" class="pct low">41.03%</td>
147
+ <td data-value="39" class="abs low">16/39</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
@@ -170,7 +170,7 @@
170
170
  <div class='footer quiet pad2 space-top1 center small'>
171
171
  Code coverage generated by
172
172
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
173
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
174
174
  </div>
175
175
  </div>
176
176
  <script src="../../prettify.js"></script>
@@ -211,7 +211,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, TLabel = s
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
214
- at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
214
+ at Sun Jan 23 2022 16:32:35 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  </div>
217
217
  <script src="../../prettify.js"></script>