@zajno/common 1.3.5 → 1.3.6
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 +46 -3
- package/coverage/coverage-final.json +1 -0
- package/coverage/lcov-report/index.html +24 -9
- 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 +111 -0
- package/coverage/lcov-report/src/{viewModels/SelectViewModel.ts.html → fields/update.ts.html} +118 -178
- package/coverage/lcov-report/src/index.html +1 -1
- 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/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-report/update.ts.html +374 -0
- package/coverage/lcov.info +118 -0
- package/lib/fields/update.d.ts +17 -6
- package/lib/fields/update.d.ts.map +1 -1
- package/lib/fields/update.js +29 -13
- package/lib/fields/update.js.map +1 -1
- package/lib/ident.d.ts +6 -0
- package/lib/ident.d.ts.map +1 -0
- package/lib/ident.js +3 -0
- package/lib/ident.js.map +1 -0
- package/package.json +1 -1
- package/src/fields/__tests__/fields.update.test.ts +73 -0
- package/src/fields/update.ts +54 -20
- package/src/ident.ts +8 -0
- package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +0 -146
- package/coverage/lcov-report/transitionObserver.ts.html +0 -572
- package/yarn-error.log +0 -3709
|
@@ -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 Mon
|
|
850
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
853
|
<script src="../../prettify.js"></script>
|
|
@@ -262,7 +262,7 @@ export function random(min: number = <span class="branch-0 cbranch-no" title="br
|
|
|
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 Mon
|
|
265
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
266
266
|
</div>
|
|
267
267
|
</div>
|
|
268
268
|
<script src="../../prettify.js"></script>
|
|
@@ -124,7 +124,7 @@ export function extendDistribution<T extends keyof any>(count: number, typ
|
|
|
124
124
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
125
|
Code coverage generated by
|
|
126
126
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
127
|
-
at Mon
|
|
127
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
130
130
|
<script src="../../prettify.js"></script>
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
141
141
|
Code coverage generated by
|
|
142
142
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
143
|
-
at Mon
|
|
143
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
146
146
|
<script src="../../prettify.js"></script>
|
|
@@ -145,7 +145,7 @@ export function format(n: number, digits?: number) {
|
|
|
145
145
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
146
146
|
Code coverage generated by
|
|
147
147
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
148
|
-
at Mon
|
|
148
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
149
149
|
</div>
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
@@ -592,7 +592,7 @@ export class TransitionObserver<T> implements IDisposable {
|
|
|
592
592
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
593
593
|
Code coverage generated by
|
|
594
594
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
595
|
-
at Mon
|
|
595
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
596
596
|
</div>
|
|
597
597
|
</div>
|
|
598
598
|
<script src="../prettify.js"></script>
|
|
@@ -142,7 +142,7 @@ export namespace Comparator {
|
|
|
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 Mon
|
|
145
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<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 Mon
|
|
145
|
+
at Mon Jan 03 2022 18:23:02 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 Mon
|
|
142
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
<script src="../../prettify.js"></script>
|
|
@@ -208,7 +208,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
|
|
|
208
208
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
209
|
Code coverage generated by
|
|
210
210
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at Mon
|
|
211
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
214
214
|
<script src="../../prettify.js"></script>
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
186
186
|
Code coverage generated by
|
|
187
187
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
188
|
-
at Mon
|
|
188
|
+
at Mon Jan 03 2022 18:23:02 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 Mon
|
|
94
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -109,7 +109,7 @@ export class ValidationError extends Error {
|
|
|
109
109
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
110
110
|
Code coverage generated by
|
|
111
111
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
112
|
-
at Mon
|
|
112
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
113
113
|
</div>
|
|
114
114
|
</div>
|
|
115
115
|
<script src="../../prettify.js"></script>
|
|
@@ -229,7 +229,7 @@ export const Validators = {
|
|
|
229
229
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
230
|
Code coverage generated by
|
|
231
231
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
232
|
-
at Mon
|
|
232
|
+
at Mon Jan 03 2022 18:23:02 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 Mon
|
|
145
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<script src="../../prettify.js"></script>
|
|
@@ -196,7 +196,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
196
196
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
197
197
|
Code coverage generated by
|
|
198
198
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
199
|
-
at Mon
|
|
199
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
200
200
|
</div>
|
|
201
201
|
</div>
|
|
202
202
|
<script src="../../prettify.js"></script>
|
|
@@ -556,7 +556,7 @@ export class MultiSelectString<T extends string = string> extends MultiSel
|
|
|
556
556
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
557
557
|
Code coverage generated by
|
|
558
558
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
559
|
-
at Mon
|
|
559
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
560
560
|
</div>
|
|
561
561
|
</div>
|
|
562
562
|
<script src="../../prettify.js"></script>
|
|
@@ -181,7 +181,7 @@ export default NumberModel;
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at Mon
|
|
184
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|
|
@@ -448,7 +448,7 @@ export class SelectString<T extends string = string> extends Select<T&g
|
|
|
448
448
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
449
449
|
Code coverage generated by
|
|
450
450
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
451
|
-
at Mon
|
|
451
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
452
452
|
</div>
|
|
453
453
|
</div>
|
|
454
454
|
<script src="../../prettify.js"></script>
|
|
@@ -337,7 +337,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
337
337
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
338
338
|
Code coverage generated by
|
|
339
339
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
340
|
-
at Mon
|
|
340
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
341
341
|
</div>
|
|
342
342
|
</div>
|
|
343
343
|
<script src="../../prettify.js"></script>
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
171
171
|
Code coverage generated by
|
|
172
172
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
173
|
-
at Mon
|
|
173
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
174
174
|
</div>
|
|
175
175
|
</div>
|
|
176
176
|
<script src="../../prettify.js"></script>
|
|
@@ -211,7 +211,7 @@ export function mixinLabel<T, TModel extends IValueModel<T>, TLabel = s
|
|
|
211
211
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
212
212
|
Code coverage generated by
|
|
213
213
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
214
|
-
at Mon
|
|
214
|
+
at Mon Jan 03 2022 18:23:02 GMT+0000 (Coordinated Universal Time)
|
|
215
215
|
</div>
|
|
216
216
|
</div>
|
|
217
217
|
<script src="../../prettify.js"></script>
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for update.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> update.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">73.33% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>33/45</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>40/50</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">45.45% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>5/11</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">78.38% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>29/37</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>
|
|
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>
|
|
79
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
80
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
81
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
82
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
83
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
84
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
85
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
86
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
87
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
88
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
89
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
90
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
91
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
92
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
93
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
94
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
95
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
96
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
100
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
101
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
102
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
103
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
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>
|
|
109
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
110
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
111
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
112
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
113
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
114
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
115
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
116
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
117
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
118
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
119
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
120
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
121
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
122
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
123
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
|
+
<a name='L66'></a><a href='#L66'>66</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>
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
131
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
132
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
133
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
134
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
135
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
136
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
137
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
138
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
139
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
140
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
141
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
142
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
143
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
144
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
145
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
168
|
+
<span class="cline-any cline-yes">1x</span>
|
|
169
|
+
<span class="cline-any cline-no"> </span>
|
|
170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-yes">1x</span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-neutral"> </span>
|
|
179
|
+
<span class="cline-any cline-neutral"> </span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-no"> </span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-no"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-no"> </span>
|
|
186
|
+
<span class="cline-any cline-no"> </span>
|
|
187
|
+
<span class="cline-any cline-no"> </span>
|
|
188
|
+
<span class="cline-any cline-no"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-no"> </span>
|
|
192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">38x</span>
|
|
196
|
+
<span class="cline-any cline-yes">1x</span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
|
+
<span class="cline-any cline-yes">1x</span>
|
|
207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-yes">6x</span>
|
|
212
|
+
<span class="cline-any cline-yes">1x</span>
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
215
|
+
<span class="cline-any cline-yes">5x</span>
|
|
216
|
+
<span class="cline-any cline-yes">5x</span>
|
|
217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">5x</span>
|
|
221
|
+
<span class="cline-any cline-yes">5x</span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-yes">5x</span>
|
|
225
|
+
<span class="cline-any cline-yes">5x</span>
|
|
226
|
+
<span class="cline-any cline-yes">31x</span>
|
|
227
|
+
<span class="cline-any cline-yes">10x</span>
|
|
228
|
+
<span class="cline-any cline-yes">10x</span>
|
|
229
|
+
<span class="cline-any cline-yes">10x</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>
|
|
233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-yes">5x</span>
|
|
236
|
+
<span class="cline-any cline-yes">15x</span>
|
|
237
|
+
<span class="cline-any cline-yes">12x</span>
|
|
238
|
+
<span class="cline-any cline-yes">12x</span>
|
|
239
|
+
<span class="cline-any cline-yes">7x</span>
|
|
240
|
+
<span class="cline-any cline-yes">7x</span>
|
|
241
|
+
<span class="cline-any cline-yes">5x</span>
|
|
242
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-yes">5x</span>
|
|
247
|
+
<span class="cline-any cline-yes">5x</span>
|
|
248
|
+
<span class="cline-any cline-yes">4x</span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-yes">5x</span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
255
|
+
<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 { Comparator } from '../types';
|
|
257
|
+
|
|
258
|
+
export namespace Fields {
|
|
259
|
+
export type Getter<T> = (obj: Partial<T>) => T[keyof T];
|
|
260
|
+
export type Setter<T> = (obj: Partial<T>, val: T[keyof T]) => void;
|
|
261
|
+
export type Comparer<T> = (source: Partial<T>, target: Partial<T>) => boolean;
|
|
262
|
+
export type Updater<T> = (target: T, source: T) => T;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
|
|
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 {
|
|
267
|
+
<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
|
+
}
|
|
269
|
+
|
|
270
|
+
export function <span class="fstat-no" title="function not covered" >updateFieldExtended<</span>T>(
|
|
271
|
+
target: T,
|
|
272
|
+
source: Partial<T>,
|
|
273
|
+
diff: Partial<T>,
|
|
274
|
+
get: Fields.Getter<T>,
|
|
275
|
+
set: Fields.Setter<T>,
|
|
276
|
+
hasChanged: Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
|
|
277
|
+
): boolean {
|
|
278
|
+
|
|
279
|
+
<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>
|
|
280
|
+
|
|
281
|
+
let changed = <span class="cstat-no" title="statement not covered" >true;</span>
|
|
282
|
+
|
|
283
|
+
<span class="cstat-no" title="statement not covered" > if (get(source) !== undefined && hasChanged(source, target)) {</span>
|
|
284
|
+
<span class="cstat-no" title="statement not covered" > changed = true;</span>
|
|
285
|
+
<span class="cstat-no" title="statement not covered" > set(diff, get(target));</span>
|
|
286
|
+
<span class="cstat-no" title="statement not covered" > set(target, get(source));</span>
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
<span class="cstat-no" title="statement not covered" > return changed;</span>
|
|
290
|
+
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
const DefaultComparator: Comparator<any> = (v1, v2) => v1 === v2;
|
|
294
|
+
const DefaultUpdater: Fields.Updater<any> = <span class="fstat-no" title="function not covered" >(v</span>1, v2) => <span class="cstat-no" title="statement not covered" >Object.assign(v1, v2);</span>
|
|
295
|
+
|
|
296
|
+
export type UpdateArrayOptions<T> = {
|
|
297
|
+
additive?: boolean,
|
|
298
|
+
clone?: boolean,
|
|
299
|
+
comparator?: Comparator<T>,
|
|
300
|
+
updater?: Fields.Updater<T>,
|
|
301
|
+
sorter?: Comparator<T, number> | null | undefined,
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
export function updateArray<T>(
|
|
305
|
+
target: T[] | null,
|
|
306
|
+
source: T[],
|
|
307
|
+
options?: UpdateArrayOptions<T>,
|
|
308
|
+
): { changed: number, result: T[] } {
|
|
309
|
+
if (!source) {
|
|
310
|
+
return { changed: 0, result: target };
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
let changed = 0;
|
|
314
|
+
const result = Array.isArray(target)
|
|
315
|
+
? (options?.clone ? target.slice() : target)
|
|
316
|
+
: <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
317
|
+
|
|
318
|
+
const comparator = options?.comparator || DefaultComparator;
|
|
319
|
+
const updater = options?.updater || DefaultUpdater;
|
|
320
|
+
|
|
321
|
+
// remove all missing elements
|
|
322
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!options?.additive) {
|
|
323
|
+
for (let i = 0; i < result.length; ++i) {
|
|
324
|
+
if (source.find(item => comparator(item, result[i])) == null) {
|
|
325
|
+
result.splice(i, 1);
|
|
326
|
+
++changed;
|
|
327
|
+
--i;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// add all new elements and update existing
|
|
333
|
+
source.forEach(i => {
|
|
334
|
+
const existingIndex = result.findIndex(item => comparator(i, item));
|
|
335
|
+
const existingItem = result[existingIndex];
|
|
336
|
+
if (existingIndex < 0) {
|
|
337
|
+
result.push(i);
|
|
338
|
+
++changed;
|
|
339
|
+
} else if (typeof existingItem === 'object') {
|
|
340
|
+
result[existingIndex] = updater(existingItem, i);
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
const sorter = options?.sorter;
|
|
345
|
+
if (sorter !== null) {
|
|
346
|
+
result.sort(sorter || undefined);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return {
|
|
350
|
+
result,
|
|
351
|
+
changed,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
</pre></td></tr></table></pre>
|
|
355
|
+
|
|
356
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
357
|
+
</div><!-- /wrapper -->
|
|
358
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
|
+
Code coverage generated by
|
|
360
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
361
|
+
at Mon Jan 03 2022 18:18:41 GMT+0000 (Coordinated Universal Time)
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
<script src="prettify.js"></script>
|
|
365
|
+
<script>
|
|
366
|
+
window.onload = function () {
|
|
367
|
+
prettyPrint();
|
|
368
|
+
};
|
|
369
|
+
</script>
|
|
370
|
+
<script src="sorter.js"></script>
|
|
371
|
+
<script src="block-navigation.js"></script>
|
|
372
|
+
</body>
|
|
373
|
+
</html>
|
|
374
|
+
|