@zajno/common 1.3.13 → 1.4.0
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 +66 -58
- package/coverage/coverage-final.json +6 -6
- 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 +24 -9
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +24 -9
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +10 -10
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +56 -50
- package/coverage/lcov-report/src/viewModels/index.html +44 -44
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +137 -121
- 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/CommonModel.d.ts +14 -0
- package/lib/viewModels/CommonModel.d.ts.map +1 -0
- package/lib/viewModels/CommonModel.js +48 -0
- package/lib/viewModels/CommonModel.js.map +1 -0
- package/lib/viewModels/FlagModel.d.ts +1 -0
- package/lib/viewModels/FlagModel.d.ts.map +1 -1
- package/lib/viewModels/FlagModel.js +8 -1
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/NumberModel.d.ts +1 -0
- package/lib/viewModels/NumberModel.d.ts.map +1 -1
- package/lib/viewModels/NumberModel.js +8 -1
- package/lib/viewModels/NumberModel.js.map +1 -1
- package/lib/viewModels/TextModel.d.ts +4 -3
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +25 -24
- 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 +14 -13
- package/lib/viewModels/Validatable.js.map +1 -1
- package/lib/viewModels/index.d.ts +1 -0
- package/lib/viewModels/index.d.ts.map +1 -1
- package/lib/viewModels/index.js +1 -0
- package/lib/viewModels/index.js.map +1 -1
- package/package.json +1 -1
- 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/CommonModel.ts +46 -0
- package/src/viewModels/FlagModel.ts +6 -1
- package/src/viewModels/NumberModel.ts +6 -1
- package/src/viewModels/TextModel.ts +20 -15
- package/src/viewModels/Validatable.ts +23 -21
- package/src/viewModels/index.ts +1 -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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 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 Mon Jan 31 2022 14:10:18 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<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">67.86% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>19/28</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">44.44% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">59.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>13/22</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -115,7 +115,12 @@
|
|
|
115
115
|
<a name='L56'></a><a href='#L56'>56</a>
|
|
116
116
|
<a name='L57'></a><a href='#L57'>57</a>
|
|
117
117
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
118
|
-
<a name='L59'></a><a href='#L59'>59</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
|
119
124
|
<span class="cline-any cline-neutral"> </span>
|
|
120
125
|
<span class="cline-any cline-neutral"> </span>
|
|
121
126
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -147,6 +152,11 @@
|
|
|
147
152
|
<span class="cline-any cline-yes">38x</span>
|
|
148
153
|
<span class="cline-any cline-neutral"> </span>
|
|
149
154
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-yes">17x</span>
|
|
157
|
+
<span class="cline-any cline-yes">38x</span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
160
|
<span class="cline-any cline-no"> </span>
|
|
151
161
|
<span class="cline-any cline-neutral"> </span>
|
|
152
162
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -202,8 +212,13 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
202
212
|
}
|
|
203
213
|
|
|
204
214
|
set value(value: boolean) {
|
|
205
|
-
this.
|
|
215
|
+
this.setValue(value);
|
|
206
216
|
}
|
|
217
|
+
|
|
218
|
+
@action
|
|
219
|
+
public readonly setValue = (value: boolean) => {
|
|
220
|
+
this._value = value;
|
|
221
|
+
};
|
|
207
222
|
|
|
208
223
|
<span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === false; </span>}
|
|
209
224
|
|
|
@@ -238,7 +253,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
238
253
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
239
254
|
Code coverage generated by
|
|
240
255
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
241
|
-
at
|
|
256
|
+
at Mon Jan 31 2022 14:10:18 GMT+0000 (Coordinated Universal Time)
|
|
242
257
|
</div>
|
|
243
258
|
</div>
|
|
244
259
|
<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 Mon Jan 31 2022 14:10:18 GMT+0000 (Coordinated Universal Time)
|
|
560
560
|
</div>
|
|
561
561
|
</div>
|
|
562
562
|
<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">83.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>20/24</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">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">88.24% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>15/17</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -96,7 +96,12 @@
|
|
|
96
96
|
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
97
|
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
98
|
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
-
<a name='L40'></a><a href='#L40'>40</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
100
105
|
<span class="cline-any cline-neutral"> </span>
|
|
101
106
|
<span class="cline-any cline-neutral"> </span>
|
|
102
107
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -120,6 +125,11 @@
|
|
|
120
125
|
<span class="cline-any cline-yes">2x</span>
|
|
121
126
|
<span class="cline-any cline-yes">1x</span>
|
|
122
127
|
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-yes">3x</span>
|
|
130
|
+
<span class="cline-any cline-yes">1x</span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
133
|
<span class="cline-any cline-no"> </span>
|
|
124
134
|
<span class="cline-any cline-neutral"> </span>
|
|
125
135
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -157,7 +167,12 @@ export class NumberModel implements INumberModel, IValueModel<number> {
|
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
get value() { return this._value; }
|
|
160
|
-
set value(v: number) { this.
|
|
170
|
+
set value(v: number) { this.setValue(v); }
|
|
171
|
+
|
|
172
|
+
@action
|
|
173
|
+
public readonly setValue = (v: number) => {
|
|
174
|
+
this._value = v;
|
|
175
|
+
};
|
|
161
176
|
|
|
162
177
|
<span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === this._initial; </span>}
|
|
163
178
|
|
|
@@ -181,7 +196,7 @@ export default NumberModel;
|
|
|
181
196
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
197
|
Code coverage generated by
|
|
183
198
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at
|
|
199
|
+
at Mon Jan 31 2022 14:10:18 GMT+0000 (Coordinated Universal Time)
|
|
185
200
|
</div>
|
|
186
201
|
</div>
|
|
187
202
|
<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 Mon Jan 31 2022 14:10:18 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">37.78% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>17/45</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">28.57% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/14</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">40% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>16/40</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>
|
|
@@ -148,7 +148,9 @@
|
|
|
148
148
|
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
149
|
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
150
|
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
-
<a name='L92'></a><a href='#L92'>92</a
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
152
154
|
<span class="cline-any cline-yes">2x</span>
|
|
153
155
|
<span class="cline-any cline-yes">2x</span>
|
|
154
156
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -161,6 +163,7 @@
|
|
|
161
163
|
<span class="cline-any cline-neutral"> </span>
|
|
162
164
|
<span class="cline-any cline-neutral"> </span>
|
|
163
165
|
<span class="cline-any cline-yes">2x</span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
167
|
<span class="cline-any cline-yes">2x</span>
|
|
165
168
|
<span class="cline-any cline-neutral"> </span>
|
|
166
169
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -173,7 +176,6 @@
|
|
|
173
176
|
<span class="cline-any cline-neutral"> </span>
|
|
174
177
|
<span class="cline-any cline-neutral"> </span>
|
|
175
178
|
<span class="cline-any cline-yes">11x</span>
|
|
176
|
-
<span class="cline-any cline-yes">11x</span>
|
|
177
179
|
<span class="cline-any cline-neutral"> </span>
|
|
178
180
|
<span class="cline-any cline-neutral"> </span>
|
|
179
181
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -183,9 +185,9 @@
|
|
|
183
185
|
<span class="cline-any cline-yes">1x</span>
|
|
184
186
|
<span class="cline-any cline-neutral"> </span>
|
|
185
187
|
<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-
|
|
188
|
+
<span class="cline-any cline-no"> </span>
|
|
189
|
+
<span class="cline-any cline-no"> </span>
|
|
190
|
+
<span class="cline-any cline-no"> </span>
|
|
189
191
|
<span class="cline-any cline-neutral"> </span>
|
|
190
192
|
<span class="cline-any cline-neutral"> </span>
|
|
191
193
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -198,25 +200,27 @@
|
|
|
198
200
|
<span class="cline-any cline-neutral"> </span>
|
|
199
201
|
<span class="cline-any cline-neutral"> </span>
|
|
200
202
|
<span class="cline-any cline-yes">1x</span>
|
|
201
|
-
<span class="cline-any cline-
|
|
203
|
+
<span class="cline-any cline-yes">1x</span>
|
|
202
204
|
<span class="cline-any cline-neutral"> </span>
|
|
203
205
|
<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-
|
|
206
|
+
<span class="cline-any cline-no"> </span>
|
|
207
|
+
<span class="cline-any cline-no"> </span>
|
|
208
|
+
<span class="cline-any cline-no"> </span>
|
|
207
209
|
<span class="cline-any cline-neutral"> </span>
|
|
208
210
|
<span class="cline-any cline-neutral"> </span>
|
|
209
211
|
<span class="cline-any cline-neutral"> </span>
|
|
210
212
|
<span class="cline-any cline-no"> </span>
|
|
211
213
|
<span class="cline-any cline-neutral"> </span>
|
|
212
214
|
<span class="cline-any cline-neutral"> </span>
|
|
213
|
-
<span class="cline-any cline-
|
|
214
|
-
<span class="cline-any cline-
|
|
215
|
+
<span class="cline-any cline-no"> </span>
|
|
216
|
+
<span class="cline-any cline-no"> </span>
|
|
217
|
+
<span class="cline-any cline-no"> </span>
|
|
215
218
|
<span class="cline-any cline-neutral"> </span>
|
|
216
219
|
<span class="cline-any cline-no"> </span>
|
|
217
220
|
<span class="cline-any cline-no"> </span>
|
|
218
221
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-no"> </span>
|
|
220
224
|
<span class="cline-any cline-neutral"> </span>
|
|
221
225
|
<span class="cline-any cline-neutral"> </span>
|
|
222
226
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -239,32 +243,32 @@
|
|
|
239
243
|
<span class="cline-any cline-no"> </span>
|
|
240
244
|
<span class="cline-any cline-neutral"> </span>
|
|
241
245
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { observable, makeObservable, action } from 'mobx';
|
|
246
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { observable, makeObservable, action, runInAction } from 'mobx';
|
|
243
247
|
import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors, ValidationError } from '../validation';
|
|
244
248
|
import { someAsync } from '../async/arrays';
|
|
245
249
|
|
|
246
|
-
export type ValueValidator<T> = ValidatorFunction<T> | ValidatorFunctionAsync<T>;
|
|
247
|
-
export type ValidationErrorsStrings
|
|
250
|
+
export type ValueValidator<T, TErrors = ValidationErrors> = ValidatorFunction<T, TErrors> | ValidatorFunctionAsync<T, TErrors>;
|
|
251
|
+
export type ValidationErrorsStrings<TErrors extends string | number = number> = Partial<Omit<Record<TErrors, string>, 0 | null>>;
|
|
248
252
|
|
|
249
|
-
export type ValidationConfig<T> = {
|
|
250
|
-
validator: ValueValidator<Readonly<T>
|
|
251
|
-
errors: ValidationErrorsStrings
|
|
253
|
+
export type ValidationConfig<T, TErrors extends string | number = ValidationErrors> = {
|
|
254
|
+
validator: ValueValidator<Readonly<T>, TErrors>,
|
|
255
|
+
errors: ValidationErrorsStrings<TErrors>,
|
|
252
256
|
};
|
|
253
257
|
|
|
254
|
-
const EmptyValidator = ()
|
|
258
|
+
const EmptyValidator = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >0;</span>
|
|
259
|
+
|
|
255
260
|
export abstract class ValidatableModel<T = string> {
|
|
256
261
|
|
|
257
|
-
private _validator: ValueValidator<Readonly<T>
|
|
258
|
-
private _strings: ValidationErrorsStrings = null;
|
|
262
|
+
private _validator: ValueValidator<Readonly<T>, any> = null;
|
|
263
|
+
private _strings: ValidationErrorsStrings<any> = null;
|
|
259
264
|
|
|
260
265
|
@observable
|
|
261
266
|
private _error: string = null;
|
|
262
267
|
|
|
263
268
|
private _validationError: ValidationError = null;
|
|
264
269
|
|
|
265
|
-
constructor(
|
|
270
|
+
constructor() {
|
|
266
271
|
makeObservable(this);
|
|
267
|
-
this.setValidationConfig(config);
|
|
268
272
|
}
|
|
269
273
|
|
|
270
274
|
protected abstract get valueToValidate(): Readonly<T>;
|
|
@@ -273,10 +277,10 @@ export abstract class ValidatableModel<T = string> {
|
|
|
273
277
|
|
|
274
278
|
get error() { return this._error; }
|
|
275
279
|
|
|
276
|
-
public setValidationConfig(config?: ValidationConfig<T>) {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
return this
|
|
280
|
+
public <span class="fstat-no" title="function not covered" >setValidationConfig<</span>TErrors extends string | number = ValidationErrors>(config?: ValidationConfig<T, TErrors>) {
|
|
281
|
+
<span class="cstat-no" title="statement not covered" > this._validator = config?.validator || EmptyValidator;</span>
|
|
282
|
+
<span class="cstat-no" title="statement not covered" > this._strings = config?.errors;</span>
|
|
283
|
+
<span class="cstat-no" title="statement not covered" > return this;</span>
|
|
280
284
|
}
|
|
281
285
|
|
|
282
286
|
public <span class="fstat-no" title="function not covered" >async </span>testValidate(value: T) {
|
|
@@ -288,26 +292,28 @@ export abstract class ValidatableModel<T = string> {
|
|
|
288
292
|
}
|
|
289
293
|
|
|
290
294
|
async validate() {
|
|
291
|
-
<span class="missing-if-branch" title="
|
|
292
|
-
|
|
295
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!this._validator) {
|
|
296
|
+
return true;
|
|
293
297
|
}
|
|
294
298
|
|
|
295
|
-
try {
|
|
296
|
-
const
|
|
297
|
-
this._validationError =
|
|
299
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
300
|
+
const validationResult = <span class="cstat-no" title="statement not covered" >await this._validator(this.valueToValidate);</span>
|
|
301
|
+
<span class="cstat-no" title="statement not covered" > this._validationError = !validationResult</span>
|
|
298
302
|
? null
|
|
299
|
-
:
|
|
303
|
+
: new ValidationError('Unknown error', validationResult);
|
|
300
304
|
} catch (err) {
|
|
301
305
|
<span class="cstat-no" title="statement not covered" > this._validationError = err as ValidationError;</span>
|
|
302
306
|
}
|
|
303
307
|
|
|
304
|
-
|
|
305
|
-
this.
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
<span class="cstat-no" title="statement not covered" >
|
|
309
|
-
|
|
310
|
-
|
|
308
|
+
<span class="cstat-no" title="statement not covered" > runInAction(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
309
|
+
<span class="cstat-no" title="statement not covered" > if (!this._validationError) {</span>
|
|
310
|
+
<span class="cstat-no" title="statement not covered" > this._error = null;</span>
|
|
311
|
+
} else {
|
|
312
|
+
const code = <span class="cstat-no" title="statement not covered" >this._validationError.code;</span>
|
|
313
|
+
<span class="cstat-no" title="statement not covered" > this._error = this._strings && this._strings[code];</span>
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
<span class="cstat-no" title="statement not covered" > return this._validationError == null;</span>
|
|
311
317
|
}
|
|
312
318
|
|
|
313
319
|
<span class="fstat-no" title="function not covered" > async </span>getIsInvalid() {
|
|
@@ -337,7 +343,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
337
343
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
338
344
|
Code coverage generated by
|
|
339
345
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
340
|
-
at
|
|
346
|
+
at Mon Jan 31 2022 14:10:18 GMT+0000 (Coordinated Universal Time)
|
|
341
347
|
</div>
|
|
342
348
|
</div>
|
|
343
349
|
<script src="../../prettify.js"></script>
|