@zajno/common 1.4.16 → 1.4.19
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 +49 -35
- package/coverage/coverage-final.json +4 -3
- package/coverage/lcov-report/index.html +25 -25
- 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/async/timeout.ts.html +12 -12
- package/coverage/lcov-report/src/cache.ts.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/disposer.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 +24 -9
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- 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/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +1 -1
- package/coverage/lcov-report/src/tempoCache.ts.html +134 -0
- 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 +32 -38
- package/coverage/lcov-report/src/validation/index.html +14 -14
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +13 -4
- 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/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.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 +1 -1
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +1 -1
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov-report/tempoCache.ts.html +134 -0
- package/coverage/lcov-report/timer.ts.html +200 -0
- package/coverage/lcov.info +82 -49
- package/lib/logger/file.d.ts +9 -8
- package/lib/logger/file.d.ts.map +1 -1
- package/lib/logger/file.js +44 -22
- package/lib/logger/file.js.map +1 -1
- package/lib/services/storage/web/sessionStorage.js +1 -1
- package/lib/services/storage/web/sessionStorage.js.map +1 -1
- package/lib/tempoCache.d.ts +10 -0
- package/lib/tempoCache.d.ts.map +1 -0
- package/lib/tempoCache.js +21 -0
- package/lib/tempoCache.js.map +1 -0
- package/lib/timeHelper.d.ts +0 -7
- package/lib/timeHelper.d.ts.map +1 -1
- package/lib/timeHelper.js +3 -19
- package/lib/timeHelper.js.map +1 -1
- package/lib/timer.d.ts +15 -0
- package/lib/timer.d.ts.map +1 -0
- package/lib/timer.js +36 -0
- package/lib/timer.js.map +1 -0
- package/lib/validation/helpers.d.ts +2 -6
- package/lib/validation/helpers.d.ts.map +1 -1
- package/lib/validation/helpers.js +6 -11
- package/lib/validation/helpers.js.map +1 -1
- package/lib/validation/types.d.ts +8 -2
- package/lib/validation/types.d.ts.map +1 -1
- package/lib/validation/types.js.map +1 -1
- package/lib/validation/wrappers.d.ts +3 -3
- package/package.json +1 -1
- package/src/__tests__/tempoCache.test.ts +31 -0
- package/src/logger/file.ts +46 -26
- package/src/services/storage/web/sessionStorage.ts +1 -1
- package/src/tempoCache.ts +18 -0
- package/src/timeHelper.ts +3 -18
- package/src/timer.ts +40 -0
- package/src/validation/helpers.ts +16 -18
- package/src/validation/types.ts +5 -2
|
@@ -529,7 +529,7 @@ function firstDefined<T>(...values: (T | undefined)[]) {
|
|
|
529
529
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
530
530
|
Code coverage generated by
|
|
531
531
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
532
|
-
at
|
|
532
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
533
533
|
</div>
|
|
534
534
|
</div>
|
|
535
535
|
<script src="../prettify.js"></script>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/tempoCache.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> tempoCache.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>10/10</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>2/2</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>3/3</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>9/9</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
|
+
<pre><table class="coverage">
|
|
60
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
62
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
63
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
64
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
65
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
66
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
78
|
+
<a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
79
|
+
<span class="cline-any cline-yes">1x</span>
|
|
80
|
+
<span class="cline-any cline-neutral"> </span>
|
|
81
|
+
<span class="cline-any cline-yes">1x</span>
|
|
82
|
+
<span class="cline-any cline-yes">1x</span>
|
|
83
|
+
<span class="cline-any cline-neutral"> </span>
|
|
84
|
+
<span class="cline-any cline-yes">1x</span>
|
|
85
|
+
<span class="cline-any cline-neutral"> </span>
|
|
86
|
+
<span class="cline-any cline-yes">8x</span>
|
|
87
|
+
<span class="cline-any cline-neutral"> </span>
|
|
88
|
+
<span class="cline-any cline-neutral"> </span>
|
|
89
|
+
<span class="cline-any cline-yes">8x</span>
|
|
90
|
+
<span class="cline-any cline-yes">3x</span>
|
|
91
|
+
<span class="cline-any cline-yes">3x</span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-yes">8x</span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-neutral"> </span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
97
|
+
export class TempoCache<T> {
|
|
98
|
+
|
|
99
|
+
private _expiringAt: number = 0; // already expired
|
|
100
|
+
private _current: T = undefined;
|
|
101
|
+
|
|
102
|
+
constructor(readonly factory: () => T, readonly lifetimeMs: number) { }
|
|
103
|
+
|
|
104
|
+
public get isExpired() { return Date.now() >= this._expiringAt; }
|
|
105
|
+
|
|
106
|
+
public get current() {
|
|
107
|
+
if (this.isExpired) {
|
|
108
|
+
this._current = this.factory();
|
|
109
|
+
this._expiringAt = Date.now() + this.lifetimeMs;
|
|
110
|
+
}
|
|
111
|
+
return this._current;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
</pre></td></tr></table></pre>
|
|
115
|
+
|
|
116
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
117
|
+
</div><!-- /wrapper -->
|
|
118
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
|
+
Code coverage generated by
|
|
120
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
121
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
<script src="../prettify.js"></script>
|
|
125
|
+
<script>
|
|
126
|
+
window.onload = function () {
|
|
127
|
+
prettyPrint();
|
|
128
|
+
};
|
|
129
|
+
</script>
|
|
130
|
+
<script src="../sorter.js"></script>
|
|
131
|
+
<script src="../block-navigation.js"></script>
|
|
132
|
+
</body>
|
|
133
|
+
</html>
|
|
134
|
+
|
|
@@ -613,7 +613,7 @@ export function <span class="fstat-no" title="function not covered" >waitFor<
|
|
|
613
613
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
614
614
|
Code coverage generated by
|
|
615
615
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
616
|
-
at
|
|
616
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
617
617
|
</div>
|
|
618
618
|
</div>
|
|
619
619
|
<script src="../prettify.js"></script>
|
|
@@ -154,7 +154,7 @@ export type TypedKeys<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 Fri May 20 2022 08:16:32 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 Fri May 20 2022 08:16:32 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 Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">22.73% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>5/
|
|
28
|
+
<span class='fraction'>5/22</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/14</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">23.81% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>5/
|
|
49
|
+
<span class='fraction'>5/21</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -103,11 +103,14 @@
|
|
|
103
103
|
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
104
|
<a name='L45'></a><a href='#L45'>45</a>
|
|
105
105
|
<a name='L46'></a><a href='#L46'>46</a>
|
|
106
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
107
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
108
|
-
<a name='L49'></a><a href='#L49'>49</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
|
|
106
|
+
<a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
|
|
109
107
|
<span class="cline-any cline-yes">5x</span>
|
|
110
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
114
|
<span class="cline-any cline-yes">5x</span>
|
|
112
115
|
<span class="cline-any cline-no"> </span>
|
|
113
116
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -123,6 +126,7 @@
|
|
|
123
126
|
<span class="cline-any cline-neutral"> </span>
|
|
124
127
|
<span class="cline-any cline-neutral"> </span>
|
|
125
128
|
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
130
|
<span class="cline-any cline-no"> </span>
|
|
127
131
|
<span class="cline-any cline-neutral"> </span>
|
|
128
132
|
<span class="cline-any cline-no"> </span>
|
|
@@ -133,15 +137,8 @@
|
|
|
133
137
|
<span class="cline-any cline-neutral"> </span>
|
|
134
138
|
<span class="cline-any cline-neutral"> </span>
|
|
135
139
|
<span class="cline-any cline-no"> </span>
|
|
136
|
-
<span class="cline-any cline-
|
|
137
|
-
<span class="cline-any cline-
|
|
138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
139
|
-
<span class="cline-any cline-neutral"> </span>
|
|
140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-neutral"> </span>
|
|
144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
140
|
+
<span class="cline-any cline-no"> </span>
|
|
141
|
+
<span class="cline-any cline-no"> </span>
|
|
145
142
|
<span class="cline-any cline-neutral"> </span>
|
|
146
143
|
<span class="cline-any cline-neutral"> </span>
|
|
147
144
|
<span class="cline-any cline-no"> </span>
|
|
@@ -152,9 +149,13 @@
|
|
|
152
149
|
<span class="cline-any cline-neutral"> </span>
|
|
153
150
|
<span class="cline-any cline-no"> </span>
|
|
154
151
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ValidationErrors } from './ValidationErrors';
|
|
153
|
+
import {
|
|
154
|
+
ValidationConfig,
|
|
155
|
+
ValidationError,
|
|
156
|
+
ValidationResults,
|
|
157
|
+
ValidatorFunction,
|
|
158
|
+
} from './types';
|
|
158
159
|
|
|
159
160
|
export function <span class="fstat-no" title="function not covered" >createShouldBeEqualTo<</span>T = string>(getter: () => T): ValidatorFunction<T> {
|
|
160
161
|
<span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >(v</span>al: T) => <span class="cstat-no" title="statement not covered" >getter() === val ? ValidationErrors.None : ValidationErrors.ShouldBeEqualTo;</span></span>
|
|
@@ -166,33 +167,27 @@ export function <span class="fstat-no" title="function not covered" >throwNotOk(
|
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
export function <span class="fstat-no" title="function not covered" >validateObject<</span>T>(
|
|
170
|
+
export function <span class="fstat-no" title="function not covered" >validateObject<</span>T, TErrors = ValidationErrors>(
|
|
170
171
|
obj: T,
|
|
171
|
-
validators:
|
|
172
|
-
|
|
172
|
+
validators: ValidationConfig<T, TErrors>,
|
|
173
|
+
onlyTruethy = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
|
|
174
|
+
): ValidationResults<T, TErrors> {
|
|
173
175
|
|
|
174
|
-
const res:
|
|
176
|
+
const res: ValidationResults<T, TErrors> = <span class="cstat-no" title="statement not covered" >{ };</span>
|
|
175
177
|
|
|
176
178
|
<span class="cstat-no" title="statement not covered" > Object.keys(obj).forEach(<span class="fstat-no" title="function not covered" >k </span>=> {</span>
|
|
177
179
|
const kk = <span class="cstat-no" title="statement not covered" >k as keyof T;</span>
|
|
178
|
-
const validator: ValidatorFunction<T[typeof kk]> = <span class="cstat-no" title="statement not covered" >validators[kk];</span>
|
|
180
|
+
const validator: ValidatorFunction<T[typeof kk], TErrors, T> = <span class="cstat-no" title="statement not covered" >validators[kk];</span>
|
|
179
181
|
<span class="cstat-no" title="statement not covered" > if (!validator) {</span>
|
|
180
182
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
const v = <span class="cstat-no" title="statement not covered" >obj[k as keyof T];</span>
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// }
|
|
188
|
-
|
|
189
|
-
// if (typeof v !== 'string') {
|
|
190
|
-
// return; // skip non-strings
|
|
191
|
-
// }
|
|
192
|
-
|
|
193
|
-
// str = v;
|
|
186
|
+
<span class="cstat-no" title="statement not covered" > if (onlyTruethy && !v) {</span>
|
|
187
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
188
|
+
}
|
|
194
189
|
|
|
195
|
-
const err = <span class="cstat-no" title="statement not covered" >validator(v);</span>
|
|
190
|
+
const err = <span class="cstat-no" title="statement not covered" >validator(v, obj);</span>
|
|
196
191
|
<span class="cstat-no" title="statement not covered" > if (err) {</span>
|
|
197
192
|
<span class="cstat-no" title="statement not covered" > res[kk] = err;</span>
|
|
198
193
|
}
|
|
@@ -200,7 +195,6 @@ export function <span class="fstat-no" title="function not covered" >validateObj
|
|
|
200
195
|
|
|
201
196
|
<span class="cstat-no" title="statement not covered" > return res;</span>
|
|
202
197
|
}
|
|
203
|
-
|
|
204
198
|
</pre></td></tr></table></pre>
|
|
205
199
|
|
|
206
200
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -208,7 +202,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
|
|
|
208
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
203
|
Code coverage generated by
|
|
210
204
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at
|
|
205
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
212
206
|
</div>
|
|
213
207
|
</div>
|
|
214
208
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">53.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>48/
|
|
28
|
+
<span class='fraction'>48/90</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">9.52% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>6/
|
|
35
|
+
<span class='fraction'>6/63</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">53.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>48/
|
|
49
|
+
<span class='fraction'>48/89</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -104,17 +104,17 @@
|
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
106
|
<td class="file low" data-value="helpers.ts"><a href="helpers.ts.html">helpers.ts</a></td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
107
|
+
<td data-value="22.73" class="pic low">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 22%"></div><div class="cover-empty" style="width: 78%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="
|
|
111
|
-
<td data-value="
|
|
110
|
+
<td data-value="22.73" class="pct low">22.73%</td>
|
|
111
|
+
<td data-value="22" class="abs low">5/22</td>
|
|
112
112
|
<td data-value="0" class="pct low">0%</td>
|
|
113
|
-
<td data-value="
|
|
113
|
+
<td data-value="14" class="abs low">0/14</td>
|
|
114
114
|
<td data-value="0" class="pct low">0%</td>
|
|
115
115
|
<td data-value="5" class="abs low">0/5</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="23.81" class="pct low">23.81%</td>
|
|
117
|
+
<td data-value="21" class="abs low">5/21</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
@@ -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 Fri May 20 2022 08:16:32 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 Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -72,7 +72,13 @@
|
|
|
72
72
|
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
73
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
74
|
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
-
<a name='L16'></a><a href='#L16'>16</a
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
78
|
+
<a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
79
|
+
<span class="cline-any cline-neutral"> </span>
|
|
80
|
+
<span class="cline-any cline-neutral"> </span>
|
|
81
|
+
<span class="cline-any cline-neutral"> </span>
|
|
76
82
|
<span class="cline-any cline-neutral"> </span>
|
|
77
83
|
<span class="cline-any cline-neutral"> </span>
|
|
78
84
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -89,8 +95,11 @@
|
|
|
89
95
|
<span class="cline-any cline-neutral"> </span>
|
|
90
96
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ValidationErrors } from './ValidationErrors';
|
|
91
97
|
|
|
92
|
-
export type ValidatorFunction<T = string, TErrors = ValidationErrors> = (val: T) => TErrors;
|
|
93
|
-
export type ValidatorFunctionAsync<T = string, TErrors = ValidationErrors> = (val: T) => Promise<TErrors>;
|
|
98
|
+
export type ValidatorFunction<T = string, TErrors = ValidationErrors, TContext = any> = (val: T, ctx?: TContext) => TErrors;
|
|
99
|
+
export type ValidatorFunctionAsync<T = string, TErrors = ValidationErrors, TContext = any> = (val: T, ctx?: TContext) => Promise<TErrors>;
|
|
100
|
+
|
|
101
|
+
export type ValidationConfig<T, TErrors> = { [P in keyof T]?: ValidatorFunction<T[P], TErrors, T> };
|
|
102
|
+
export type ValidationResults<T, TErrors> = { [P in keyof T]?: TErrors };
|
|
94
103
|
|
|
95
104
|
export type WrapperFunction = (val: ValidatorFunction) => ValidatorFunction;
|
|
96
105
|
|
|
@@ -109,7 +118,7 @@ export class ValidationError<TErrors = ValidationErrors> extends Error {
|
|
|
109
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
110
119
|
Code coverage generated by
|
|
111
120
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
112
|
-
at
|
|
121
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
113
122
|
</div>
|
|
114
123
|
</div>
|
|
115
124
|
<script src="../../prettify.js"></script>
|
|
@@ -229,7 +229,7 @@ export const Validators = {
|
|
|
229
229
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
230
|
Code coverage generated by
|
|
231
231
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
232
|
-
at
|
|
232
|
+
at Fri May 20 2022 08:16:32 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 Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<script src="../../prettify.js"></script>
|
|
@@ -199,7 +199,7 @@ export class CommonModel<T = any> extends ValidatableModel<T> {
|
|
|
199
199
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
200
200
|
Code coverage generated by
|
|
201
201
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
202
|
-
at
|
|
202
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
203
203
|
</div>
|
|
204
204
|
</div>
|
|
205
205
|
<script src="../../prettify.js"></script>
|
|
@@ -274,7 +274,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
274
274
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
275
275
|
Code coverage generated by
|
|
276
276
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
277
|
-
at
|
|
277
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
278
278
|
</div>
|
|
279
279
|
</div>
|
|
280
280
|
<script src="../../prettify.js"></script>
|
|
@@ -148,7 +148,7 @@ export class LoadingModel extends NumberModel {
|
|
|
148
148
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
149
149
|
Code coverage generated by
|
|
150
150
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
151
|
-
at
|
|
151
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
154
154
|
<script src="../../prettify.js"></script>
|
|
@@ -598,7 +598,7 @@ export class MultiSelectString<T extends string = string> extends MultiSel
|
|
|
598
598
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
599
599
|
Code coverage generated by
|
|
600
600
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
601
|
-
at
|
|
601
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
602
602
|
</div>
|
|
603
603
|
</div>
|
|
604
604
|
<script src="../../prettify.js"></script>
|
|
@@ -214,7 +214,7 @@ export default NumberModel;
|
|
|
214
214
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
215
215
|
Code coverage generated by
|
|
216
216
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
217
|
-
at
|
|
217
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
218
218
|
</div>
|
|
219
219
|
</div>
|
|
220
220
|
<script src="../../prettify.js"></script>
|
|
@@ -487,7 +487,7 @@ export class SelectString<T extends string = string> extends Select<T&g
|
|
|
487
487
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
488
488
|
Code coverage generated by
|
|
489
489
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
490
|
-
at
|
|
490
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
491
491
|
</div>
|
|
492
492
|
</div>
|
|
493
493
|
<script src="../../prettify.js"></script>
|
|
@@ -445,7 +445,7 @@ export class TextInputVM extends ValidatableModel<string> implements IValu
|
|
|
445
445
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
446
446
|
Code coverage generated by
|
|
447
447
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
448
|
-
at
|
|
448
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
449
449
|
</div>
|
|
450
450
|
</div>
|
|
451
451
|
<script src="../../prettify.js"></script>
|
|
@@ -370,7 +370,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
370
370
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
371
371
|
Code coverage generated by
|
|
372
372
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
373
|
-
at
|
|
373
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
374
374
|
</div>
|
|
375
375
|
</div>
|
|
376
376
|
<script src="../../prettify.js"></script>
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
216
216
|
Code coverage generated by
|
|
217
217
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
218
|
-
at
|
|
218
|
+
at Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
219
219
|
</div>
|
|
220
220
|
</div>
|
|
221
221
|
<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 Fri May 20 2022 08:16:32 GMT+0000 (Coordinated Universal Time)
|
|
215
215
|
</div>
|
|
216
216
|
</div>
|
|
217
217
|
<script src="../../prettify.js"></script>
|