@featurevisor/core 0.37.1 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/coverage/clover.xml +110 -106
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +21 -21
- package/coverage/lcov-report/lib/allocator.js.html +1 -1
- package/coverage/lcov-report/lib/index.html +15 -15
- package/coverage/lcov-report/lib/traffic.js.html +44 -29
- package/coverage/lcov-report/src/allocator.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/traffic.ts.html +48 -30
- package/coverage/lcov.info +197 -182
- package/lib/builder.d.ts +9 -1
- package/lib/builder.js +65 -53
- package/lib/builder.js.map +1 -1
- package/lib/generate-code/typescript.js +2 -2
- package/lib/generate-code/typescript.js.map +1 -1
- package/lib/linter.js +11 -11
- package/lib/linter.js.map +1 -1
- package/lib/site.js +27 -25
- package/lib/site.js.map +1 -1
- package/lib/tester.js +14 -1
- package/lib/tester.js.map +1 -1
- package/lib/traffic.d.ts +2 -2
- package/lib/traffic.js +23 -18
- package/lib/traffic.js.map +1 -1
- package/package.json +5 -5
- package/src/builder.ts +83 -61
- package/src/generate-code/typescript.ts +6 -2
- package/src/linter.ts +11 -16
- package/src/site.ts +29 -27
- package/src/tester.ts +18 -1
- package/src/traffic.ts +29 -23
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">95.
|
|
26
|
+
<span class="strong">95.55% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>172/180</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.39% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>70/86</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">95.
|
|
47
|
+
<span class="strong">95.37% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>165/173</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,32 +80,32 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="lib"><a href="lib/index.html">lib</a></td>
|
|
83
|
-
<td data-value="95.
|
|
83
|
+
<td data-value="95.83" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="95.
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
86
|
+
<td data-value="95.83" class="pct high">95.83%</td>
|
|
87
|
+
<td data-value="96" class="abs high">92/96</td>
|
|
88
|
+
<td data-value="81.25" class="pct high">81.25%</td>
|
|
89
|
+
<td data-value="48" class="abs high">39/48</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
91
|
<td data-value="14" class="abs high">14/14</td>
|
|
92
|
-
<td data-value="95.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="95.55" class="pct high">95.55%</td>
|
|
93
|
+
<td data-value="90" class="abs high">86/90</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file high" data-value="src"><a href="src/index.html">src</a></td>
|
|
98
|
-
<td data-value="95.
|
|
98
|
+
<td data-value="95.23" class="pic high">
|
|
99
99
|
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="95.
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="81.
|
|
104
|
-
<td data-value="
|
|
101
|
+
<td data-value="95.23" class="pct high">95.23%</td>
|
|
102
|
+
<td data-value="84" class="abs high">80/84</td>
|
|
103
|
+
<td data-value="81.57" class="pct high">81.57%</td>
|
|
104
|
+
<td data-value="38" class="abs high">31/38</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="14" class="abs high">14/14</td>
|
|
107
|
-
<td data-value="95.
|
|
108
|
-
<td data-value="
|
|
107
|
+
<td data-value="95.18" class="pct high">95.18%</td>
|
|
108
|
+
<td data-value="83" class="abs high">79/83</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2023-07-
|
|
119
|
+
at 2023-07-16T20:11:43.054Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -175,7 +175,7 @@ exports.getUpdatedAvailableRangesAfterFilling = getUpdatedAvailableRangesAfterFi
|
|
|
175
175
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
176
176
|
Code coverage generated by
|
|
177
177
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
178
|
-
at 2023-07-
|
|
178
|
+
at 2023-07-16T20:11:43.054Z
|
|
179
179
|
</div>
|
|
180
180
|
<script src="../prettify.js"></script>
|
|
181
181
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">95.
|
|
26
|
+
<span class="strong">95.83% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>92/96</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.25% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>39/48</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">95.
|
|
47
|
+
<span class="strong">95.55% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>86/90</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -95,17 +95,17 @@
|
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file high" data-value="traffic.js"><a href="traffic.js.html">traffic.js</a></td>
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="94.02" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="
|
|
104
|
-
<td data-value="
|
|
101
|
+
<td data-value="94.02" class="pct high">94.02%</td>
|
|
102
|
+
<td data-value="67" class="abs high">63/67</td>
|
|
103
|
+
<td data-value="78.57" class="pct medium">78.57%</td>
|
|
104
|
+
<td data-value="42" class="abs medium">33/42</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="12" class="abs high">12/12</td>
|
|
107
|
-
<td data-value="93.
|
|
108
|
-
<td data-value="
|
|
107
|
+
<td data-value="93.65" class="pct high">93.65%</td>
|
|
108
|
+
<td data-value="63" class="abs high">59/63</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2023-07-
|
|
119
|
+
at 2023-07-16T20:11:43.054Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<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">94.02% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>63/67</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">78.57% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>33/42</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">93.
|
|
47
|
+
<span class="strong">93.65% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>59/63</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -182,7 +182,12 @@
|
|
|
182
182
|
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
183
|
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
184
|
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
186
191
|
<span class="cline-any cline-yes">1x</span>
|
|
187
192
|
<span class="cline-any cline-yes">1x</span>
|
|
188
193
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -193,15 +198,18 @@
|
|
|
193
198
|
<span class="cline-any cline-yes">3x</span>
|
|
194
199
|
<span class="cline-any cline-neutral"> </span>
|
|
195
200
|
<span class="cline-any cline-yes">6x</span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">15x</span>
|
|
203
|
+
<span class="cline-any cline-yes">15x</span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
|
+
<span class="cline-any cline-yes">6x</span>
|
|
196
207
|
<span class="cline-any cline-yes">16x</span>
|
|
197
208
|
<span class="cline-any cline-yes">16x</span>
|
|
198
209
|
<span class="cline-any cline-neutral"> </span>
|
|
199
210
|
<span class="cline-any cline-neutral"> </span>
|
|
200
211
|
<span class="cline-any cline-neutral"> </span>
|
|
201
212
|
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-yes">15x</span>
|
|
203
|
-
<span class="cline-any cline-yes">15x</span>
|
|
204
|
-
<span class="cline-any cline-neutral"> </span>
|
|
205
213
|
<span class="cline-any cline-neutral"> </span>
|
|
206
214
|
<span class="cline-any cline-yes">1x</span>
|
|
207
215
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -276,6 +284,7 @@
|
|
|
276
284
|
<span class="cline-any cline-yes">1x</span>
|
|
277
285
|
<span class="cline-any cline-neutral"> </span>
|
|
278
286
|
<span class="cline-any cline-yes">9x</span>
|
|
287
|
+
<span class="cline-any cline-yes">9x</span>
|
|
279
288
|
<span class="cline-any cline-yes">22x</span>
|
|
280
289
|
<span class="cline-any cline-yes">22x</span>
|
|
281
290
|
<span class="cline-any cline-yes">22x</span>
|
|
@@ -290,6 +299,7 @@
|
|
|
290
299
|
<span class="cline-any cline-neutral"> </span>
|
|
291
300
|
<span class="cline-any cline-yes">22x</span>
|
|
292
301
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
303
|
<span class="cline-any cline-yes">9x</span>
|
|
294
304
|
<span class="cline-any cline-yes">23x</span>
|
|
295
305
|
<span class="cline-any cline-no"> </span>
|
|
@@ -308,19 +318,22 @@ var sdk_1 = require("@featurevisor/sdk");
|
|
|
308
318
|
var allocator_1 = require("./allocator");
|
|
309
319
|
function detectIfVariationsChanged(yamlVariations, // as exists in latest YAML
|
|
310
320
|
existingFeature) {
|
|
311
|
-
if (!existingFeature) {
|
|
321
|
+
if (!existingFeature || typeof existingFeature.variations === "undefined") {
|
|
312
322
|
return false;
|
|
313
323
|
}
|
|
324
|
+
var checkVariations = Array.isArray(yamlVariations)
|
|
325
|
+
? JSON.stringify(yamlVariations.map(function (_a) {
|
|
326
|
+
var value = _a.value, weight = _a.weight;
|
|
327
|
+
return ({ value: value, weight: weight });
|
|
328
|
+
}))
|
|
329
|
+
: <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
314
330
|
return (JSON.stringify(existingFeature.variations.map(function (_a) {
|
|
315
331
|
var value = _a.value, weight = _a.weight;
|
|
316
332
|
return ({
|
|
317
333
|
value: value,
|
|
318
334
|
weight: weight,
|
|
319
335
|
});
|
|
320
|
-
})) !==
|
|
321
|
-
var value = _a.value, weight = _a.weight;
|
|
322
|
-
return ({ value: value, weight: weight });
|
|
323
|
-
})));
|
|
336
|
+
})) !== checkVariations);
|
|
324
337
|
}
|
|
325
338
|
exports.detectIfVariationsChanged = detectIfVariationsChanged;
|
|
326
339
|
function getRulePercentageDiff(trafficPercentage, // 0 to 100k
|
|
@@ -394,21 +407,23 @@ ranges) {
|
|
|
394
407
|
});
|
|
395
408
|
updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, existingSum_1);
|
|
396
409
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
410
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (Array.isArray(variations)) {
|
|
411
|
+
variations.forEach(function (variation) {
|
|
412
|
+
var weight = variation.weight;
|
|
413
|
+
var percentage = weight * (sdk_1.MAX_BUCKETED_NUMBER / 100);
|
|
414
|
+
var toFillValue = needsRebucketing
|
|
415
|
+
? percentage * (rulePercentage / 100) // whole value
|
|
416
|
+
: (weight / 100) * rulePercentageDiff; // incrementing
|
|
417
|
+
var rangesToFill = (0, allocator_1.getAllocation)(updatedAvailableRanges, toFillValue);
|
|
418
|
+
rangesToFill.forEach(function (range) {
|
|
419
|
+
traffic.allocation.push({
|
|
420
|
+
variation: variation.value,
|
|
421
|
+
range: range,
|
|
422
|
+
});
|
|
408
423
|
});
|
|
424
|
+
updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(updatedAvailableRanges, toFillValue);
|
|
409
425
|
});
|
|
410
|
-
|
|
411
|
-
});
|
|
426
|
+
}
|
|
412
427
|
traffic.allocation = traffic.allocation.filter(function (a) {
|
|
413
428
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (a.range && a.range[0] === a.range[1]) {
|
|
414
429
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
@@ -427,7 +442,7 @@ exports.getTraffic = getTraffic;
|
|
|
427
442
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
428
443
|
Code coverage generated by
|
|
429
444
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
430
|
-
at 2023-07-
|
|
445
|
+
at 2023-07-16T20:11:43.054Z
|
|
431
446
|
</div>
|
|
432
447
|
<script src="../prettify.js"></script>
|
|
433
448
|
<script>
|
|
@@ -193,7 +193,7 @@ export function getUpdatedAvailableRangesAfterFilling(
|
|
|
193
193
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
194
194
|
Code coverage generated by
|
|
195
195
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
196
|
-
at 2023-07-
|
|
196
|
+
at 2023-07-16T20:11:43.054Z
|
|
197
197
|
</div>
|
|
198
198
|
<script src="../prettify.js"></script>
|
|
199
199
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">95.
|
|
26
|
+
<span class="strong">95.23% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>80/84</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">81.
|
|
33
|
+
<span class="strong">81.57% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>31/38</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">95.
|
|
47
|
+
<span class="strong">95.18% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>79/83</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -95,17 +95,17 @@
|
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file high" data-value="traffic.ts"><a href="traffic.ts.html">traffic.ts</a></td>
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="93.22" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="78.
|
|
104
|
-
<td data-value="
|
|
101
|
+
<td data-value="93.22" class="pct high">93.22%</td>
|
|
102
|
+
<td data-value="59" class="abs high">55/59</td>
|
|
103
|
+
<td data-value="78.78" class="pct medium">78.78%</td>
|
|
104
|
+
<td data-value="33" class="abs medium">26/33</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="12" class="abs high">12/12</td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
107
|
+
<td data-value="93.1" class="pct high">93.1%</td>
|
|
108
|
+
<td data-value="58" class="abs high">54/58</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2023-07-
|
|
119
|
+
at 2023-07-16T20:11:43.054Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<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">93.22% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>55/59</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">78.
|
|
33
|
+
<span class="strong">78.78% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>26/33</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">93.1% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>54/58</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -218,7 +218,13 @@
|
|
|
218
218
|
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
219
|
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
220
|
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
222
228
|
<span class="cline-any cline-yes">1x</span>
|
|
223
229
|
<span class="cline-any cline-neutral"> </span>
|
|
224
230
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -232,12 +238,16 @@
|
|
|
232
238
|
<span class="cline-any cline-neutral"> </span>
|
|
233
239
|
<span class="cline-any cline-neutral"> </span>
|
|
234
240
|
<span class="cline-any cline-yes">6x</span>
|
|
241
|
+
<span class="cline-any cline-yes">15x</span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-yes">6x</span>
|
|
235
245
|
<span class="cline-any cline-neutral"> </span>
|
|
236
246
|
<span class="cline-any cline-yes">16x</span>
|
|
237
247
|
<span class="cline-any cline-neutral"> </span>
|
|
238
248
|
<span class="cline-any cline-neutral"> </span>
|
|
239
249
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
251
|
<span class="cline-any cline-neutral"> </span>
|
|
242
252
|
<span class="cline-any cline-neutral"> </span>
|
|
243
253
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -339,6 +349,7 @@
|
|
|
339
349
|
<span class="cline-any cline-neutral"> </span>
|
|
340
350
|
<span class="cline-any cline-neutral"> </span>
|
|
341
351
|
<span class="cline-any cline-yes">9x</span>
|
|
352
|
+
<span class="cline-any cline-yes">9x</span>
|
|
342
353
|
<span class="cline-any cline-yes">22x</span>
|
|
343
354
|
<span class="cline-any cline-yes">22x</span>
|
|
344
355
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -360,6 +371,7 @@
|
|
|
360
371
|
<span class="cline-any cline-neutral"> </span>
|
|
361
372
|
<span class="cline-any cline-neutral"> </span>
|
|
362
373
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
375
|
<span class="cline-any cline-yes">9x</span>
|
|
364
376
|
<span class="cline-any cline-yes">23x</span>
|
|
365
377
|
<span class="cline-any cline-no"> </span>
|
|
@@ -379,12 +391,16 @@ import { MAX_BUCKETED_NUMBER } from "@featurevisor/sdk";
|
|
|
379
391
|
import { getAllocation, getUpdatedAvailableRangesAfterFilling } from "./allocator";
|
|
380
392
|
|
|
381
393
|
export function detectIfVariationsChanged(
|
|
382
|
-
yamlVariations: Variation[], // as exists in latest YAML
|
|
394
|
+
yamlVariations: Variation[] | undefined, // as exists in latest YAML
|
|
383
395
|
existingFeature?: ExistingFeature, // from state file
|
|
384
396
|
): boolean {
|
|
385
|
-
if (!existingFeature) {
|
|
397
|
+
if (!existingFeature || typeof existingFeature.variations === "undefined") {
|
|
386
398
|
return false;
|
|
387
399
|
}
|
|
400
|
+
|
|
401
|
+
const checkVariations = Array.isArray(yamlVariations)
|
|
402
|
+
? JSON.stringify(yamlVariations.map(({ value, weight }) => ({ value, weight })))
|
|
403
|
+
: <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
388
404
|
|
|
389
405
|
return (
|
|
390
406
|
JSON.stringify(
|
|
@@ -392,7 +408,7 @@ export function detectIfVariationsChanged(
|
|
|
392
408
|
value,
|
|
393
409
|
weight,
|
|
394
410
|
})),
|
|
395
|
-
) !==
|
|
411
|
+
) !== checkVariations
|
|
396
412
|
);
|
|
397
413
|
}
|
|
398
414
|
|
|
@@ -426,7 +442,7 @@ export function detectIfRangesChanged(
|
|
|
426
442
|
|
|
427
443
|
export function getTraffic(
|
|
428
444
|
// from current YAML
|
|
429
|
-
variations: Variation[],
|
|
445
|
+
variations: Variation[] | undefined,
|
|
430
446
|
parsedRules: Rule[],
|
|
431
447
|
// from previous release
|
|
432
448
|
existingFeature: ExistingFeature | undefined,
|
|
@@ -493,27 +509,29 @@ export function getTraffic(
|
|
|
493
509
|
updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, existingSum);
|
|
494
510
|
}
|
|
495
511
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
512
|
+
if (Array.isArray(variations)) {
|
|
513
|
+
variations.forEach(function (variation) {
|
|
514
|
+
const weight = variation.weight as number;
|
|
515
|
+
const percentage = weight * (MAX_BUCKETED_NUMBER / 100);
|
|
499
516
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
517
|
+
let toFillValue = needsRebucketing
|
|
518
|
+
? percentage * (rulePercentage / 100) // whole value
|
|
519
|
+
: (weight / 100) * rulePercentageDiff; // incrementing
|
|
520
|
+
const rangesToFill = getAllocation(updatedAvailableRanges, toFillValue);
|
|
504
521
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
522
|
+
rangesToFill.forEach(function (range) {
|
|
523
|
+
traffic.allocation.push({
|
|
524
|
+
variation: variation.value,
|
|
525
|
+
range,
|
|
526
|
+
});
|
|
509
527
|
});
|
|
510
|
-
});
|
|
511
528
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
529
|
+
updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(
|
|
530
|
+
updatedAvailableRanges,
|
|
531
|
+
toFillValue,
|
|
532
|
+
);
|
|
533
|
+
});
|
|
534
|
+
}
|
|
517
535
|
|
|
518
536
|
traffic.allocation = traffic.allocation.filter((a) => {
|
|
519
537
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (a.range && a.range[0] === a.range[1]) {
|
|
@@ -535,7 +553,7 @@ export function getTraffic(
|
|
|
535
553
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
554
|
Code coverage generated by
|
|
537
555
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
538
|
-
at 2023-07-
|
|
556
|
+
at 2023-07-16T20:11:43.054Z
|
|
539
557
|
</div>
|
|
540
558
|
<script src="../prettify.js"></script>
|
|
541
559
|
<script>
|