@zajno/common 1.3.10 → 1.3.14
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 +68 -49
- package/coverage/coverage-final.json +3 -2
- 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 +15 -15
- package/coverage/lcov-report/src/fields/update.ts.html +69 -12
- package/coverage/lcov-report/src/functions.ts.html +122 -0
- package/coverage/lcov-report/src/index.html +32 -17
- 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 +1 -1
- 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 +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.info +172 -113
- package/lib/disposer.d.ts.map +1 -1
- package/lib/disposer.js +3 -1
- package/lib/disposer.js.map +1 -1
- package/lib/fields/update.d.ts +8 -2
- package/lib/fields/update.d.ts.map +1 -1
- package/lib/fields/update.js +13 -1
- package/lib/fields/update.js.map +1 -1
- package/lib/functions.d.ts +1 -2
- package/lib/functions.d.ts.map +1 -1
- package/lib/functions.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/package.json +5 -3
- package/src/disposer.ts +4 -1
- package/src/fields/update.ts +22 -3
- package/src/functions.ts +1 -3
- package/src/lazy.light.ts +15 -11
- package/src/lazy.ts +22 -15
- package/src/pool.ts +31 -8
- package/tsconfig.json +6 -4
- package/yarn-error.log +3709 -0
- package/yarn.lock +1 -1
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../../../prettify.js"></script>
|
|
@@ -100,7 +100,7 @@ export const toArbitrary = (fakerGen) => {
|
|
|
100
100
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
101
|
Code coverage generated by
|
|
102
102
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
103
|
-
at
|
|
103
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
104
104
|
</div>
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
@@ -178,7 +178,7 @@ export async function <span class="fstat-no" title="function not covered" >mapAs
|
|
|
178
178
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
179
|
Code coverage generated by
|
|
180
180
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
181
|
-
at
|
|
181
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
182
182
|
</div>
|
|
183
183
|
</div>
|
|
184
184
|
<script src="../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../../prettify.js"></script>
|
|
@@ -280,7 +280,7 @@ export function clamp(d: Date, low: Date, high: Date) {
|
|
|
280
280
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
281
281
|
Code coverage generated by
|
|
282
282
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
283
|
-
at
|
|
283
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
284
284
|
</div>
|
|
285
285
|
</div>
|
|
286
286
|
<script src="../../prettify.js"></script>
|
|
@@ -637,7 +637,7 @@ export function getDaysStreak(dates: number[], descentOrder: boolean): number {
|
|
|
637
637
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
638
638
|
Code coverage generated by
|
|
639
639
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
640
|
-
at
|
|
640
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
641
641
|
</div>
|
|
642
642
|
</div>
|
|
643
643
|
<script src="../../prettify.js"></script>
|
|
@@ -190,7 +190,7 @@ export namespace DateX {
|
|
|
190
190
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
191
191
|
Code coverage generated by
|
|
192
192
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
193
|
-
at
|
|
193
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
194
194
|
</div>
|
|
195
195
|
</div>
|
|
196
196
|
<script src="../../prettify.js"></script>
|
|
@@ -382,7 +382,7 @@ export namespace Format {
|
|
|
382
382
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
383
383
|
Code coverage generated by
|
|
384
384
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
385
|
-
at
|
|
385
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
386
386
|
</div>
|
|
387
387
|
</div>
|
|
388
388
|
<script src="../../prettify.js"></script>
|
|
@@ -230,7 +230,7 @@
|
|
|
230
230
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
231
231
|
Code coverage generated by
|
|
232
232
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
233
|
-
at
|
|
233
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
234
234
|
</div>
|
|
235
235
|
</div>
|
|
236
236
|
<script src="../../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ export * from './yearDate';
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
94
|
-
at
|
|
94
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -136,7 +136,7 @@ export namespace Parse {
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
139
|
-
at
|
|
139
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
142
142
|
<script src="../../prettify.js"></script>
|
|
@@ -133,7 +133,7 @@ export namespace Period {
|
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
134
|
Code coverage generated by
|
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
136
|
-
at
|
|
136
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
139
139
|
<script src="../../prettify.js"></script>
|
|
@@ -334,7 +334,7 @@ export function isSame(d1: Date | number, d2: Date | number, g: Granularity, loc
|
|
|
334
334
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
335
|
Code coverage generated by
|
|
336
336
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
337
|
-
at
|
|
337
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
338
338
|
</div>
|
|
339
339
|
</div>
|
|
340
340
|
<script src="../../prettify.js"></script>
|
|
@@ -160,7 +160,7 @@ export namespace ConstantGranularity {
|
|
|
160
160
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
161
161
|
Code coverage generated by
|
|
162
162
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
163
|
-
at
|
|
163
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
164
164
|
</div>
|
|
165
165
|
</div>
|
|
166
166
|
<script src="../../prettify.js"></script>
|
|
@@ -172,7 +172,7 @@ export namespace YearDate {
|
|
|
172
172
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
173
173
|
Code coverage generated by
|
|
174
174
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
175
|
-
at
|
|
175
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
176
176
|
</div>
|
|
177
177
|
</div>
|
|
178
178
|
<script src="../../prettify.js"></script>
|
|
@@ -433,7 +433,7 @@ export class EnumBitwiseHelper<T extends number> extends EnumHelper<T&g
|
|
|
433
433
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
434
434
|
Code coverage generated by
|
|
435
435
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
436
|
-
at
|
|
436
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
437
437
|
</div>
|
|
438
438
|
</div>
|
|
439
439
|
<script src="../prettify.js"></script>
|
|
@@ -262,7 +262,7 @@ export class Event<T = any> implements IEvent<T> {
|
|
|
262
262
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
263
|
Code coverage generated by
|
|
264
264
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
265
|
-
at
|
|
265
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
266
266
|
</div>
|
|
267
267
|
</div>
|
|
268
268
|
<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">75.93% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>41/54</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">80% </span>
|
|
33
|
+
<span class="strong">80.77% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>63/78</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">80.43% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>37/46</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -74,17 +74,17 @@
|
|
|
74
74
|
</thead>
|
|
75
75
|
<tbody><tr>
|
|
76
76
|
<td class="file medium" data-value="update.ts"><a href="update.ts.html">update.ts</a></td>
|
|
77
|
-
<td data-value="
|
|
78
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
77
|
+
<td data-value="75.93" class="pic medium">
|
|
78
|
+
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
|
|
79
79
|
</td>
|
|
80
|
-
<td data-value="
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="80" class="pct high">80%</td>
|
|
83
|
-
<td data-value="
|
|
80
|
+
<td data-value="75.93" class="pct medium">75.93%</td>
|
|
81
|
+
<td data-value="54" class="abs medium">41/54</td>
|
|
82
|
+
<td data-value="80.77" class="pct high">80.77%</td>
|
|
83
|
+
<td data-value="78" class="abs high">63/78</td>
|
|
84
84
|
<td data-value="45.45" class="pct low">45.45%</td>
|
|
85
85
|
<td data-value="11" class="abs low">5/11</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="80.43" class="pct high">80.43%</td>
|
|
87
|
+
<td data-value="46" class="abs high">37/46</td>
|
|
88
88
|
</tr>
|
|
89
89
|
|
|
90
90
|
</tbody>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<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">75.93% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>41/54</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">80% </span>
|
|
33
|
+
<span class="strong">80.77% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>63/78</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">80.43% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>37/46</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -155,7 +155,27 @@
|
|
|
155
155
|
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
156
|
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
157
|
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
-
<a name='L99'></a><a href='#L99'>99</a
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
167
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
+
<a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
179
|
<span class="cline-any cline-neutral"> </span>
|
|
160
180
|
<span class="cline-any cline-neutral"> </span>
|
|
161
181
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -203,6 +223,13 @@
|
|
|
203
223
|
<span class="cline-any cline-neutral"> </span>
|
|
204
224
|
<span class="cline-any cline-neutral"> </span>
|
|
205
225
|
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
233
|
<span class="cline-any cline-yes">1x</span>
|
|
207
234
|
<span class="cline-any cline-neutral"> </span>
|
|
208
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -219,13 +246,19 @@
|
|
|
219
246
|
<span class="cline-any cline-neutral"> </span>
|
|
220
247
|
<span class="cline-any cline-yes">5x</span>
|
|
221
248
|
<span class="cline-any cline-yes">5x</span>
|
|
249
|
+
<span class="cline-any cline-yes">5x</span>
|
|
250
|
+
<span class="cline-any cline-yes">5x</span>
|
|
251
|
+
<span class="cline-any cline-yes">5x</span>
|
|
222
252
|
<span class="cline-any cline-neutral"> </span>
|
|
223
253
|
<span class="cline-any cline-neutral"> </span>
|
|
224
254
|
<span class="cline-any cline-yes">5x</span>
|
|
225
255
|
<span class="cline-any cline-yes">5x</span>
|
|
226
256
|
<span class="cline-any cline-yes">31x</span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
258
|
<span class="cline-any cline-yes">10x</span>
|
|
228
259
|
<span class="cline-any cline-yes">10x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-yes">10x</span>
|
|
229
262
|
<span class="cline-any cline-yes">10x</span>
|
|
230
263
|
<span class="cline-any cline-neutral"> </span>
|
|
231
264
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -238,8 +271,13 @@
|
|
|
238
271
|
<span class="cline-any cline-yes">12x</span>
|
|
239
272
|
<span class="cline-any cline-yes">7x</span>
|
|
240
273
|
<span class="cline-any cline-yes">7x</span>
|
|
274
|
+
<span class="cline-any cline-yes">7x</span>
|
|
241
275
|
<span class="cline-any cline-yes">5x</span>
|
|
242
276
|
<span class="cline-any cline-yes">1x</span>
|
|
277
|
+
<span class="cline-any cline-yes">1x</span>
|
|
278
|
+
<span class="cline-any cline-yes">1x</span>
|
|
279
|
+
<span class="cline-any cline-no"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
281
|
<span class="cline-any cline-neutral"> </span>
|
|
244
282
|
<span class="cline-any cline-neutral"> </span>
|
|
245
283
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -253,7 +291,8 @@
|
|
|
253
291
|
<span class="cline-any cline-neutral"> </span>
|
|
254
292
|
<span class="cline-any cline-neutral"> </span>
|
|
255
293
|
<span class="cline-any cline-neutral"> </span>
|
|
256
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
294
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { safeCall } from '../functions';
|
|
295
|
+
import { Comparator } from '../types';
|
|
257
296
|
|
|
258
297
|
export namespace Fields {
|
|
259
298
|
export type Getter<T> = (obj: Partial<T>) => T[keyof T];
|
|
@@ -263,7 +302,7 @@ export namespace Fields {
|
|
|
263
302
|
}
|
|
264
303
|
|
|
265
304
|
|
|
266
|
-
export function <span class="fstat-no" title="function not covered" >updateField<</span>T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged: Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span>: boolean {
|
|
305
|
+
export function <span class="fstat-no" title="function not covered" >updateField<</span>T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged: null | Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span>: boolean {
|
|
267
306
|
<span class="cstat-no" title="statement not covered" > return updateFieldExtended(target, source, diff, <span class="fstat-no" title="function not covered" >t </span>=> <span class="cstat-no" title="statement not covered" >t[key],</span> <span class="fstat-no" title="function not covered" >(t</span>, v) => <span class="cstat-no" title="statement not covered" >t[key] = v,</span> hasChanged);</span>
|
|
268
307
|
}
|
|
269
308
|
|
|
@@ -273,7 +312,7 @@ export function <span class="fstat-no" title="function not covered" >updateField
|
|
|
273
312
|
diff: Partial<T>,
|
|
274
313
|
get: Fields.Getter<T>,
|
|
275
314
|
set: Fields.Setter<T>,
|
|
276
|
-
hasChanged: Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
|
|
315
|
+
hasChanged: null | Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
|
|
277
316
|
): boolean {
|
|
278
317
|
|
|
279
318
|
<span class="cstat-no" title="statement not covered" > hasChanged = hasChanged || (<span class="fstat-no" title="function not covered" >(v</span>1: T, v2: T) => (<span class="cstat-no" title="statement not covered" >get(v1) !== get(v2))</span>);</span>
|
|
@@ -299,6 +338,13 @@ export type UpdateArrayOptions<T> = {
|
|
|
299
338
|
comparator?: Comparator<T>,
|
|
300
339
|
updater?: Fields.Updater<T>,
|
|
301
340
|
sorter?: Comparator<T, number> | null | undefined,
|
|
341
|
+
hooks?: UpdateArrayHooks<T>,
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
export type UpdateArrayHooks<T> = {
|
|
345
|
+
onAdded?: (item: T) => void,
|
|
346
|
+
onDeleted?: (item: T) => void,
|
|
347
|
+
onUpdated?: (previous: T, next: T) => void,
|
|
302
348
|
};
|
|
303
349
|
|
|
304
350
|
export function updateArray<T>(
|
|
@@ -317,12 +363,18 @@ export function updateArray<T>(
|
|
|
317
363
|
|
|
318
364
|
const comparator = options?.comparator || DefaultComparator;
|
|
319
365
|
const updater = options?.updater || DefaultUpdater;
|
|
366
|
+
const onDeleted = options?.hooks<span class="branch-1 cbranch-no" title="branch not covered" >?.onDeleted;</span>
|
|
367
|
+
const onUpdate = options?.hooks<span class="branch-1 cbranch-no" title="branch not covered" >?.onUpdated;</span>
|
|
368
|
+
const onAdded = options?.hooks<span class="branch-1 cbranch-no" title="branch not covered" >?.onAdded;</span>
|
|
320
369
|
|
|
321
370
|
// remove all missing elements
|
|
322
371
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (!options?.additive) {
|
|
323
372
|
for (let i = 0; i < result.length; ++i) {
|
|
324
373
|
if (source.find(item => comparator(item, result[i])) == null) {
|
|
325
|
-
|
|
374
|
+
// DELETE
|
|
375
|
+
const removed = result.splice(i, 1);
|
|
376
|
+
safeCall(onDeleted, removed[0]);
|
|
377
|
+
|
|
326
378
|
++changed;
|
|
327
379
|
--i;
|
|
328
380
|
}
|
|
@@ -335,9 +387,14 @@ export function updateArray<T>(
|
|
|
335
387
|
const existingItem = result[existingIndex];
|
|
336
388
|
if (existingIndex < 0) {
|
|
337
389
|
result.push(i);
|
|
390
|
+
safeCall(onAdded, i);
|
|
338
391
|
++changed;
|
|
339
392
|
} else if (typeof existingItem === 'object') {
|
|
393
|
+
const before = onUpdate != null ? <span class="branch-0 cbranch-no" title="branch not covered" >{ ...existingItem } </span>: undefined;
|
|
340
394
|
result[existingIndex] = updater(existingItem, i);
|
|
395
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (onUpdate != null) {
|
|
396
|
+
<span class="cstat-no" title="statement not covered" > onUpdate(before!, result[existingIndex]);</span>
|
|
397
|
+
}
|
|
341
398
|
}
|
|
342
399
|
});
|
|
343
400
|
|
|
@@ -358,7 +415,7 @@ export function updateArray<T>(
|
|
|
358
415
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
416
|
Code coverage generated by
|
|
360
417
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
361
|
-
at
|
|
418
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
362
419
|
</div>
|
|
363
420
|
</div>
|
|
364
421
|
<script src="../../prettify.js"></script>
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/functions.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> functions.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">66.67% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>2/3</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>1/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'>1/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">66.67% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>2/3</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
|
+
<pre><table class="coverage">
|
|
60
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
62
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
63
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
64
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
65
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
66
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
75
|
+
<span class="cline-any cline-neutral"> </span>
|
|
76
|
+
<span class="cline-any cline-neutral"> </span>
|
|
77
|
+
<span class="cline-any cline-neutral"> </span>
|
|
78
|
+
<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>
|
|
82
|
+
<span class="cline-any cline-neutral"> </span>
|
|
83
|
+
<span class="cline-any cline-yes">1x</span>
|
|
84
|
+
<span class="cline-any cline-yes">17x</span>
|
|
85
|
+
<span class="cline-any cline-no"> </span>
|
|
86
|
+
<span class="cline-any cline-neutral"> </span>
|
|
87
|
+
<span class="cline-any cline-neutral"> </span>
|
|
88
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
89
|
+
type PropertiesOf<T> = Exclude<{
|
|
90
|
+
[K in keyof T]: T[K] extends Function ? never : K
|
|
91
|
+
}[keyof T], undefined>;
|
|
92
|
+
|
|
93
|
+
export type RemoveFunctionFields<T> = {
|
|
94
|
+
readonly [P in PropertiesOf<T>]: T[P];
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export function safeCall<T extends (...args: any) => any>(cb: T | undefined, ...args: Parameters<T>): ReturnType<T> | void {
|
|
98
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (cb) {
|
|
99
|
+
<span class="cstat-no" title="statement not covered" > return cb.apply(null, args);</span>
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
</pre></td></tr></table></pre>
|
|
103
|
+
|
|
104
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
105
|
+
</div><!-- /wrapper -->
|
|
106
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
107
|
+
Code coverage generated by
|
|
108
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
109
|
+
at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<script src="../prettify.js"></script>
|
|
113
|
+
<script>
|
|
114
|
+
window.onload = function () {
|
|
115
|
+
prettyPrint();
|
|
116
|
+
};
|
|
117
|
+
</script>
|
|
118
|
+
<script src="../sorter.js"></script>
|
|
119
|
+
<script src="../block-navigation.js"></script>
|
|
120
|
+
</body>
|
|
121
|
+
</html>
|
|
122
|
+
|