@featurevisor/core 0.15.0 → 0.16.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.
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var traffic_1 = require("./traffic");
4
4
  describe("core: Traffic", function () {
5
5
  it("should be a function", function () {
6
- expect(typeof traffic_1.getNewTraffic).toEqual("function");
6
+ expect(typeof traffic_1.getTraffic).toEqual("function");
7
7
  });
8
8
  it("should allocate traffic for 100-0 weight on two variations", function () {
9
- var result = (0, traffic_1.getNewTraffic)(
9
+ var result = (0, traffic_1.getTraffic)(
10
10
  // parsed variations from YAML
11
11
  [
12
12
  {
@@ -37,17 +37,17 @@ describe("core: Traffic", function () {
37
37
  {
38
38
  variation: "on",
39
39
  percentage: 80000,
40
- },
41
- {
42
- variation: "off",
43
- percentage: 0,
40
+ range: {
41
+ start: 0,
42
+ end: 80000,
43
+ },
44
44
  },
45
45
  ],
46
46
  },
47
47
  ]);
48
48
  });
49
49
  it("should allocate traffic for 50-50 weight on two variations", function () {
50
- var result = (0, traffic_1.getNewTraffic)(
50
+ var result = (0, traffic_1.getTraffic)(
51
51
  // parsed variations from YAML
52
52
  [
53
53
  {
@@ -78,17 +78,25 @@ describe("core: Traffic", function () {
78
78
  {
79
79
  variation: "on",
80
80
  percentage: 40000,
81
+ range: {
82
+ start: 0,
83
+ end: 40000,
84
+ },
81
85
  },
82
86
  {
83
87
  variation: "off",
84
88
  percentage: 40000,
89
+ range: {
90
+ start: 40000,
91
+ end: 80000,
92
+ },
85
93
  },
86
94
  ],
87
95
  },
88
96
  ]);
89
97
  });
90
98
  it("should allocate traffic for weight with two decimal places among three variations", function () {
91
- var result = (0, traffic_1.getNewTraffic)(
99
+ var result = (0, traffic_1.getTraffic)(
92
100
  // parsed variations from YAML
93
101
  [
94
102
  {
@@ -123,21 +131,33 @@ describe("core: Traffic", function () {
123
131
  {
124
132
  variation: "yes",
125
133
  percentage: 33330,
134
+ range: {
135
+ start: 0,
136
+ end: 33330,
137
+ },
126
138
  },
127
139
  {
128
140
  variation: "no",
129
141
  percentage: 33330,
142
+ range: {
143
+ start: 33330,
144
+ end: 66660,
145
+ },
130
146
  },
131
147
  {
132
148
  variation: "maybe",
133
149
  percentage: 33340,
150
+ range: {
151
+ start: 66660,
152
+ end: 100000,
153
+ },
134
154
  },
135
155
  ],
136
156
  },
137
157
  ]);
138
158
  });
139
159
  it("should allocate against previous known allocation, increasing from 80% to 90%, with same variations and weight", function () {
140
- var result = (0, traffic_1.getNewTraffic)(
160
+ var result = (0, traffic_1.getTraffic)(
141
161
  // parsed variations from YAML
142
162
  [
143
163
  {
@@ -177,10 +197,18 @@ describe("core: Traffic", function () {
177
197
  {
178
198
  variation: "on",
179
199
  percentage: 40000,
200
+ range: {
201
+ start: 0,
202
+ end: 40000,
203
+ },
180
204
  },
181
205
  {
182
206
  variation: "off",
183
207
  percentage: 40000,
208
+ range: {
209
+ start: 40000,
210
+ end: 80000,
211
+ },
184
212
  },
185
213
  ],
186
214
  },
@@ -196,26 +224,42 @@ describe("core: Traffic", function () {
196
224
  {
197
225
  variation: "on",
198
226
  percentage: 40000,
227
+ range: {
228
+ start: 0,
229
+ end: 40000,
230
+ },
199
231
  },
200
232
  {
201
233
  variation: "off",
202
234
  percentage: 40000,
235
+ range: {
236
+ start: 40000,
237
+ end: 80000,
238
+ },
203
239
  },
204
240
  // new
205
241
  {
206
242
  variation: "on",
207
243
  percentage: 5000,
244
+ range: {
245
+ start: 80000,
246
+ end: 85000,
247
+ },
208
248
  },
209
249
  {
210
250
  variation: "off",
211
251
  percentage: 5000,
252
+ range: {
253
+ start: 85000,
254
+ end: 90000,
255
+ },
212
256
  },
213
257
  ],
214
258
  },
215
259
  ]);
216
260
  });
217
261
  it("should allocate against previous known allocation, decreasing from 80% to 70%, with same variations and weight", function () {
218
- var result = (0, traffic_1.getNewTraffic)(
262
+ var result = (0, traffic_1.getTraffic)(
219
263
  // parsed variations from YAML
220
264
  [
221
265
  {
@@ -255,10 +299,18 @@ describe("core: Traffic", function () {
255
299
  {
256
300
  variation: "on",
257
301
  percentage: 40000,
302
+ range: {
303
+ start: 0,
304
+ end: 40000,
305
+ },
258
306
  },
259
307
  {
260
308
  variation: "off",
261
309
  percentage: 40000,
310
+ range: {
311
+ start: 40000,
312
+ end: 80000,
313
+ },
262
314
  },
263
315
  ],
264
316
  },
@@ -273,17 +325,25 @@ describe("core: Traffic", function () {
273
325
  {
274
326
  variation: "on",
275
327
  percentage: 35000,
328
+ range: {
329
+ start: 0,
330
+ end: 35000,
331
+ },
276
332
  },
277
333
  {
278
334
  variation: "off",
279
335
  percentage: 35000,
336
+ range: {
337
+ start: 35000,
338
+ end: 70000,
339
+ },
280
340
  },
281
341
  ],
282
342
  },
283
343
  ]);
284
344
  });
285
345
  it("should allocate against previous known allocation, increasing from 80% to 90%, with new added variation", function () {
286
- var result = (0, traffic_1.getNewTraffic)(
346
+ var result = (0, traffic_1.getTraffic)(
287
347
  // parsed variations from YAML
288
348
  [
289
349
  {
@@ -327,10 +387,18 @@ describe("core: Traffic", function () {
327
387
  {
328
388
  variation: "a",
329
389
  percentage: 40000,
390
+ range: {
391
+ start: 0,
392
+ end: 40000,
393
+ },
330
394
  },
331
395
  {
332
396
  variation: "b",
333
397
  percentage: 40000,
398
+ range: {
399
+ start: 40000,
400
+ end: 80000,
401
+ },
334
402
  },
335
403
  ],
336
404
  },
@@ -345,21 +413,33 @@ describe("core: Traffic", function () {
345
413
  {
346
414
  variation: "a",
347
415
  percentage: 29997,
416
+ range: {
417
+ start: 0,
418
+ end: 29997,
419
+ },
348
420
  },
349
421
  {
350
422
  variation: "b",
351
423
  percentage: 29997,
424
+ range: {
425
+ start: 29997,
426
+ end: 59994,
427
+ },
352
428
  },
353
429
  {
354
430
  variation: "c",
355
431
  percentage: 30006,
432
+ range: {
433
+ start: 59994,
434
+ end: 90000,
435
+ },
356
436
  },
357
437
  ],
358
438
  },
359
439
  ]);
360
440
  });
361
441
  it("should allocate against previous known allocation, increasing from 80% to 100%, with new added variation, totalling 4 variations", function () {
362
- var result = (0, traffic_1.getNewTraffic)(
442
+ var result = (0, traffic_1.getTraffic)(
363
443
  // parsed variations from YAML
364
444
  [
365
445
  {
@@ -407,10 +487,18 @@ describe("core: Traffic", function () {
407
487
  {
408
488
  variation: "a",
409
489
  percentage: 40000,
490
+ range: {
491
+ start: 0,
492
+ end: 40000,
493
+ },
410
494
  },
411
495
  {
412
496
  variation: "b",
413
497
  percentage: 40000,
498
+ range: {
499
+ start: 40000,
500
+ end: 80000,
501
+ },
414
502
  },
415
503
  ],
416
504
  },
@@ -425,25 +513,41 @@ describe("core: Traffic", function () {
425
513
  {
426
514
  variation: "a",
427
515
  percentage: 25000,
516
+ range: {
517
+ start: 0,
518
+ end: 25000,
519
+ },
428
520
  },
429
521
  {
430
522
  variation: "b",
431
523
  percentage: 25000,
524
+ range: {
525
+ start: 25000,
526
+ end: 50000,
527
+ },
432
528
  },
433
529
  {
434
530
  variation: "c",
435
531
  percentage: 25000,
532
+ range: {
533
+ start: 50000,
534
+ end: 75000,
535
+ },
436
536
  },
437
537
  {
438
538
  variation: "d",
439
539
  percentage: 25000,
540
+ range: {
541
+ start: 75000,
542
+ end: 100000,
543
+ },
440
544
  },
441
545
  ],
442
546
  },
443
547
  ]);
444
548
  });
445
549
  it("should allocate against previous known allocation, staying at same 100%, removing variations from 4 to 2", function () {
446
- var result = (0, traffic_1.getNewTraffic)(
550
+ var result = (0, traffic_1.getTraffic)(
447
551
  // parsed variations from YAML
448
552
  [
449
553
  {
@@ -491,18 +595,34 @@ describe("core: Traffic", function () {
491
595
  {
492
596
  variation: "a",
493
597
  percentage: 25000,
598
+ range: {
599
+ start: 0,
600
+ end: 25000,
601
+ },
494
602
  },
495
603
  {
496
604
  variation: "b",
497
605
  percentage: 25000,
606
+ range: {
607
+ start: 25000,
608
+ end: 50000,
609
+ },
498
610
  },
499
611
  {
500
612
  variation: "c",
501
613
  percentage: 25000,
614
+ range: {
615
+ start: 50000,
616
+ end: 75000,
617
+ },
502
618
  },
503
619
  {
504
620
  variation: "d",
505
621
  percentage: 25000,
622
+ range: {
623
+ start: 75000,
624
+ end: 100000,
625
+ },
506
626
  },
507
627
  ],
508
628
  },
@@ -517,17 +637,25 @@ describe("core: Traffic", function () {
517
637
  {
518
638
  variation: "a",
519
639
  percentage: 50000,
640
+ range: {
641
+ start: 0,
642
+ end: 50000,
643
+ },
520
644
  },
521
645
  {
522
646
  variation: "b",
523
647
  percentage: 50000,
648
+ range: {
649
+ start: 50000,
650
+ end: 100000,
651
+ },
524
652
  },
525
653
  ],
526
654
  },
527
655
  ]);
528
656
  });
529
657
  it("should allocate against previous known allocation, decreasing from 100% to 80%, removing variations from 4 to 2", function () {
530
- var result = (0, traffic_1.getNewTraffic)(
658
+ var result = (0, traffic_1.getTraffic)(
531
659
  // parsed variations from YAML
532
660
  [
533
661
  {
@@ -575,18 +703,34 @@ describe("core: Traffic", function () {
575
703
  {
576
704
  variation: "a",
577
705
  percentage: 25000,
706
+ range: {
707
+ start: 0,
708
+ end: 25000,
709
+ },
578
710
  },
579
711
  {
580
712
  variation: "b",
581
713
  percentage: 25000,
714
+ range: {
715
+ start: 25000,
716
+ end: 50000,
717
+ },
582
718
  },
583
719
  {
584
720
  variation: "c",
585
721
  percentage: 25000,
722
+ range: {
723
+ start: 50000,
724
+ end: 75000,
725
+ },
586
726
  },
587
727
  {
588
728
  variation: "d",
589
729
  percentage: 25000,
730
+ range: {
731
+ start: 75000,
732
+ end: 100000,
733
+ },
590
734
  },
591
735
  ],
592
736
  },
@@ -601,10 +745,18 @@ describe("core: Traffic", function () {
601
745
  {
602
746
  variation: "a",
603
747
  percentage: 40000,
748
+ range: {
749
+ start: 0,
750
+ end: 40000,
751
+ },
604
752
  },
605
753
  {
606
754
  variation: "b",
607
755
  percentage: 40000,
756
+ range: {
757
+ start: 40000,
758
+ end: 80000,
759
+ },
608
760
  },
609
761
  ],
610
762
  },
@@ -1 +1 @@
1
- {"version":3,"file":"traffic.spec.js","sourceRoot":"","sources":["../src/traffic.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traffic.spec.js","sourceRoot":"","sources":["../src/traffic.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featurevisor/core",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Core package of Featurevisor for Node.js usage",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -41,9 +41,9 @@
41
41
  },
42
42
  "license": "MIT",
43
43
  "dependencies": {
44
- "@featurevisor/sdk": "^0.15.0",
45
- "@featurevisor/site": "^0.15.0",
46
- "@featurevisor/types": "^0.15.0",
44
+ "@featurevisor/sdk": "^0.16.0",
45
+ "@featurevisor/site": "^0.16.0",
46
+ "@featurevisor/types": "^0.16.0",
47
47
  "axios": "^1.3.4",
48
48
  "joi": "^17.8.3",
49
49
  "js-yaml": "^4.1.0",
@@ -54,5 +54,5 @@
54
54
  "@types/js-yaml": "^4.0.5",
55
55
  "@types/tar": "^6.1.4"
56
56
  },
57
- "gitHead": "254d79ee3bcbd5d9c2f771f66e653ffe5512176e"
57
+ "gitHead": "7e9b87c4653e4f2940fb399a53e919a2c7450c14"
58
58
  }
@@ -0,0 +1,104 @@
1
+ import { getAllocation, getUpdatedAvailableRangesAfterFilling } from "./allocator";
2
+
3
+ describe("core: allocator", function () {
4
+ test("is a function", function () {
5
+ expect(getAllocation).toBeInstanceOf(Function);
6
+ expect(getUpdatedAvailableRangesAfterFilling).toBeInstanceOf(Function);
7
+ });
8
+
9
+ test("fills a single range fully", function () {
10
+ const availableRanges = [{ start: 0, end: 100 }];
11
+ const result = getAllocation(availableRanges, 100);
12
+
13
+ expect(result).toEqual(availableRanges);
14
+
15
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 100);
16
+ expect(updatedAvailableRanges).toEqual([]);
17
+ });
18
+
19
+ test("fills a single range partially", function () {
20
+ const availableRanges = [{ start: 0, end: 100 }];
21
+ const result = getAllocation(availableRanges, 80);
22
+
23
+ expect(result).toEqual([{ start: 0, end: 80 }]);
24
+
25
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 80);
26
+ expect(updatedAvailableRanges).toEqual([{ start: 80, end: 100 }]);
27
+ });
28
+
29
+ test("fills multiple ranges fully", function () {
30
+ const availableRanges = [
31
+ { start: 0, end: 50 },
32
+ { start: 50, end: 100 },
33
+ ];
34
+ const result = getAllocation(availableRanges, 100);
35
+
36
+ expect(result).toEqual(availableRanges);
37
+
38
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 100);
39
+ expect(updatedAvailableRanges).toEqual([]);
40
+ });
41
+
42
+ test("fills multiple ranges with breaks in between fully", function () {
43
+ const availableRanges = [
44
+ { start: 0, end: 40 },
45
+ { start: 60, end: 100 },
46
+ ];
47
+ const result = getAllocation(availableRanges, 80);
48
+
49
+ expect(result).toEqual(availableRanges);
50
+
51
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 80);
52
+ expect(updatedAvailableRanges).toEqual([]);
53
+ });
54
+
55
+ test("fills multiple ranges partially", function () {
56
+ const availableRanges = [
57
+ { start: 0, end: 50 },
58
+ { start: 50, end: 100 },
59
+ ];
60
+ const result = getAllocation(availableRanges, 80);
61
+
62
+ expect(result).toEqual([
63
+ { start: 0, end: 50 },
64
+ { start: 50, end: 80 },
65
+ ]);
66
+
67
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 80);
68
+ expect(updatedAvailableRanges).toEqual([{ start: 80, end: 100 }]);
69
+ });
70
+
71
+ test("fills multiple ranges with breaks in between partially", function () {
72
+ const availableRanges = [
73
+ { start: 0, end: 40 },
74
+ { start: 60, end: 100 },
75
+ ];
76
+ const result = getAllocation(availableRanges, 50);
77
+
78
+ expect(result).toEqual([
79
+ { start: 0, end: 40 },
80
+ { start: 60, end: 70 },
81
+ ]);
82
+
83
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 50);
84
+ expect(updatedAvailableRanges).toEqual([{ start: 70, end: 100 }]);
85
+ });
86
+
87
+ test("fills multiple ranges with breaks in between partially, with 3 range items", function () {
88
+ const availableRanges = [
89
+ { start: 0, end: 30 },
90
+ { start: 60, end: 70 },
91
+ { start: 90, end: 95 },
92
+ ];
93
+ const result = getAllocation(availableRanges, 42);
94
+
95
+ expect(result).toEqual([
96
+ { start: 0, end: 30 },
97
+ { start: 60, end: 70 },
98
+ { start: 90, end: 92 },
99
+ ]);
100
+
101
+ const updatedAvailableRanges = getUpdatedAvailableRangesAfterFilling(availableRanges, 42);
102
+ expect(updatedAvailableRanges).toEqual([{ start: 92, end: 95 }]);
103
+ });
104
+ });
@@ -0,0 +1,44 @@
1
+ import { Range, Percentage } from "@featurevisor/types";
2
+
3
+ export function getAllocation(availableRanges: Range[], fill: Percentage): Range[] {
4
+ const result: Range[] = [];
5
+
6
+ let remaining = fill;
7
+ let i = 0;
8
+ while (remaining > 0 && i < availableRanges.length) {
9
+ const range = availableRanges[i];
10
+ const rangeFill = Math.min(remaining, range.end - range.start);
11
+ result.push({
12
+ start: range.start,
13
+ end: range.start + rangeFill,
14
+ });
15
+ remaining -= rangeFill;
16
+ i++;
17
+ }
18
+
19
+ return result;
20
+ }
21
+
22
+ export function getUpdatedAvailableRangesAfterFilling(
23
+ availableRanges: Range[],
24
+ fill: Percentage,
25
+ ): Range[] {
26
+ const result: Range[] = [];
27
+
28
+ let remaining = fill;
29
+ let i = 0;
30
+ while (remaining > 0 && i < availableRanges.length) {
31
+ const range = availableRanges[i];
32
+ const rangeFill = Math.min(remaining, range.end - range.start);
33
+ if (rangeFill < range.end - range.start) {
34
+ result.push({
35
+ start: range.start + rangeFill,
36
+ end: range.end,
37
+ });
38
+ }
39
+ remaining -= rangeFill;
40
+ i++;
41
+ }
42
+
43
+ return result;
44
+ }