@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.
package/lib/linter.js CHANGED
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.lintProject = exports.printJoiError = exports.getTestsJoiSchema = exports.getFeatureJoiSchema = exports.getSegmentJoiSchema = exports.getConditionsJoiSchema = exports.getAttributeJoiSchema = void 0;
39
+ exports.lintProject = exports.printJoiError = exports.getTestsJoiSchema = exports.getFeatureJoiSchema = exports.getGroupJoiSchema = exports.getSegmentJoiSchema = exports.getConditionsJoiSchema = exports.getAttributeJoiSchema = void 0;
40
40
  // for use in node only
41
41
  var fs = require("fs");
42
42
  var path = require("path");
@@ -96,6 +96,51 @@ function getSegmentJoiSchema(projectConfig, conditionsJoiSchema) {
96
96
  return segmentJoiSchema;
97
97
  }
98
98
  exports.getSegmentJoiSchema = getSegmentJoiSchema;
99
+ function getGroupJoiSchema(projectConfig) {
100
+ var groupJoiSchema = Joi.object({
101
+ description: Joi.string().required(),
102
+ slots: Joi.array()
103
+ .items(Joi.object({
104
+ feature: Joi.string(),
105
+ percentage: Joi.number().precision(3).min(0).max(100),
106
+ }))
107
+ .custom(function (value, helper) {
108
+ var totalPercentage = value.reduce(function (acc, slot) { return acc + slot.percentage; }, 0);
109
+ if (totalPercentage !== 100) {
110
+ throw new Error("total percentage is not 100");
111
+ }
112
+ for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {
113
+ var slot = value_1[_i];
114
+ var maxPercentageForRule = slot.percentage;
115
+ if (slot.feature) {
116
+ var featureKey = slot.feature;
117
+ var featurePath = path.join(projectConfig.featuresDirectoryPath, "".concat(featureKey, ".yml"));
118
+ var parsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(featurePath, "utf8"));
119
+ if (!parsedFeature) {
120
+ throw new Error("feature ".concat(featureKey, " not found"));
121
+ }
122
+ var environmentKeys = Object.keys(parsedFeature.environments);
123
+ for (var _a = 0, environmentKeys_1 = environmentKeys; _a < environmentKeys_1.length; _a++) {
124
+ var environmentKey = environmentKeys_1[_a];
125
+ var environment = parsedFeature.environments[environmentKey];
126
+ var rules = environment.rules;
127
+ for (var _b = 0, rules_1 = rules; _b < rules_1.length; _b++) {
128
+ var rule = rules_1[_b];
129
+ if (rule.percentage > maxPercentageForRule) {
130
+ // @TODO: this does not help with same feature belonging to multiple slots. fix that.
131
+ throw new Error("Feature ".concat(featureKey, "'s rule ").concat(rule.key, " in ").concat(environmentKey, " has a percentage of ").concat(rule.percentage, " which is greater than the maximum percentage of ").concat(maxPercentageForRule, " for the slot"));
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ return value;
138
+ })
139
+ .required(),
140
+ });
141
+ return groupJoiSchema;
142
+ }
143
+ exports.getGroupJoiSchema = getGroupJoiSchema;
99
144
  function getFeatureJoiSchema(projectConfig, conditionsJoiSchema) {
100
145
  var variationValueJoiSchema = Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean());
101
146
  var variableValueJoiSchema = Joi.alternatives()
@@ -229,9 +274,9 @@ function printJoiError(e) {
229
274
  exports.printJoiError = printJoiError;
230
275
  function lintProject(projectConfig) {
231
276
  return __awaiter(this, void 0, void 0, function () {
232
- var hasError, attributeFilePaths, attributeJoiSchema, _i, attributeFilePaths_1, filePath, key, parsed, e_1, segmentFilePaths, conditionsJoiSchema, segmentJoiSchema, _a, segmentFilePaths_1, filePath, key, parsed, e_2, featureFilePaths, featureJoiSchema, _b, featureFilePaths_1, filePath, key, parsed, e_3, testFilePaths, testsJoiSchema, _c, testFilePaths_1, filePath, key, parsed, e_4;
233
- return __generator(this, function (_d) {
234
- switch (_d.label) {
277
+ var hasError, attributeFilePaths, attributeJoiSchema, _i, attributeFilePaths_1, filePath, key, parsed, e_1, segmentFilePaths, conditionsJoiSchema, segmentJoiSchema, _a, segmentFilePaths_1, filePath, key, parsed, e_2, groupFilePaths, groupJoiSchema, _b, groupFilePaths_1, filePath, key, parsed, e_3, featureFilePaths, featureJoiSchema, _c, featureFilePaths_1, filePath, key, parsed, e_4, testFilePaths, testsJoiSchema, _d, testFilePaths_1, filePath, key, parsed, e_5;
278
+ return __generator(this, function (_e) {
279
+ switch (_e.label) {
235
280
  case 0:
236
281
  hasError = false;
237
282
  // lint attributes
@@ -239,22 +284,22 @@ function lintProject(projectConfig) {
239
284
  attributeFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.attributesDirectoryPath));
240
285
  attributeJoiSchema = getAttributeJoiSchema(projectConfig);
241
286
  _i = 0, attributeFilePaths_1 = attributeFilePaths;
242
- _d.label = 1;
287
+ _e.label = 1;
243
288
  case 1:
244
289
  if (!(_i < attributeFilePaths_1.length)) return [3 /*break*/, 6];
245
290
  filePath = attributeFilePaths_1[_i];
246
291
  key = path.basename(filePath, ".yml");
247
292
  parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
248
293
  console.log(" =>", key);
249
- _d.label = 2;
294
+ _e.label = 2;
250
295
  case 2:
251
- _d.trys.push([2, 4, , 5]);
296
+ _e.trys.push([2, 4, , 5]);
252
297
  return [4 /*yield*/, attributeJoiSchema.validateAsync(parsed)];
253
298
  case 3:
254
- _d.sent();
299
+ _e.sent();
255
300
  return [3 /*break*/, 5];
256
301
  case 4:
257
- e_1 = _d.sent();
302
+ e_1 = _e.sent();
258
303
  if (e_1 instanceof Joi.ValidationError) {
259
304
  printJoiError(e_1);
260
305
  }
@@ -273,22 +318,22 @@ function lintProject(projectConfig) {
273
318
  conditionsJoiSchema = getConditionsJoiSchema(projectConfig);
274
319
  segmentJoiSchema = getSegmentJoiSchema(projectConfig, conditionsJoiSchema);
275
320
  _a = 0, segmentFilePaths_1 = segmentFilePaths;
276
- _d.label = 7;
321
+ _e.label = 7;
277
322
  case 7:
278
323
  if (!(_a < segmentFilePaths_1.length)) return [3 /*break*/, 12];
279
324
  filePath = segmentFilePaths_1[_a];
280
325
  key = path.basename(filePath, ".yml");
281
326
  parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
282
327
  console.log(" =>", key);
283
- _d.label = 8;
328
+ _e.label = 8;
284
329
  case 8:
285
- _d.trys.push([8, 10, , 11]);
330
+ _e.trys.push([8, 10, , 11]);
286
331
  return [4 /*yield*/, segmentJoiSchema.validateAsync(parsed)];
287
332
  case 9:
288
- _d.sent();
333
+ _e.sent();
289
334
  return [3 /*break*/, 11];
290
335
  case 10:
291
- e_2 = _d.sent();
336
+ e_2 = _e.sent();
292
337
  if (e_2 instanceof Joi.ValidationError) {
293
338
  printJoiError(e_2);
294
339
  }
@@ -301,27 +346,28 @@ function lintProject(projectConfig) {
301
346
  _a++;
302
347
  return [3 /*break*/, 7];
303
348
  case 12:
304
- // lint features
305
- console.log("\nLinting features...\n");
306
- featureFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.featuresDirectoryPath));
307
- featureJoiSchema = getFeatureJoiSchema(projectConfig, conditionsJoiSchema);
308
- _b = 0, featureFilePaths_1 = featureFilePaths;
309
- _d.label = 13;
349
+ // lint groups
350
+ console.log("\nLinting groups...\n");
351
+ if (!fs.existsSync(projectConfig.groupsDirectoryPath)) return [3 /*break*/, 18];
352
+ groupFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.groupsDirectoryPath));
353
+ groupJoiSchema = getGroupJoiSchema(projectConfig);
354
+ _b = 0, groupFilePaths_1 = groupFilePaths;
355
+ _e.label = 13;
310
356
  case 13:
311
- if (!(_b < featureFilePaths_1.length)) return [3 /*break*/, 18];
312
- filePath = featureFilePaths_1[_b];
357
+ if (!(_b < groupFilePaths_1.length)) return [3 /*break*/, 18];
358
+ filePath = groupFilePaths_1[_b];
313
359
  key = path.basename(filePath, ".yml");
314
360
  parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
315
361
  console.log(" =>", key);
316
- _d.label = 14;
362
+ _e.label = 14;
317
363
  case 14:
318
- _d.trys.push([14, 16, , 17]);
319
- return [4 /*yield*/, featureJoiSchema.validateAsync(parsed)];
364
+ _e.trys.push([14, 16, , 17]);
365
+ return [4 /*yield*/, groupJoiSchema.validateAsync(parsed)];
320
366
  case 15:
321
- _d.sent();
367
+ _e.sent();
322
368
  return [3 /*break*/, 17];
323
369
  case 16:
324
- e_3 = _d.sent();
370
+ e_3 = _e.sent();
325
371
  if (e_3 instanceof Joi.ValidationError) {
326
372
  printJoiError(e_3);
327
373
  }
@@ -334,27 +380,28 @@ function lintProject(projectConfig) {
334
380
  _b++;
335
381
  return [3 /*break*/, 13];
336
382
  case 18:
337
- // lint tests
338
- console.log("\nLinting tests...\n");
339
- testFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.testsDirectoryPath));
340
- testsJoiSchema = getTestsJoiSchema(projectConfig);
341
- _c = 0, testFilePaths_1 = testFilePaths;
342
- _d.label = 19;
383
+ // @TODO: feature cannot exist in multiple groups
384
+ // lint features
385
+ console.log("\nLinting features...\n");
386
+ featureFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.featuresDirectoryPath));
387
+ featureJoiSchema = getFeatureJoiSchema(projectConfig, conditionsJoiSchema);
388
+ _c = 0, featureFilePaths_1 = featureFilePaths;
389
+ _e.label = 19;
343
390
  case 19:
344
- if (!(_c < testFilePaths_1.length)) return [3 /*break*/, 24];
345
- filePath = testFilePaths_1[_c];
391
+ if (!(_c < featureFilePaths_1.length)) return [3 /*break*/, 24];
392
+ filePath = featureFilePaths_1[_c];
346
393
  key = path.basename(filePath, ".yml");
347
394
  parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
348
395
  console.log(" =>", key);
349
- _d.label = 20;
396
+ _e.label = 20;
350
397
  case 20:
351
- _d.trys.push([20, 22, , 23]);
352
- return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
398
+ _e.trys.push([20, 22, , 23]);
399
+ return [4 /*yield*/, featureJoiSchema.validateAsync(parsed)];
353
400
  case 21:
354
- _d.sent();
401
+ _e.sent();
355
402
  return [3 /*break*/, 23];
356
403
  case 22:
357
- e_4 = _d.sent();
404
+ e_4 = _e.sent();
358
405
  if (e_4 instanceof Joi.ValidationError) {
359
406
  printJoiError(e_4);
360
407
  }
@@ -366,7 +413,41 @@ function lintProject(projectConfig) {
366
413
  case 23:
367
414
  _c++;
368
415
  return [3 /*break*/, 19];
369
- case 24: return [2 /*return*/, hasError];
416
+ case 24:
417
+ // lint tests
418
+ console.log("\nLinting tests...\n");
419
+ if (!fs.existsSync(projectConfig.testsDirectoryPath)) return [3 /*break*/, 30];
420
+ testFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.testsDirectoryPath));
421
+ testsJoiSchema = getTestsJoiSchema(projectConfig);
422
+ _d = 0, testFilePaths_1 = testFilePaths;
423
+ _e.label = 25;
424
+ case 25:
425
+ if (!(_d < testFilePaths_1.length)) return [3 /*break*/, 30];
426
+ filePath = testFilePaths_1[_d];
427
+ key = path.basename(filePath, ".yml");
428
+ parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
429
+ console.log(" =>", key);
430
+ _e.label = 26;
431
+ case 26:
432
+ _e.trys.push([26, 28, , 29]);
433
+ return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
434
+ case 27:
435
+ _e.sent();
436
+ return [3 /*break*/, 29];
437
+ case 28:
438
+ e_5 = _e.sent();
439
+ if (e_5 instanceof Joi.ValidationError) {
440
+ printJoiError(e_5);
441
+ }
442
+ else {
443
+ console.log(e_5);
444
+ }
445
+ hasError = true;
446
+ return [3 /*break*/, 29];
447
+ case 29:
448
+ _d++;
449
+ return [3 /*break*/, 25];
450
+ case 30: return [2 /*return*/, hasError];
370
451
  }
371
452
  });
372
453
  });
package/lib/linter.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
package/lib/tester.js CHANGED
@@ -74,14 +74,9 @@ function testProject(rootDirectoryPath, projectConfig) {
74
74
  configureBucketValue: function (feature, attributes, bucketValue) {
75
75
  return currentAt;
76
76
  },
77
- logger: (0, sdk_1.createLogger)({
78
- levels: [
79
- // "debug",
80
- // "info",
81
- // "warn",
82
- "error",
83
- ],
84
- }),
77
+ // logger: createLogger({
78
+ // levels: ["debug", "info", "warn", "error"],
79
+ // }),
85
80
  });
86
81
  test.features.forEach(function (feature, fIndex) {
87
82
  var featureKey = feature.key;
package/lib/tester.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tester.js","sourceRoot":"","sources":["../src/tester.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tester.js","sourceRoot":"","sources":["../src/tester.ts"],"names":[],"mappings":"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"}
package/lib/traffic.d.ts CHANGED
@@ -1,2 +1,8 @@
1
- import { Rule, ExistingFeature, Traffic, Variation } from "@featurevisor/types";
2
- export declare function getNewTraffic(variations: Variation[], parsedRules: Rule[], existingFeature: ExistingFeature | undefined): Traffic[];
1
+ import { Rule, ExistingFeature, Traffic, Variation, Range, Percentage } from "@featurevisor/types";
2
+ export declare function detectIfVariationsChanged(yamlVariations: Variation[], // as exists in latest YAML
3
+ existingFeature?: ExistingFeature): boolean;
4
+ export declare function getRulePercentageDiff(trafficPercentage: Percentage, // 0 to 100k
5
+ existingTrafficRule: any): number;
6
+ export declare function detectIfRangesChanged(availableRanges: Range[], // as exists in latest YAML
7
+ existingFeature?: ExistingFeature): boolean;
8
+ export declare function getTraffic(variations: Variation[], parsedRules: Rule[], existingFeature: ExistingFeature | undefined, ranges?: Range[]): Traffic[];
package/lib/traffic.js CHANGED
@@ -1,111 +1,122 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNewTraffic = void 0;
3
+ exports.getTraffic = exports.detectIfRangesChanged = exports.getRulePercentageDiff = exports.detectIfVariationsChanged = void 0;
4
4
  var sdk_1 = require("@featurevisor/sdk");
5
- function getNewTraffic(
5
+ var allocator_1 = require("./allocator");
6
+ function detectIfVariationsChanged(yamlVariations, // as exists in latest YAML
7
+ existingFeature) {
8
+ if (!existingFeature) {
9
+ return false;
10
+ }
11
+ return (JSON.stringify(existingFeature.variations.map(function (_a) {
12
+ var value = _a.value, weight = _a.weight;
13
+ return ({
14
+ value: value,
15
+ weight: weight,
16
+ });
17
+ })) !== JSON.stringify(yamlVariations.map(function (_a) {
18
+ var value = _a.value, weight = _a.weight;
19
+ return ({ value: value, weight: weight });
20
+ })));
21
+ }
22
+ exports.detectIfVariationsChanged = detectIfVariationsChanged;
23
+ function getRulePercentageDiff(trafficPercentage, // 0 to 100k
24
+ existingTrafficRule) {
25
+ if (!existingTrafficRule) {
26
+ return 0;
27
+ }
28
+ var existingPercentage = existingTrafficRule.percentage;
29
+ return trafficPercentage - existingPercentage;
30
+ }
31
+ exports.getRulePercentageDiff = getRulePercentageDiff;
32
+ function detectIfRangesChanged(availableRanges, // as exists in latest YAML
33
+ existingFeature) {
34
+ if (!existingFeature) {
35
+ return false;
36
+ }
37
+ if (!existingFeature.ranges) {
38
+ return false;
39
+ }
40
+ return JSON.stringify(existingFeature.ranges) !== JSON.stringify(availableRanges);
41
+ }
42
+ exports.detectIfRangesChanged = detectIfRangesChanged;
43
+ function getTraffic(
6
44
  // from current YAML
7
45
  variations, parsedRules,
8
46
  // from previous release
9
- existingFeature) {
47
+ existingFeature,
48
+ // ranges from group slots
49
+ ranges) {
10
50
  var result = [];
11
- parsedRules.forEach(function (parsedRollout) {
12
- var rolloutPercentage = parsedRollout.percentage;
51
+ // @TODO: may be pass from builder directly?
52
+ var availableRanges = ranges && ranges.length > 0 ? ranges : [{ start: 0, end: sdk_1.MAX_BUCKETED_NUMBER }];
53
+ parsedRules.forEach(function (parsedRule) {
54
+ var rulePercentage = parsedRule.percentage; // 0 - 100
13
55
  var traffic = {
14
- key: parsedRollout.key,
15
- segments: typeof parsedRollout.segments !== "string"
16
- ? JSON.stringify(parsedRollout.segments)
17
- : parsedRollout.segments,
18
- percentage: rolloutPercentage * (sdk_1.MAX_BUCKETED_NUMBER / 100),
56
+ key: parsedRule.key,
57
+ segments: typeof parsedRule.segments !== "string"
58
+ ? JSON.stringify(parsedRule.segments)
59
+ : parsedRule.segments,
60
+ percentage: rulePercentage * (sdk_1.MAX_BUCKETED_NUMBER / 100),
19
61
  allocation: [],
20
62
  };
21
- if (parsedRollout.variables) {
22
- traffic.variables = parsedRollout.variables;
63
+ // overrides
64
+ if (parsedRule.variables) {
65
+ traffic.variables = parsedRule.variables;
23
66
  }
24
- if (parsedRollout.variation) {
25
- traffic.variation = parsedRollout.variation;
67
+ if (parsedRule.variation) {
68
+ traffic.variation = parsedRule.variation;
26
69
  }
27
- var existingTrafficRollout = existingFeature === null || existingFeature === void 0 ? void 0 : existingFeature.traffic.find(function (t) { return t.key === parsedRollout.key; });
28
- // @TODO: handle if Variations changed (added/removed, or weight changed)
29
- // - new variation added
30
- // - variation removed
31
- // - variation weight changed
32
- //
33
- // make it better by maintaining as much of the previous bucketing as possible
34
- var variationsChanged = existingFeature
35
- ? JSON.stringify(existingFeature.variations.map(function (_a) {
36
- var value = _a.value, weight = _a.weight;
37
- return ({
38
- value: value,
39
- weight: weight,
40
- });
41
- })) !== JSON.stringify(variations.map(function (_a) {
42
- var value = _a.value, weight = _a.weight;
43
- return ({ value: value, weight: weight });
44
- }))
45
- : false;
46
- var diffPercentage = 0;
47
- if (existingTrafficRollout) {
48
- diffPercentage =
49
- rolloutPercentage - existingTrafficRollout.percentage / (sdk_1.MAX_BUCKETED_NUMBER / 100);
50
- if (diffPercentage > 0 &&
51
- !variationsChanged // if variations changed, we need to re-bucket
52
- ) {
53
- // increase: build on top of existing allocations
54
- traffic.allocation = existingTrafficRollout.allocation.map(function (_a) {
55
- var variation = _a.variation, percentage = _a.percentage;
56
- return {
57
- variation: variation,
58
- percentage: percentage,
59
- };
60
- });
61
- }
70
+ // detect changes
71
+ var variationsChanged = detectIfVariationsChanged(variations, existingFeature);
72
+ var existingTrafficRule = existingFeature === null || existingFeature === void 0 ? void 0 : existingFeature.traffic.find(function (t) { return t.key === parsedRule.key; });
73
+ var rulePercentageDiff = getRulePercentageDiff(traffic.percentage, existingTrafficRule);
74
+ var rangesChanged = detectIfRangesChanged(availableRanges, existingFeature);
75
+ var needsRebucketing = !existingTrafficRule || // new rule
76
+ variationsChanged || // variations changed
77
+ rulePercentageDiff <= 0 || // percentage decreased
78
+ rangesChanged; // belongs to a group, and group ranges changed
79
+ var updatedAvailableRanges = JSON.parse(JSON.stringify(availableRanges));
80
+ var lastEnd = 0;
81
+ if (existingTrafficRule && !needsRebucketing) {
82
+ // increase: build on top of existing allocations
83
+ var existingSum_1 = 0;
84
+ traffic.allocation = existingTrafficRule.allocation.map(function (_a) {
85
+ var variation = _a.variation, percentage = _a.percentage, // @TODO: remove it in next breaking semver
86
+ range = _a.range;
87
+ var result = {
88
+ variation: variation,
89
+ percentage: percentage,
90
+ range: range || {
91
+ start: lastEnd,
92
+ end: percentage,
93
+ },
94
+ };
95
+ existingSum_1 += percentage || 0;
96
+ lastEnd = lastEnd + (percentage || 0);
97
+ return result;
98
+ });
99
+ updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(availableRanges, existingSum_1);
62
100
  }
63
101
  variations.forEach(function (variation) {
64
- var newPercentage = parseInt(((variation.weight / 100) *
65
- rolloutPercentage *
66
- (sdk_1.MAX_BUCKETED_NUMBER / 100)).toFixed(2));
67
- if (!existingTrafficRollout || variationsChanged === true) {
68
- traffic.allocation.push({
69
- variation: variation.value,
70
- percentage: newPercentage,
71
- });
72
- return;
73
- }
74
- // const prevTotalWeightForVariation = existingTrafficRollout.allocation
75
- // .filter((a) => a.variation === variation.value)
76
- // .reduce((acc, curr) => acc + curr.percentage, 0);
77
- // const diffWeightForVariation = (variation.weight as number) - prevTotalWeightForVariation / (MAX_BUCKETED_NUMBER / 100));
78
- if (diffPercentage === 0) {
79
- // no change
80
- traffic.allocation.push({
81
- variation: variation.value,
82
- percentage: newPercentage,
83
- });
84
- return;
85
- }
86
- if (diffPercentage > 0) {
87
- // increase - need to consistently bucket
88
- traffic.allocation.push({
89
- variation: variation.value,
90
- percentage: parseInt((variation.weight *
91
- (diffPercentage / 100) *
92
- (sdk_1.MAX_BUCKETED_NUMBER / 100)).toFixed(2)),
93
- });
94
- return;
95
- }
96
- if (diffPercentage < 0) {
97
- // decrease - need to re-bucket
98
- // @TODO: can we maintain as much pre bucketed values as possible? to be close to consistent bucketing?
102
+ var weight = variation.weight;
103
+ var percentage = weight * (sdk_1.MAX_BUCKETED_NUMBER / 100);
104
+ var toFillValue = needsRebucketing
105
+ ? percentage * (rulePercentage / 100) // whole value
106
+ : (weight / 100) * rulePercentageDiff; // incrementing
107
+ var rangesToFill = (0, allocator_1.getAllocation)(updatedAvailableRanges, toFillValue);
108
+ rangesToFill.forEach(function (range) {
99
109
  traffic.allocation.push({
100
110
  variation: variation.value,
101
- percentage: newPercentage,
111
+ percentage: toFillValue,
112
+ range: range,
102
113
  });
103
- return;
104
- }
114
+ });
115
+ updatedAvailableRanges = (0, allocator_1.getUpdatedAvailableRangesAfterFilling)(updatedAvailableRanges, toFillValue);
105
116
  });
106
117
  result.push(traffic);
107
118
  });
108
119
  return result;
109
120
  }
110
- exports.getNewTraffic = getNewTraffic;
121
+ exports.getTraffic = getTraffic;
111
122
  //# sourceMappingURL=traffic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traffic.js","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traffic.js","sourceRoot":"","sources":["../src/traffic.ts"],"names":[],"mappings":"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"}