@featurevisor/cli 1.13.0 → 1.14.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 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":1711489375463,"results":"3","hashOfConfig":"4"},{"size":6883,"mtime":1711489375463,"results":"5","hashOfConfig":"4"},{"filePath":"6","messages":"7","suppressedMessages":"8","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1n91dwg",{"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",[],[]]
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":1712074302776,"results":"3","hashOfConfig":"4"},{"size":8445,"mtime":1712074302776,"results":"5","hashOfConfig":"4"},{"filePath":"6","messages":"7","suppressedMessages":"8","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1n91dwg",{"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,25 @@
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.14.0](https://github.com/featurevisor/featurevisor/compare/v1.13.1...v1.14.0) (2024-04-02)
7
+
8
+
9
+ ### Features
10
+
11
+ * benchmarking option in CLI ([#292](https://github.com/featurevisor/featurevisor/issues/292)) ([6abcecc](https://github.com/featurevisor/featurevisor/commit/6abcecc3a92f00ccea7dcb542676126b6eb3b778))
12
+
13
+
14
+
15
+
16
+
17
+ ## [1.13.1](https://github.com/featurevisor/featurevisor/compare/v1.13.0...v1.13.1) (2024-03-27)
18
+
19
+ **Note:** Version bump only for package @featurevisor/cli
20
+
21
+
22
+
23
+
24
+
6
25
  # [1.13.0](https://github.com/featurevisor/featurevisor/compare/v1.12.0...v1.13.0) (2024-03-26)
7
26
 
8
27
 
package/lib/index.js CHANGED
@@ -374,6 +374,57 @@ function main() {
374
374
  .example("$0 find-usage --attribute=my_attribute", "find usage of attribute")
375
375
  .example("$0 find-usage --unusedSegments", "find unused segments")
376
376
  .example("$0 find-usage --unusedAttributes", "find unused attributes")
377
+ /**
378
+ * Benchmark features
379
+ */
380
+ .command({
381
+ command: "benchmark",
382
+ handler: function (options) {
383
+ return __awaiter(this, void 0, void 0, function () {
384
+ var deps, e_6;
385
+ return __generator(this, function (_a) {
386
+ switch (_a.label) {
387
+ case 0:
388
+ if (!options.environment) {
389
+ console.error("Please specify an environment with --environment flag.");
390
+ process.exit(1);
391
+ }
392
+ if (!options.feature) {
393
+ console.error("Please specify a feature with --feature flag.");
394
+ process.exit(1);
395
+ }
396
+ return [4 /*yield*/, getDependencies(options)];
397
+ case 1:
398
+ deps = _a.sent();
399
+ _a.label = 2;
400
+ case 2:
401
+ _a.trys.push([2, 4, , 5]);
402
+ return [4 /*yield*/, (0, core_1.benchmarkFeature)(deps, {
403
+ environment: options.environment,
404
+ feature: options.feature,
405
+ n: parseInt(options.n, 10) || 1,
406
+ context: options.context ? JSON.parse(options.context) : {},
407
+ variation: options.variation || undefined,
408
+ variable: options.variable || undefined,
409
+ })];
410
+ case 3:
411
+ _a.sent();
412
+ return [3 /*break*/, 5];
413
+ case 4:
414
+ e_6 = _a.sent();
415
+ console.error(e_6.message);
416
+ process.exit(1);
417
+ return [3 /*break*/, 5];
418
+ case 5: return [2 /*return*/];
419
+ }
420
+ });
421
+ });
422
+ },
423
+ })
424
+ .example("$0 benchmark", "benchmark feature evaluations")
425
+ .example("$0 benchmark --environment=production --feature=my_feature --context='{}' -n=100", "benchmark feature flag evaluation")
426
+ .example("$0 benchmark --environment=production --feature=my_feature --context='{}' --variation -n=100", "benchmark feature variation evaluation")
427
+ .example("$0 benchmark --environment=production --feature=my_feature --context='{}' --variable=my_variable_key -n=100", "benchmark feature variable evaluation")
377
428
  /**
378
429
  * Options
379
430
  */
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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.13.0",
3
+ "version": "1.14.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.13.0",
50
+ "@featurevisor/core": "^1.14.0",
51
51
  "yargs": "^17.6.2"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/yargs": "^17.0.22"
55
55
  },
56
- "gitHead": "4958688cc7892edeb54583ef5920975a2e6674e7"
56
+ "gitHead": "22d022a6f9b05f3b70ffcd95cab1779bd74292f2"
57
57
  }
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ import {
22
22
  restoreProject,
23
23
  Dependencies,
24
24
  Datasource,
25
+ benchmarkFeature,
25
26
  } from "@featurevisor/core";
26
27
 
27
28
  process.on("unhandledRejection", (reason) => {
@@ -261,6 +262,53 @@ async function main() {
261
262
  .example("$0 find-usage --unusedSegments", "find unused segments")
262
263
  .example("$0 find-usage --unusedAttributes", "find unused attributes")
263
264
 
265
+ /**
266
+ * Benchmark features
267
+ */
268
+ .command({
269
+ command: "benchmark",
270
+ handler: async function (options) {
271
+ if (!options.environment) {
272
+ console.error("Please specify an environment with --environment flag.");
273
+ process.exit(1);
274
+ }
275
+
276
+ if (!options.feature) {
277
+ console.error("Please specify a feature with --feature flag.");
278
+ process.exit(1);
279
+ }
280
+
281
+ const deps = await getDependencies(options);
282
+
283
+ try {
284
+ await benchmarkFeature(deps, {
285
+ environment: options.environment,
286
+ feature: options.feature,
287
+ n: parseInt(options.n, 10) || 1,
288
+ context: options.context ? JSON.parse(options.context) : {},
289
+ variation: options.variation || undefined,
290
+ variable: options.variable || undefined,
291
+ });
292
+ } catch (e) {
293
+ console.error(e.message);
294
+ process.exit(1);
295
+ }
296
+ },
297
+ })
298
+ .example("$0 benchmark", "benchmark feature evaluations")
299
+ .example(
300
+ "$0 benchmark --environment=production --feature=my_feature --context='{}' -n=100",
301
+ "benchmark feature flag evaluation",
302
+ )
303
+ .example(
304
+ "$0 benchmark --environment=production --feature=my_feature --context='{}' --variation -n=100",
305
+ "benchmark feature variation evaluation",
306
+ )
307
+ .example(
308
+ "$0 benchmark --environment=production --feature=my_feature --context='{}' --variable=my_variable_key -n=100",
309
+ "benchmark feature variable evaluation",
310
+ )
311
+
264
312
  /**
265
313
  * Options
266
314
  */