@featurevisor/cli 1.16.0 → 1.18.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/.eslintcache +1 -1
- package/CHANGELOG.md +22 -0
- package/lib/index.js +99 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +81 -0
package/.eslintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/home/runner/work/featurevisor/featurevisor/packages/cli/bin.js":"1","/home/runner/work/featurevisor/featurevisor/packages/cli/src/index.ts":"2"},{"size":45,"mtime":
|
|
1
|
+
[{"/home/runner/work/featurevisor/featurevisor/packages/cli/bin.js":"1","/home/runner/work/featurevisor/featurevisor/packages/cli/src/index.ts":"2"},{"size":45,"mtime":1713285711966,"results":"3","hashOfConfig":"4"},{"size":11559,"mtime":1713285711966,"results":"5","hashOfConfig":"4"},{"filePath":"6","messages":"7","suppressedMessages":"8","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1c6d9wa",{"filePath":"9","messages":"10","suppressedMessages":"11","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/featurevisor/featurevisor/packages/cli/bin.js",[],[],"/home/runner/work/featurevisor/featurevisor/packages/cli/src/index.ts",[],[]]
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.18.0](https://github.com/featurevisor/featurevisor/compare/v1.17.0...v1.18.0) (2024-04-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* assess traffic distribution via CLI ([#297](https://github.com/featurevisor/featurevisor/issues/297)) ([2063ad9](https://github.com/featurevisor/featurevisor/commit/2063ad9a5408071bfb1636c748cabe616065191d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.17.0](https://github.com/featurevisor/featurevisor/compare/v1.16.0...v1.17.0) (2024-04-07)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* evaluate features in CLI ([#295](https://github.com/featurevisor/featurevisor/issues/295)) ([5a3332a](https://github.com/featurevisor/featurevisor/commit/5a3332a226a3b4901445fe2fe04baa8320e94f48))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [1.16.0](https://github.com/featurevisor/featurevisor/compare/v1.15.0...v1.16.0) (2024-04-05)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @featurevisor/cli
|
package/lib/index.js
CHANGED
|
@@ -447,6 +447,105 @@ function main() {
|
|
|
447
447
|
.example("$0 config", "show project configuration")
|
|
448
448
|
.example("$0 config --print", "print project configuration as JSON")
|
|
449
449
|
.example("$0 config --print --pretty", "print project configuration as prettified JSON")
|
|
450
|
+
/**
|
|
451
|
+
* Evaluate
|
|
452
|
+
*/
|
|
453
|
+
.command({
|
|
454
|
+
command: "evaluate",
|
|
455
|
+
handler: function (options) {
|
|
456
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
457
|
+
var deps, e_7;
|
|
458
|
+
return __generator(this, function (_a) {
|
|
459
|
+
switch (_a.label) {
|
|
460
|
+
case 0:
|
|
461
|
+
if (!options.environment) {
|
|
462
|
+
console.error("Please specify an environment with --environment flag.");
|
|
463
|
+
process.exit(1);
|
|
464
|
+
}
|
|
465
|
+
if (!options.feature) {
|
|
466
|
+
console.error("Please specify a feature with --feature flag.");
|
|
467
|
+
process.exit(1);
|
|
468
|
+
}
|
|
469
|
+
return [4 /*yield*/, getDependencies(options)];
|
|
470
|
+
case 1:
|
|
471
|
+
deps = _a.sent();
|
|
472
|
+
_a.label = 2;
|
|
473
|
+
case 2:
|
|
474
|
+
_a.trys.push([2, 4, , 5]);
|
|
475
|
+
return [4 /*yield*/, (0, core_1.evaluateFeature)(deps, {
|
|
476
|
+
environment: options.environment,
|
|
477
|
+
feature: options.feature,
|
|
478
|
+
context: options.context ? JSON.parse(options.context) : {},
|
|
479
|
+
print: options.print,
|
|
480
|
+
pretty: options.pretty,
|
|
481
|
+
})];
|
|
482
|
+
case 3:
|
|
483
|
+
_a.sent();
|
|
484
|
+
return [3 /*break*/, 5];
|
|
485
|
+
case 4:
|
|
486
|
+
e_7 = _a.sent();
|
|
487
|
+
console.error(e_7.message);
|
|
488
|
+
process.exit(1);
|
|
489
|
+
return [3 /*break*/, 5];
|
|
490
|
+
case 5: return [2 /*return*/];
|
|
491
|
+
}
|
|
492
|
+
});
|
|
493
|
+
});
|
|
494
|
+
},
|
|
495
|
+
})
|
|
496
|
+
.example("$0 evaluate", "evaluate a feature along with its variation and variables")
|
|
497
|
+
.example("$0 evaluate --environment=production --feature=my_feature --context='{}'", "evaluate a feature against provided context")
|
|
498
|
+
/**
|
|
499
|
+
* Assess distribution
|
|
500
|
+
*/
|
|
501
|
+
.command({
|
|
502
|
+
command: "assess-distribution",
|
|
503
|
+
handler: function (options) {
|
|
504
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
505
|
+
var deps, e_8;
|
|
506
|
+
return __generator(this, function (_a) {
|
|
507
|
+
switch (_a.label) {
|
|
508
|
+
case 0:
|
|
509
|
+
if (!options.environment) {
|
|
510
|
+
console.error("Please specify an environment with --environment flag.");
|
|
511
|
+
process.exit(1);
|
|
512
|
+
}
|
|
513
|
+
if (!options.feature) {
|
|
514
|
+
console.error("Please specify a feature with --feature flag.");
|
|
515
|
+
process.exit(1);
|
|
516
|
+
}
|
|
517
|
+
return [4 /*yield*/, getDependencies(options)];
|
|
518
|
+
case 1:
|
|
519
|
+
deps = _a.sent();
|
|
520
|
+
_a.label = 2;
|
|
521
|
+
case 2:
|
|
522
|
+
_a.trys.push([2, 4, , 5]);
|
|
523
|
+
return [4 /*yield*/, (0, core_1.assessDistribution)(deps, {
|
|
524
|
+
environment: options.environment,
|
|
525
|
+
feature: options.feature,
|
|
526
|
+
context: options.context ? JSON.parse(options.context) : {},
|
|
527
|
+
populateUuid: Array.isArray(options.populateUuid)
|
|
528
|
+
? options.populateUuid
|
|
529
|
+
: [options.populateUuid].filter(Boolean),
|
|
530
|
+
n: parseInt(options.n, 10) || 1,
|
|
531
|
+
verbose: options.verbose,
|
|
532
|
+
})];
|
|
533
|
+
case 3:
|
|
534
|
+
_a.sent();
|
|
535
|
+
return [3 /*break*/, 5];
|
|
536
|
+
case 4:
|
|
537
|
+
e_8 = _a.sent();
|
|
538
|
+
console.error(e_8.message);
|
|
539
|
+
process.exit(1);
|
|
540
|
+
return [3 /*break*/, 5];
|
|
541
|
+
case 5: return [2 /*return*/];
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
});
|
|
545
|
+
},
|
|
546
|
+
})
|
|
547
|
+
.example("$0 assess-distribution", "test traffic distribution of a feature")
|
|
548
|
+
.example("$0 assess-distribution --environment=production --feature=my_feature --context='{}' --populateUuid=userId --n=100", "test traffic distribution a feature against provided context")
|
|
450
549
|
/**
|
|
451
550
|
* Options
|
|
452
551
|
*/
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,6BAA+B;AAE/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@featurevisor/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "CLI package of Featurevisor",
|
|
5
5
|
"main": "bin.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
},
|
|
48
48
|
"license": "MIT",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@featurevisor/core": "^1.
|
|
50
|
+
"@featurevisor/core": "^1.18.0",
|
|
51
51
|
"yargs": "^17.6.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/yargs": "^17.0.22"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "beedecac433ebb53ec5c856ecdf5bf8c5ea159fd"
|
|
57
57
|
}
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,8 @@ import {
|
|
|
24
24
|
Datasource,
|
|
25
25
|
benchmarkFeature,
|
|
26
26
|
showProjectConfig,
|
|
27
|
+
evaluateFeature,
|
|
28
|
+
assessDistribution,
|
|
27
29
|
} from "@featurevisor/core";
|
|
28
30
|
|
|
29
31
|
process.on("unhandledRejection", (reason) => {
|
|
@@ -328,6 +330,85 @@ async function main() {
|
|
|
328
330
|
.example("$0 config --print", "print project configuration as JSON")
|
|
329
331
|
.example("$0 config --print --pretty", "print project configuration as prettified JSON")
|
|
330
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Evaluate
|
|
335
|
+
*/
|
|
336
|
+
.command({
|
|
337
|
+
command: "evaluate",
|
|
338
|
+
handler: async function (options) {
|
|
339
|
+
if (!options.environment) {
|
|
340
|
+
console.error("Please specify an environment with --environment flag.");
|
|
341
|
+
process.exit(1);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (!options.feature) {
|
|
345
|
+
console.error("Please specify a feature with --feature flag.");
|
|
346
|
+
process.exit(1);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
const deps = await getDependencies(options);
|
|
350
|
+
|
|
351
|
+
try {
|
|
352
|
+
await evaluateFeature(deps, {
|
|
353
|
+
environment: options.environment,
|
|
354
|
+
feature: options.feature,
|
|
355
|
+
context: options.context ? JSON.parse(options.context) : {},
|
|
356
|
+
print: options.print,
|
|
357
|
+
pretty: options.pretty,
|
|
358
|
+
});
|
|
359
|
+
} catch (e) {
|
|
360
|
+
console.error(e.message);
|
|
361
|
+
process.exit(1);
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
})
|
|
365
|
+
.example("$0 evaluate", "evaluate a feature along with its variation and variables")
|
|
366
|
+
.example(
|
|
367
|
+
"$0 evaluate --environment=production --feature=my_feature --context='{}'",
|
|
368
|
+
"evaluate a feature against provided context",
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Assess distribution
|
|
373
|
+
*/
|
|
374
|
+
.command({
|
|
375
|
+
command: "assess-distribution",
|
|
376
|
+
handler: async function (options) {
|
|
377
|
+
if (!options.environment) {
|
|
378
|
+
console.error("Please specify an environment with --environment flag.");
|
|
379
|
+
process.exit(1);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
if (!options.feature) {
|
|
383
|
+
console.error("Please specify a feature with --feature flag.");
|
|
384
|
+
process.exit(1);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
const deps = await getDependencies(options);
|
|
388
|
+
|
|
389
|
+
try {
|
|
390
|
+
await assessDistribution(deps, {
|
|
391
|
+
environment: options.environment,
|
|
392
|
+
feature: options.feature,
|
|
393
|
+
context: options.context ? JSON.parse(options.context) : {},
|
|
394
|
+
populateUuid: Array.isArray(options.populateUuid)
|
|
395
|
+
? options.populateUuid
|
|
396
|
+
: [options.populateUuid as string].filter(Boolean),
|
|
397
|
+
n: parseInt(options.n, 10) || 1,
|
|
398
|
+
verbose: options.verbose,
|
|
399
|
+
});
|
|
400
|
+
} catch (e) {
|
|
401
|
+
console.error(e.message);
|
|
402
|
+
process.exit(1);
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
})
|
|
406
|
+
.example("$0 assess-distribution", "test traffic distribution of a feature")
|
|
407
|
+
.example(
|
|
408
|
+
"$0 assess-distribution --environment=production --feature=my_feature --context='{}' --populateUuid=userId --n=100",
|
|
409
|
+
"test traffic distribution a feature against provided context",
|
|
410
|
+
)
|
|
411
|
+
|
|
331
412
|
/**
|
|
332
413
|
* Options
|
|
333
414
|
*/
|