@featurevisor/core 2.15.0 → 2.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/coverage/clover.xml +2 -2
  3. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  4. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  7. package/coverage/lcov-report/builder/index.html +1 -1
  8. package/coverage/lcov-report/builder/mutateVariables.ts.html +1 -1
  9. package/coverage/lcov-report/builder/mutator.ts.html +1 -1
  10. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  11. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  12. package/coverage/lcov-report/config/index.html +1 -1
  13. package/coverage/lcov-report/config/index.ts.html +1 -1
  14. package/coverage/lcov-report/config/projectConfig.ts.html +1 -1
  15. package/coverage/lcov-report/datasource/adapter.ts.html +1 -1
  16. package/coverage/lcov-report/datasource/datasource.ts.html +1 -1
  17. package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +1 -1
  18. package/coverage/lcov-report/datasource/index.html +1 -1
  19. package/coverage/lcov-report/datasource/index.ts.html +1 -1
  20. package/coverage/lcov-report/index.html +1 -1
  21. package/coverage/lcov-report/linter/attributeSchema.ts.html +1 -1
  22. package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
  23. package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
  24. package/coverage/lcov-report/linter/conditionSchema.ts.html +1 -1
  25. package/coverage/lcov-report/linter/featureSchema.ts.html +1 -1
  26. package/coverage/lcov-report/linter/groupSchema.ts.html +1 -1
  27. package/coverage/lcov-report/linter/index.html +1 -1
  28. package/coverage/lcov-report/linter/lintProject.ts.html +1 -1
  29. package/coverage/lcov-report/linter/mutationNotation.ts.html +1 -1
  30. package/coverage/lcov-report/linter/printError.ts.html +1 -1
  31. package/coverage/lcov-report/linter/schema.ts.html +1 -1
  32. package/coverage/lcov-report/linter/segmentSchema.ts.html +1 -1
  33. package/coverage/lcov-report/linter/testSchema.ts.html +1 -1
  34. package/coverage/lcov-report/list/index.html +1 -1
  35. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  36. package/coverage/lcov-report/parsers/index.html +1 -1
  37. package/coverage/lcov-report/parsers/index.ts.html +1 -1
  38. package/coverage/lcov-report/parsers/json.ts.html +1 -1
  39. package/coverage/lcov-report/parsers/yml.ts.html +1 -1
  40. package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
  41. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/tester/index.html +1 -1
  43. package/coverage/lcov-report/utils/git.ts.html +1 -1
  44. package/coverage/lcov-report/utils/index.html +1 -1
  45. package/lib/generate-code/index.d.ts +3 -0
  46. package/lib/generate-code/index.js +16 -1
  47. package/lib/generate-code/index.js.map +1 -1
  48. package/lib/generate-code/typescript.d.ts +6 -1
  49. package/lib/generate-code/typescript.js +193 -42
  50. package/lib/generate-code/typescript.js.map +1 -1
  51. package/package.json +2 -2
  52. package/src/generate-code/index.ts +20 -1
  53. package/src/generate-code/typescript.ts +266 -64
@@ -331,6 +331,45 @@ function getRelativePath(from, to) {
331
331
  }
332
332
  return relativePath;
333
333
  }
334
+ function getVariationUnionFromFeature(parsedFeature) {
335
+ if (!parsedFeature.variations || parsedFeature.variations.length === 0) {
336
+ return null;
337
+ }
338
+ const values = Array.from(new Set(parsedFeature.variations.map((variation) => JSON.stringify(variation.value))));
339
+ return values.length > 0 ? values.join(" | ") : null;
340
+ }
341
+ function getVariableTypeForFeaturesMap(variableSchema, schemasByKey, schemaTypeNames) {
342
+ const schemaTypesUsed = [];
343
+ const addSchemaUsed = (name) => {
344
+ if (name && !schemaTypesUsed.includes(name)) {
345
+ schemaTypesUsed.push(name);
346
+ }
347
+ };
348
+ if (schemaTypeNames &&
349
+ "schema" in variableSchema &&
350
+ variableSchema.schema &&
351
+ schemasByKey[variableSchema.schema]) {
352
+ const schemaTypeName = schemaTypeNames[variableSchema.schema];
353
+ addSchemaUsed(schemaTypeName);
354
+ return { typeName: schemaTypeName, schemaTypesUsed };
355
+ }
356
+ const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
357
+ if (!effective) {
358
+ return { typeName: "unknown", schemaTypesUsed };
359
+ }
360
+ if ("type" in effective && effective.type === "json") {
361
+ return { typeName: "unknown", schemaTypesUsed };
362
+ }
363
+ const typeName = schemaToTypeScriptType(effective, schemasByKey, schemaTypeNames);
364
+ if (schemaTypeNames) {
365
+ Object.values(schemaTypeNames).forEach((name) => {
366
+ if (typeName.includes(name)) {
367
+ addSchemaUsed(name);
368
+ }
369
+ });
370
+ }
371
+ return { typeName, schemaTypesUsed };
372
+ }
334
373
  /**
335
374
  * Generates the content of Schemas.ts: one exported type per schema key, using schema refs between schemas.
336
375
  */
@@ -366,8 +405,15 @@ export function getInstance(): FeaturevisorInstance {
366
405
  return _instance as FeaturevisorInstance;
367
406
  }
368
407
  `.trimStart();
369
- async function generateTypeScriptCodeForProject(deps, outputPath) {
408
+ async function generateTypeScriptCodeForProject(deps, outputPath, options = {}) {
370
409
  const { rootDirectoryPath, datasource } = deps;
410
+ const selectedTags = options.tag
411
+ ? Array.isArray(options.tag)
412
+ ? options.tag
413
+ : [options.tag]
414
+ : [];
415
+ const shouldGenerateReact = Boolean(options.react);
416
+ const shouldGenerateIndividualFeatures = options.individualFeatures !== false;
371
417
  console.log("\nGenerating TypeScript code...\n");
372
418
  // instance
373
419
  const instanceFilePath = path.join(outputPath, "instance.ts");
@@ -406,7 +452,6 @@ ${attributeProperties}
406
452
  fs.writeFileSync(contextTypeFilePath, contextContent);
407
453
  console.log(`Context type file written at: ${getRelativePath(rootDirectoryPath, contextTypeFilePath)}`);
408
454
  // features
409
- const featureNamespaces = [];
410
455
  const featureFiles = await datasource.listFeatures();
411
456
  // Load schemas for resolving variable schema references
412
457
  const schemaListKeys = await datasource.listSchemas();
@@ -431,66 +476,79 @@ ${attributeProperties}
431
476
  for (const k of schemaKeys) {
432
477
  schemaTypeNames[k] = getPascalCase(k) + "Schema";
433
478
  }
479
+ const parsedFeatures = [];
434
480
  for (const featureKey of featureFiles) {
435
- const parsedFeature = await datasource.readFeature(featureKey);
481
+ const parsedFeature = (await datasource.readFeature(featureKey));
436
482
  if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
437
483
  continue;
438
484
  }
485
+ if (selectedTags.length > 0) {
486
+ const featureTags = Array.isArray(parsedFeature.tags) ? parsedFeature.tags : [];
487
+ const hasTags = selectedTags.every((tag) => featureTags.includes(tag));
488
+ if (!hasTags) {
489
+ continue;
490
+ }
491
+ }
439
492
  const namespaceValue = getPascalCase(featureKey) + "Feature";
440
- featureNamespaces.push(namespaceValue);
441
- let variableTypeDeclarations = "";
442
- let variableMethods = "";
443
- const featureSchemaTypesUsed = new Set();
444
- if (parsedFeature.variablesSchema) {
445
- const variableKeys = Object.keys(parsedFeature.variablesSchema);
446
- const allDeclarations = [];
447
- for (const variableKey of variableKeys) {
448
- const variableSchema = parsedFeature.variablesSchema[variableKey];
449
- const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
450
- const variableType = effective?.type;
451
- const { declarations, returnTypeName, genericArg, isLiteralType, useGetVariable, schemaTypesUsed, } = generateVariableTypeDeclarations(variableKey, variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
452
- schemaTypesUsed.forEach((t) => featureSchemaTypesUsed.add(t));
453
- allDeclarations.push(...declarations);
454
- const internalMethodName = `getVariable${variableType === "json" ? "JSON" : getPascalCase(variableType ?? "string")}`;
455
- const hasGeneric = variableType === "json" || variableType === "array" || variableType === "object";
456
- const literalAssertion = isLiteralType ? ` as ${returnTypeName} | null` : "";
457
- if (useGetVariable) {
458
- variableMethods += `
493
+ parsedFeatures.push({ featureKey, parsedFeature, namespaceValue });
494
+ }
495
+ const featureNamespaces = [];
496
+ if (shouldGenerateIndividualFeatures) {
497
+ for (const { featureKey, parsedFeature, namespaceValue } of parsedFeatures) {
498
+ featureNamespaces.push(namespaceValue);
499
+ let variableTypeDeclarations = "";
500
+ let variableMethods = "";
501
+ const featureSchemaTypesUsed = new Set();
502
+ if (parsedFeature.variablesSchema) {
503
+ const variableKeys = Object.keys(parsedFeature.variablesSchema);
504
+ const allDeclarations = [];
505
+ for (const variableKey of variableKeys) {
506
+ const variableSchema = parsedFeature.variablesSchema[variableKey];
507
+ const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
508
+ const variableType = effective?.type;
509
+ const { declarations, returnTypeName, genericArg, isLiteralType, useGetVariable, schemaTypesUsed, } = generateVariableTypeDeclarations(variableKey, variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
510
+ schemaTypesUsed.forEach((t) => featureSchemaTypesUsed.add(t));
511
+ allDeclarations.push(...declarations);
512
+ const internalMethodName = `getVariable${variableType === "json" ? "JSON" : getPascalCase(variableType ?? "string")}`;
513
+ const hasGeneric = variableType === "json" || variableType === "array" || variableType === "object";
514
+ const literalAssertion = isLiteralType ? ` as ${returnTypeName} | null` : "";
515
+ if (useGetVariable) {
516
+ variableMethods += `
459
517
 
460
518
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
461
519
  ${INDENT_NS_BODY}return getInstance().getVariable(key, "${variableKey}", context)${literalAssertion};
462
520
  ${INDENT_NS}}`;
463
- }
464
- else if (variableType === "json") {
465
- variableMethods += `
521
+ }
522
+ else if (variableType === "json") {
523
+ variableMethods += `
466
524
 
467
525
  ${INDENT_NS}export function get${getPascalCase(variableKey)}<T = unknown>(context: Context = {}): T | null {
468
526
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}<T>(key, "${variableKey}", context);
469
527
  ${INDENT_NS}}`;
470
- }
471
- else if (hasGeneric) {
472
- variableMethods += `
528
+ }
529
+ else if (hasGeneric) {
530
+ variableMethods += `
473
531
 
474
532
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
475
533
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}<${genericArg}>(key, "${variableKey}", context);
476
534
  ${INDENT_NS}}`;
477
- }
478
- else {
479
- variableMethods += `
535
+ }
536
+ else {
537
+ variableMethods += `
480
538
 
481
539
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
482
540
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}(key, "${variableKey}", context)${literalAssertion};
483
541
  ${INDENT_NS}}`;
542
+ }
543
+ }
544
+ if (allDeclarations.length > 0) {
545
+ variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
484
546
  }
485
547
  }
486
- if (allDeclarations.length > 0) {
487
- variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
488
- }
489
- }
490
- const schemasImportLine = featureSchemaTypesUsed.size > 0
491
- ? `import type { ${[...featureSchemaTypesUsed].sort().join(", ")} } from "./Schemas";\n\n`
492
- : "";
493
- const featureContent = `
548
+ const schemasImportLine = featureSchemaTypesUsed.size > 0
549
+ ? `import type { ${[...featureSchemaTypesUsed].sort().join(", ")} } from "./Schemas";\n\n`
550
+ : "";
551
+ const featureContent = `
494
552
  import { Context } from "./Context";
495
553
  import { getInstance } from "./instance";
496
554
  ${schemasImportLine}export namespace ${namespaceValue} {
@@ -505,15 +563,108 @@ ${INDENT_NS_BODY}return getInstance().getVariation(key, context);
505
563
  ${INDENT_NS}}${variableMethods}
506
564
  }
507
565
  `.trimStart();
508
- const featureNamespaceFilePath = path.join(outputPath, `${namespaceValue}.ts`);
509
- fs.writeFileSync(featureNamespaceFilePath, featureContent);
510
- console.log(`Feature ${featureKey} file written at: ${getRelativePath(rootDirectoryPath, featureNamespaceFilePath)}`);
566
+ const featureNamespaceFilePath = path.join(outputPath, `${namespaceValue}.ts`);
567
+ fs.writeFileSync(featureNamespaceFilePath, featureContent);
568
+ console.log(`Feature ${featureKey} file written at: ${getRelativePath(rootDirectoryPath, featureNamespaceFilePath)}`);
569
+ }
570
+ }
571
+ const featuresTypeSchemasUsed = new Set();
572
+ const featureTypeEntries = parsedFeatures
573
+ .map(({ featureKey, parsedFeature }) => {
574
+ const featureLines = [];
575
+ const variationUnion = getVariationUnionFromFeature(parsedFeature);
576
+ if (variationUnion) {
577
+ featureLines.push(`${INDENT_NS_BODY}variation: ${variationUnion};`);
578
+ }
579
+ if (parsedFeature.variablesSchema) {
580
+ for (const [variableKey, variableSchema] of Object.entries(parsedFeature.variablesSchema)) {
581
+ const { typeName, schemaTypesUsed } = getVariableTypeForFeaturesMap(variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
582
+ schemaTypesUsed.forEach((name) => featuresTypeSchemasUsed.add(name));
583
+ featureLines.push(`${INDENT_NS_BODY}${JSON.stringify(variableKey)}: ${typeName};`);
584
+ }
585
+ }
586
+ return `${INDENT_NS}${JSON.stringify(featureKey)}: {\n${featureLines.join("\n")}\n${INDENT_NS}};`;
587
+ })
588
+ .join("\n");
589
+ const featuresSchemasImportLine = featuresTypeSchemasUsed.size > 0
590
+ ? `import type { ${[...featuresTypeSchemasUsed].sort().join(", ")} } from "./Schemas";\n\n`
591
+ : "";
592
+ const featuresFileContent = `
593
+ ${featuresSchemasImportLine}export type Features = {
594
+ ${featureTypeEntries}
595
+ };
596
+
597
+ export type FeatureKey = keyof Features;
598
+ export type VariableKey<F extends FeatureKey> = Extract<Exclude<keyof Features[F], "variation">, string>;
599
+ export type VariableType<F extends FeatureKey, V extends VariableKey<F>> = Features[F][V];
600
+ export type Variation<F extends FeatureKey> = Features[F] extends { variation: infer V } ? V : never;
601
+ `.trimStart();
602
+ const featuresFilePath = path.join(outputPath, "Features.ts");
603
+ fs.writeFileSync(featuresFilePath, featuresFileContent);
604
+ console.log(`Features file written at: ${getRelativePath(rootDirectoryPath, featuresFilePath)}`);
605
+ const functionsFileContent = `
606
+ import { FeatureKey, Variation, VariableKey, VariableType } from "./Features";
607
+ import { Context } from "./Context";
608
+ import { getInstance } from "./instance";
609
+
610
+ export function isEnabled(featureKey: FeatureKey, context: Context = {}): boolean {
611
+ return getInstance().isEnabled(featureKey, context);
612
+ }
613
+
614
+ export function getVariation<F extends FeatureKey>(featureKey: F, context: Context = {}): Variation<F> | null {
615
+ return getInstance().getVariation(featureKey, context) as Variation<F> | null;
616
+ }
617
+
618
+ export function getVariable<F extends FeatureKey, V extends VariableKey<F>>(
619
+ featureKey: F,
620
+ variableKey: V,
621
+ context: Context = {},
622
+ ): VariableType<F, V> | null {
623
+ return getInstance().getVariable(featureKey, variableKey, context) as VariableType<F, V> | null;
624
+ }
625
+ `.trimStart();
626
+ const functionsFilePath = path.join(outputPath, "Functions.ts");
627
+ fs.writeFileSync(functionsFilePath, functionsFileContent);
628
+ console.log(`Functions file written at: ${getRelativePath(rootDirectoryPath, functionsFilePath)}`);
629
+ if (shouldGenerateReact) {
630
+ const reactFileContent = `
631
+ import {
632
+ useFlag as useFlagOriginal,
633
+ useVariation as useVariationOriginal,
634
+ useVariable as useVariableOriginal,
635
+ } from "@featurevisor/react";
636
+
637
+ import { FeatureKey, Variation, VariableKey, VariableType } from "./Features";
638
+ import { Context } from "./Context";
639
+
640
+ export function useFlag(featureKey: FeatureKey, context: Context = {}): boolean {
641
+ return useFlagOriginal(featureKey, context);
642
+ }
643
+
644
+ export function useVariation<F extends FeatureKey>(featureKey: F, context: Context = {}): Variation<F> | null {
645
+ return useVariationOriginal(featureKey, context) as Variation<F> | null;
646
+ }
647
+
648
+ export function useVariable<F extends FeatureKey, V extends VariableKey<F>>(
649
+ featureKey: F,
650
+ variableKey: V,
651
+ context: Context = {},
652
+ ): VariableType<F, V> | null {
653
+ return useVariableOriginal(featureKey, variableKey, context) as VariableType<F, V> | null;
654
+ }
655
+ `.trimStart();
656
+ const reactFilePath = path.join(outputPath, "React.ts");
657
+ fs.writeFileSync(reactFilePath, reactFileContent);
658
+ console.log(`React file written at: ${getRelativePath(rootDirectoryPath, reactFilePath)}`);
511
659
  }
512
660
  // index
513
661
  const indexContent = [
514
662
  `export * from "./Context";`,
515
663
  `export * from "./instance";`,
516
664
  ...(hasSchemasFile ? [`export * from "./Schemas";`] : []),
665
+ `export * from "./Features";`,
666
+ `export * from "./Functions";`,
667
+ ...(shouldGenerateReact ? [`export * from "./React";`] : []),
517
668
  ...featureNamespaces.map((featureNamespace) => {
518
669
  return `export * from "./${featureNamespace}";`;
519
670
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/generate-code/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/generate-code/typescript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featurevisor/core",
3
- "version": "2.15.0",
3
+ "version": "2.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",
@@ -49,5 +49,5 @@
49
49
  "yargs": "^17.7.2",
50
50
  "zod": "^3.22.4"
51
51
  },
52
- "gitHead": "5d3bb98dcc4f3570d5fc43413b095e753f5bcd59"
52
+ "gitHead": "372701b0794f3b818ec9a9ef8d8e0449fb60a321"
53
53
  }
@@ -10,6 +10,9 @@ export const ALLOWED_LANGUAGES_FOR_CODE_GENERATION = ["typescript"];
10
10
  export interface GenerateCodeCLIOptions {
11
11
  language: string;
12
12
  outDir: string;
13
+ tag?: string | string[];
14
+ react?: boolean;
15
+ individualFeatures?: boolean;
13
16
  }
14
17
 
15
18
  export async function generateCodeForProject(
@@ -44,7 +47,11 @@ export async function generateCodeForProject(
44
47
  }
45
48
 
46
49
  if (cliOptions.language === "typescript") {
47
- return await generateTypeScriptCodeForProject(deps, absolutePath);
50
+ return await generateTypeScriptCodeForProject(deps, absolutePath, {
51
+ tag: cliOptions.tag,
52
+ react: cliOptions.react,
53
+ individualFeatures: cliOptions.individualFeatures,
54
+ });
48
55
  }
49
56
 
50
57
  throw new Error(`Language ${cliOptions.language} is not supported`);
@@ -63,6 +70,14 @@ export const generateCodePlugin: Plugin = {
63
70
  {
64
71
  language: parsed.language,
65
72
  outDir: parsed.outDir,
73
+ tag: parsed.tag,
74
+ react: parsed.react,
75
+ individualFeatures:
76
+ parsed.individualFeatures !== undefined
77
+ ? Boolean(parsed.individualFeatures)
78
+ : parsed["individual-features"] !== undefined
79
+ ? Boolean(parsed["individual-features"])
80
+ : true,
66
81
  },
67
82
  );
68
83
  },
@@ -71,5 +86,9 @@ export const generateCodePlugin: Plugin = {
71
86
  command: "generate-code --language typescript --out-dir src/generated",
72
87
  description: "Generate TypeScript code for the project",
73
88
  },
89
+ {
90
+ command: "generate-code --language typescript --out-dir src/generated --tag web --react",
91
+ description: "Generate TypeScript and React helper code for tagged features",
92
+ },
74
93
  ],
75
94
  };