@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.
- package/coverage/clover.xml +35 -32
- package/coverage/coverage-final.json +4 -4
- package/coverage/lcov-report/index.html +26 -26
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/lazy.light.ts.html +33 -21
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +6 -6
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -10
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +44 -44
- package/coverage/lcov-report/src/viewModels/index.html +28 -28
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +62 -57
- package/lib/disposer.d.ts.map +1 -1
- package/lib/disposer.js +3 -1
- package/lib/disposer.js.map +1 -1
- package/lib/lazy.d.ts +6 -2
- package/lib/lazy.d.ts.map +1 -1
- package/lib/lazy.js +22 -12
- package/lib/lazy.js.map +1 -1
- package/lib/lazy.light.d.ts +2 -1
- package/lib/lazy.light.d.ts.map +1 -1
- package/lib/lazy.light.js +11 -9
- package/lib/lazy.light.js.map +1 -1
- package/lib/pool.d.ts +12 -4
- package/lib/pool.d.ts.map +1 -1
- package/lib/pool.js +28 -5
- package/lib/pool.js.map +1 -1
- package/lib/validation/types.d.ts +5 -5
- package/lib/validation/types.d.ts.map +1 -1
- package/lib/validation/types.js.map +1 -1
- package/lib/validation/wrappers.d.ts +4 -3
- package/lib/validation/wrappers.d.ts.map +1 -1
- package/lib/viewModels/TextModel.d.ts +2 -3
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +1 -1
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts +8 -10
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +5 -6
- package/lib/viewModels/Validatable.js.map +1 -1
- package/package.json +5 -3
- package/src/disposer.ts +4 -1
- package/src/lazy.light.ts +15 -11
- package/src/lazy.ts +22 -15
- package/src/pool.ts +31 -8
- package/src/validation/types.ts +5 -5
- package/src/viewModels/TextModel.ts +3 -4
- package/src/viewModels/Validatable.ts +14 -14
- package/yarn-error.log +3709 -0
- 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
|
|
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<T> 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
|
|
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<T extends Object, K> = {
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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"> </span>
|
|
90
90
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ValidationErrors } from './ValidationErrors';
|
|
91
91
|
|
|
92
|
-
export type ValidatorFunction<T = string> = (val: T) =>
|
|
93
|
-
export type ValidatorFunctionAsync<T = string> = (val: T) => Promise<
|
|
92
|
+
export type ValidatorFunction<T = string, TErrors = ValidationErrors> = (val: T) => TErrors;
|
|
93
|
+
export type ValidatorFunctionAsync<T = string, TErrors = ValidationErrors> = (val: T) => Promise<TErrors>;
|
|
94
94
|
|
|
95
95
|
export type WrapperFunction = (val: ValidatorFunction) => ValidatorFunction;
|
|
96
96
|
|
|
97
|
-
export class ValidationError extends Error {
|
|
98
|
-
readonly <span class="cstat-no" title="statement not covered" >code:
|
|
97
|
+
export class ValidationError<TErrors = ValidationErrors> extends Error {
|
|
98
|
+
readonly <span class="cstat-no" title="statement not covered" >code: TErrors = null;</span>
|
|
99
99
|
|
|
100
|
-
<span class="fstat-no" title="function not covered" > constructor(m</span>essage: string, code:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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<T extends string = string> 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
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">93.55% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">84% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">92.86% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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"> </span>
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-
|
|
218
|
+
<span class="cline-any cline-no"> </span>
|
|
219
219
|
<span class="cline-any cline-neutral"> </span>
|
|
220
220
|
<span class="cline-any cline-neutral"> </span>
|
|
221
221
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
248
|
+
<span class="cline-any cline-yes">4x</span>
|
|
249
249
|
<span class="cline-any cline-neutral"> </span>
|
|
250
250
|
<span class="cline-any cline-neutral"> </span>
|
|
251
251
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -343,7 +343,7 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
343
343
|
this._index = initialIndex;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
protected get
|
|
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
|
|
|
348
348
|
@computed
|
|
349
349
|
get values(): readonly string[] {
|
|
@@ -448,7 +448,7 @@ export class SelectString<T extends string = string> extends Select<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
|
|
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">
|
|
26
|
+
<span class="strong">38.64% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">4.35% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">30.77% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">41.03% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
162
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
163
|
<span class="cline-any cline-yes">2x</span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
165
|
<span class="cline-any cline-yes">2x</span>
|
|
165
166
|
<span class="cline-any cline-neutral"> </span>
|
|
166
167
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -173,7 +174,6 @@
|
|
|
173
174
|
<span class="cline-any cline-neutral"> </span>
|
|
174
175
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
178
178
|
<span class="cline-any cline-neutral"> </span>
|
|
179
179
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -183,9 +183,9 @@
|
|
|
183
183
|
<span class="cline-any cline-yes">1x</span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
185
|
<span class="cline-any cline-neutral"> </span>
|
|
186
|
-
<span class="cline-any cline-
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-
|
|
186
|
+
<span class="cline-any cline-no"> </span>
|
|
187
|
+
<span class="cline-any cline-no"> </span>
|
|
188
|
+
<span class="cline-any cline-no"> </span>
|
|
189
189
|
<span class="cline-any cline-neutral"> </span>
|
|
190
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -198,25 +198,25 @@
|
|
|
198
198
|
<span class="cline-any cline-neutral"> </span>
|
|
199
199
|
<span class="cline-any cline-neutral"> </span>
|
|
200
200
|
<span class="cline-any cline-yes">1x</span>
|
|
201
|
-
<span class="cline-any cline-
|
|
201
|
+
<span class="cline-any cline-yes">1x</span>
|
|
202
202
|
<span class="cline-any cline-neutral"> </span>
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-
|
|
205
|
-
<span class="cline-any cline-
|
|
206
|
-
<span class="cline-any cline-
|
|
204
|
+
<span class="cline-any cline-no"> </span>
|
|
205
|
+
<span class="cline-any cline-no"> </span>
|
|
206
|
+
<span class="cline-any cline-no"> </span>
|
|
207
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
208
|
<span class="cline-any cline-neutral"> </span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
210
|
<span class="cline-any cline-no"> </span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
212
|
<span class="cline-any cline-neutral"> </span>
|
|
213
|
-
<span class="cline-any cline-
|
|
214
|
-
<span class="cline-any cline-
|
|
213
|
+
<span class="cline-any cline-no"> </span>
|
|
214
|
+
<span class="cline-any cline-no"> </span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
216
|
<span class="cline-any cline-no"> </span>
|
|
217
217
|
<span class="cline-any cline-no"> </span>
|
|
218
218
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-
|
|
219
|
+
<span class="cline-any cline-no"> </span>
|
|
220
220
|
<span class="cline-any cline-neutral"> </span>
|
|
221
221
|
<span class="cline-any cline-neutral"> </span>
|
|
222
222
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -243,28 +243,28 @@
|
|
|
243
243
|
import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors, ValidationError } from '../validation';
|
|
244
244
|
import { someAsync } from '../async/arrays';
|
|
245
245
|
|
|
246
|
-
export type ValueValidator<T> = ValidatorFunction<T> | ValidatorFunctionAsync<T>;
|
|
247
|
-
export type ValidationErrorsStrings
|
|
246
|
+
export type ValueValidator<T, TErrors = ValidationErrors> = ValidatorFunction<T, TErrors> | ValidatorFunctionAsync<T, TErrors>;
|
|
247
|
+
export type ValidationErrorsStrings<TErrors extends string | number = number> = Record<TErrors, string>;
|
|
248
248
|
|
|
249
|
-
export type ValidationConfig<T> = {
|
|
250
|
-
validator: ValueValidator<Readonly<T>
|
|
251
|
-
errors: ValidationErrorsStrings
|
|
249
|
+
export type ValidationConfig<T, TErrors extends string | number = ValidationErrors> = {
|
|
250
|
+
validator: ValueValidator<Readonly<T>, TErrors>,
|
|
251
|
+
errors: ValidationErrorsStrings<TErrors>,
|
|
252
252
|
};
|
|
253
253
|
|
|
254
|
-
const EmptyValidator = ()
|
|
254
|
+
const EmptyValidator = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >0;</span>
|
|
255
|
+
|
|
255
256
|
export abstract class ValidatableModel<T = string> {
|
|
256
257
|
|
|
257
|
-
private _validator: ValueValidator<Readonly<T>
|
|
258
|
-
private _strings: ValidationErrorsStrings = null;
|
|
258
|
+
private _validator: ValueValidator<Readonly<T>, any> = null;
|
|
259
|
+
private _strings: ValidationErrorsStrings<any> = null;
|
|
259
260
|
|
|
260
261
|
@observable
|
|
261
262
|
private _error: string = null;
|
|
262
263
|
|
|
263
264
|
private _validationError: ValidationError = null;
|
|
264
265
|
|
|
265
|
-
constructor(
|
|
266
|
+
constructor() {
|
|
266
267
|
makeObservable(this);
|
|
267
|
-
this.setValidationConfig(config);
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
protected abstract get valueToValidate(): Readonly<T>;
|
|
@@ -273,10 +273,10 @@ export abstract class ValidatableModel<T = string> {
|
|
|
273
273
|
|
|
274
274
|
get error() { return this._error; }
|
|
275
275
|
|
|
276
|
-
public setValidationConfig(config?: ValidationConfig<T>) {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return this
|
|
276
|
+
public <span class="fstat-no" title="function not covered" >setValidationConfig<</span>TErrors extends string | number = ValidationErrors>(config?: ValidationConfig<T, TErrors>) {
|
|
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
|
|
|
282
282
|
public <span class="fstat-no" title="function not covered" >async </span>testValidate(value: T) {
|
|
@@ -288,26 +288,26 @@ export abstract class ValidatableModel<T = string> {
|
|
|
288
288
|
}
|
|
289
289
|
|
|
290
290
|
async validate() {
|
|
291
|
-
<span class="missing-if-branch" title="
|
|
292
|
-
|
|
291
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!this._validator) {
|
|
292
|
+
return true;
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
try {
|
|
296
|
-
const
|
|
297
|
-
this._validationError =
|
|
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
|
-
:
|
|
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
|
|
|
304
|
-
|
|
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 && 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
|
|
|
313
313
|
<span class="fstat-no" title="function not covered" > async </span>getIsInvalid() {
|
|
@@ -337,7 +337,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">74.45% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">42.37% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">62.86% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">74.14% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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="
|
|
123
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
126
|
-
<td data-value="62" class="abs high">
|
|
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="
|
|
130
|
-
<td data-value="25" class="abs high">
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="56" class="abs high">
|
|
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
|
|
137
|
-
<td data-value="
|
|
138
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
141
|
-
<td data-value="
|
|
142
|
-
<td data-value="
|
|
143
|
-
<td data-value="23" class="abs low">
|
|
144
|
-
<td data-value="
|
|
145
|
-
<td data-value="13" class="abs low">
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
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
|
|
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<T, TModel extends IValueModel<T>, 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
|
|
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>
|