@zajno/common 1.3.7 → 1.3.11
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 +221 -202
- package/coverage/coverage-final.json +9 -8
- package/coverage/lcov-report/index.html +38 -38
- 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 +2 -2
- package/coverage/lcov-report/src/dates/convert.ts.html +7 -40
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +8 -5
- package/coverage/lcov-report/src/dates/index.html +13 -13
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +42 -6
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +2 -2
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +2 -2
- 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 +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 +19 -10
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +19 -19
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +2 -2
- package/coverage/lcov-report/src/types.ts.html +14 -2
- 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 +475 -415
- package/lib/dates/calc.js +3 -3
- package/lib/dates/calc.js.map +1 -1
- package/lib/dates/convert.d.ts +0 -2
- package/lib/dates/convert.d.ts.map +1 -1
- package/lib/dates/convert.js +10 -20
- package/lib/dates/convert.js.map +1 -1
- package/lib/dates/format.d.ts.map +1 -1
- package/lib/dates/format.js +4 -3
- package/lib/dates/format.js.map +1 -1
- package/lib/dates/parse.d.ts +2 -0
- package/lib/dates/parse.d.ts.map +1 -1
- package/lib/dates/parse.js +12 -1
- package/lib/dates/parse.js.map +1 -1
- package/lib/dates/shift.js +6 -6
- package/lib/dates/shift.js.map +1 -1
- package/lib/dates/yearDate.js +3 -3
- package/lib/dates/yearDate.js.map +1 -1
- package/lib/disposer.d.ts +22 -0
- package/lib/disposer.d.ts.map +1 -0
- package/lib/disposer.js +65 -0
- package/lib/disposer.js.map +1 -0
- 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/math/calc.d.ts +1 -0
- package/lib/math/calc.d.ts.map +1 -1
- package/lib/math/calc.js +5 -1
- package/lib/math/calc.js.map +1 -1
- package/lib/transitionObserver.d.ts +1 -1
- package/lib/transitionObserver.d.ts.map +1 -1
- package/lib/types.d.ts +3 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/unsubscriber.d.ts +1 -20
- package/lib/unsubscriber.d.ts.map +1 -1
- package/lib/unsubscriber.js +6 -56
- package/lib/unsubscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/dates/calc.ts +1 -1
- package/src/dates/convert.ts +1 -12
- package/src/dates/format.ts +2 -1
- package/src/dates/parse.ts +12 -0
- package/src/dates/shift.ts +1 -1
- package/src/dates/yearDate.ts +1 -1
- package/src/disposer.ts +81 -0
- package/src/fields/update.ts +22 -3
- package/src/functions.ts +1 -3
- package/src/math/calc.ts +3 -0
- package/src/transitionObserver.ts +1 -1
- package/src/types.ts +4 -0
- package/src/unsubscriber.ts +9 -75
- package/tsconfig.json +6 -4
|
@@ -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 Wed Jan 19 2022 19:46:38 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 Wed Jan 19 2022 19:46:38 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 Wed Jan 19 2022 19:46:38 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 Wed Jan 19 2022 19:46:38 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
|
+
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">87.
|
|
26
|
+
<span class="strong">87.5% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>161/184</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">82.
|
|
33
|
+
<span class="strong">82.18% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>83/101</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">82.09% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>55/67</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">87.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>156/178</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -102,6 +102,21 @@
|
|
|
102
102
|
<td data-value="23" class="abs medium">13/23</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
|
+
<tr>
|
|
106
|
+
<td class="file medium" data-value="functions.ts"><a href="functions.ts.html">functions.ts</a></td>
|
|
107
|
+
<td data-value="66.67" class="pic medium">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
|
|
109
|
+
</td>
|
|
110
|
+
<td data-value="66.67" class="pct medium">66.67%</td>
|
|
111
|
+
<td data-value="3" class="abs medium">2/3</td>
|
|
112
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
113
|
+
<td data-value="2" class="abs medium">1/2</td>
|
|
114
|
+
<td data-value="100" class="pct high">100%</td>
|
|
115
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
116
|
+
<td data-value="66.67" class="pct medium">66.67%</td>
|
|
117
|
+
<td data-value="3" class="abs medium">2/3</td>
|
|
118
|
+
</tr>
|
|
119
|
+
|
|
105
120
|
<tr>
|
|
106
121
|
<td class="file high" data-value="lazy.light.ts"><a href="lazy.light.ts.html">lazy.light.ts</a></td>
|
|
107
122
|
<td data-value="85.71" class="pic high">
|
|
@@ -155,7 +170,7 @@
|
|
|
155
170
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
171
|
Code coverage generated by
|
|
157
172
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
173
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
159
174
|
</div>
|
|
160
175
|
</div>
|
|
161
176
|
<script src="../prettify.js"></script>
|
|
@@ -139,7 +139,7 @@ export function createLazy<T>(factory: () => T) {
|
|
|
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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
<script src="../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ export function batchLoggers(...loggers: ILogger[]): ILogger {
|
|
|
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 Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -220,7 +220,7 @@ export class BufferedConsoleLogger implements ILogger {
|
|
|
220
220
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
221
221
|
Code coverage generated by
|
|
222
222
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
223
|
-
at
|
|
223
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
224
224
|
</div>
|
|
225
225
|
</div>
|
|
226
226
|
<script src="../../prettify.js"></script>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../../prettify.js"></script>
|
|
@@ -277,7 +277,7 @@ function _createImplementation(overrideMode: typeof Mode = undefined): ILogger {
|
|
|
277
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
278
|
Code coverage generated by
|
|
279
279
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
280
|
-
at
|
|
280
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
281
281
|
</div>
|
|
282
282
|
</div>
|
|
283
283
|
<script src="../../prettify.js"></script>
|
|
@@ -205,7 +205,7 @@ export abstract class NamedLogger implements ILogger, ILoggerSwitchable {
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
208
|
-
at
|
|
208
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
209
209
|
</div>
|
|
210
210
|
</div>
|
|
211
211
|
<script src="../../prettify.js"></script>
|
|
@@ -151,7 +151,7 @@ export class ProxyLogger extends NamedLogger {
|
|
|
151
151
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
152
152
|
Code coverage generated by
|
|
153
153
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
154
|
-
at
|
|
154
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
155
155
|
</div>
|
|
156
156
|
</div>
|
|
157
157
|
<script src="../../prettify.js"></script>
|
|
@@ -847,7 +847,7 @@ export function arrayRepeat<T>(factory: Getter<T>, count = <span cla
|
|
|
847
847
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
848
848
|
Code coverage generated by
|
|
849
849
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
850
|
-
at
|
|
850
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
853
|
<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">97.37% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>37/38</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">90.24% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>37/
|
|
35
|
+
<span class='fraction'>37/41</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">87.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>7/
|
|
42
|
+
<span class='fraction'>7/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">97.14% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>34/35</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -123,7 +123,10 @@
|
|
|
123
123
|
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
124
|
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
125
|
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
-
<a name='L67'></a><a href='#L67'>67</a
|
|
126
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
127
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
|
+
<a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
127
130
|
<span class="cline-any cline-yes">7x</span>
|
|
128
131
|
<span class="cline-any cline-yes">13x</span>
|
|
129
132
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -189,6 +192,9 @@
|
|
|
189
192
|
<span class="cline-any cline-yes">10x</span>
|
|
190
193
|
<span class="cline-any cline-neutral"> </span>
|
|
191
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">7x</span>
|
|
196
|
+
<span class="cline-any cline-no"> </span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
198
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
193
199
|
export function clamp(val: number, min: number = undefined, max: number = undefined, cycle = false) {
|
|
194
200
|
if (min != null && val < min) {
|
|
@@ -255,6 +261,9 @@ export function random(min: number = <span class="branch-0 cbranch-no" title="br
|
|
|
255
261
|
return trunc ? Math.trunc(res) : res;
|
|
256
262
|
}
|
|
257
263
|
|
|
264
|
+
export function <span class="fstat-no" title="function not covered" >badRandomString(</span>length = <span class="branch-0 cbranch-no" title="branch not covered" >12)</span> {
|
|
265
|
+
<span class="cstat-no" title="statement not covered" > return Math.random().toString(26).slice(2, clamp(length, 0, 12));</span>
|
|
266
|
+
}
|
|
258
267
|
</pre></td></tr></table></pre>
|
|
259
268
|
|
|
260
269
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -262,7 +271,7 @@ export function random(min: number = <span class="branch-0 cbranch-no" title="br
|
|
|
262
271
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
272
|
Code coverage generated by
|
|
264
273
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
265
|
-
at
|
|
274
|
+
at Wed Jan 19 2022 19:46:38 GMT+0000 (Coordinated Universal Time)
|
|
266
275
|
</div>
|
|
267
276
|
</div>
|
|
268
277
|
<script src="../../prettify.js"></script>
|