@featurevisor/core 2.15.0 → 2.17.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 +22 -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 +225 -49
  50. package/lib/generate-code/typescript.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/generate-code/index.ts +20 -1
  53. package/src/generate-code/typescript.ts +304 -71
@@ -25,6 +25,19 @@ function convertFeaturevisorTypeToTypeScriptType(featurevisorType) {
25
25
  throw new Error(`Unknown type: ${featurevisorType}`);
26
26
  }
27
27
  }
28
+ function shouldWrapArrayItemType(typeName) {
29
+ const trimmed = typeName.trim();
30
+ return trimmed.includes("|") || trimmed.includes("&");
31
+ }
32
+ function formatObjectKey(key) {
33
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : JSON.stringify(key);
34
+ }
35
+ function formatTypeImport(typeNames, fromPath) {
36
+ if (typeNames.length === 0) {
37
+ return "";
38
+ }
39
+ return `import type {\n${typeNames.map((name) => ` ${name},`).join("\n")}\n} from "${fromPath}";\n\n`;
40
+ }
28
41
  /**
29
42
  * Resolve a schema to its full definition, following schema references (schema: key).
30
43
  */
@@ -92,7 +105,8 @@ function schemaToTypeScriptType(schema, schemasByKey, schemaTypeNames) {
92
105
  return literalFromConst ?? unionFromEnum ?? "number";
93
106
  case "array":
94
107
  if (resolved.items) {
95
- return `(${schemaToTypeScriptType(resolved.items, schemasByKey, schemaTypeNames)})[]`;
108
+ const itemType = schemaToTypeScriptType(resolved.items, schemasByKey, schemaTypeNames);
109
+ return shouldWrapArrayItemType(itemType) ? `(${itemType})[]` : `${itemType}[]`;
96
110
  }
97
111
  return "string[]";
98
112
  case "object": {
@@ -331,6 +345,45 @@ function getRelativePath(from, to) {
331
345
  }
332
346
  return relativePath;
333
347
  }
348
+ function getVariationUnionFromFeature(parsedFeature) {
349
+ if (!parsedFeature.variations || parsedFeature.variations.length === 0) {
350
+ return null;
351
+ }
352
+ const values = Array.from(new Set(parsedFeature.variations.map((variation) => JSON.stringify(variation.value))));
353
+ return values.length > 0 ? values.join(" | ") : null;
354
+ }
355
+ function getVariableTypeForFeaturesMap(variableSchema, schemasByKey, schemaTypeNames) {
356
+ const schemaTypesUsed = [];
357
+ const addSchemaUsed = (name) => {
358
+ if (name && !schemaTypesUsed.includes(name)) {
359
+ schemaTypesUsed.push(name);
360
+ }
361
+ };
362
+ if (schemaTypeNames &&
363
+ "schema" in variableSchema &&
364
+ variableSchema.schema &&
365
+ schemasByKey[variableSchema.schema]) {
366
+ const schemaTypeName = schemaTypeNames[variableSchema.schema];
367
+ addSchemaUsed(schemaTypeName);
368
+ return { typeName: schemaTypeName, schemaTypesUsed };
369
+ }
370
+ const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
371
+ if (!effective) {
372
+ return { typeName: "unknown", schemaTypesUsed };
373
+ }
374
+ if ("type" in effective && effective.type === "json") {
375
+ return { typeName: "unknown", schemaTypesUsed };
376
+ }
377
+ const typeName = schemaToTypeScriptType(effective, schemasByKey, schemaTypeNames);
378
+ if (schemaTypeNames) {
379
+ Object.values(schemaTypeNames).forEach((name) => {
380
+ if (typeName.includes(name)) {
381
+ addSchemaUsed(name);
382
+ }
383
+ });
384
+ }
385
+ return { typeName, schemaTypesUsed };
386
+ }
334
387
  /**
335
388
  * Generates the content of Schemas.ts: one exported type per schema key, using schema refs between schemas.
336
389
  */
@@ -366,8 +419,15 @@ export function getInstance(): FeaturevisorInstance {
366
419
  return _instance as FeaturevisorInstance;
367
420
  }
368
421
  `.trimStart();
369
- async function generateTypeScriptCodeForProject(deps, outputPath) {
422
+ async function generateTypeScriptCodeForProject(deps, outputPath, options = {}) {
370
423
  const { rootDirectoryPath, datasource } = deps;
424
+ const selectedTags = options.tag
425
+ ? Array.isArray(options.tag)
426
+ ? options.tag
427
+ : [options.tag]
428
+ : [];
429
+ const shouldGenerateReact = Boolean(options.react);
430
+ const shouldGenerateIndividualFeatures = options.individualFeatures !== false;
371
431
  console.log("\nGenerating TypeScript code...\n");
372
432
  // instance
373
433
  const instanceFilePath = path.join(outputPath, "instance.ts");
@@ -395,18 +455,17 @@ async function generateTypeScriptCodeForProject(deps, outputPath) {
395
455
  })
396
456
  .join("\n");
397
457
  const contextContent = `
398
- import type { AttributeKey, AttributeValue } from "@featurevisor/types";
458
+ import type { AttributeKey, AttributeValue } from "@featurevisor/sdk";
399
459
 
400
460
  export interface Context {
401
461
  ${attributeProperties}
402
462
  [key: AttributeKey]: AttributeValue;
403
463
  }
404
464
  `.trimStart();
405
- const contextTypeFilePath = path.join(outputPath, "Context.ts");
465
+ const contextTypeFilePath = path.join(outputPath, "context.ts");
406
466
  fs.writeFileSync(contextTypeFilePath, contextContent);
407
467
  console.log(`Context type file written at: ${getRelativePath(rootDirectoryPath, contextTypeFilePath)}`);
408
468
  // features
409
- const featureNamespaces = [];
410
469
  const featureFiles = await datasource.listFeatures();
411
470
  // Load schemas for resolving variable schema references
412
471
  const schemaListKeys = await datasource.listSchemas();
@@ -423,7 +482,7 @@ ${attributeProperties}
423
482
  const hasSchemasFile = schemaKeys.length > 0;
424
483
  if (hasSchemasFile) {
425
484
  const schemasContent = generateSchemasFileContent(schemaKeys, schemasByKey);
426
- const schemasFilePath = path.join(outputPath, "Schemas.ts");
485
+ const schemasFilePath = path.join(outputPath, "schemas.ts");
427
486
  fs.writeFileSync(schemasFilePath, schemasContent);
428
487
  console.log(`Schemas type file written at: ${getRelativePath(rootDirectoryPath, schemasFilePath)}`);
429
488
  }
@@ -431,67 +490,78 @@ ${attributeProperties}
431
490
  for (const k of schemaKeys) {
432
491
  schemaTypeNames[k] = getPascalCase(k) + "Schema";
433
492
  }
493
+ const parsedFeatures = [];
434
494
  for (const featureKey of featureFiles) {
435
- const parsedFeature = await datasource.readFeature(featureKey);
495
+ const parsedFeature = (await datasource.readFeature(featureKey));
436
496
  if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
437
497
  continue;
438
498
  }
499
+ if (selectedTags.length > 0) {
500
+ const featureTags = Array.isArray(parsedFeature.tags) ? parsedFeature.tags : [];
501
+ const hasTags = selectedTags.every((tag) => featureTags.includes(tag));
502
+ if (!hasTags) {
503
+ continue;
504
+ }
505
+ }
439
506
  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 += `
507
+ parsedFeatures.push({ featureKey, parsedFeature, namespaceValue });
508
+ }
509
+ const featureNamespaces = [];
510
+ if (shouldGenerateIndividualFeatures) {
511
+ for (const { featureKey, parsedFeature, namespaceValue } of parsedFeatures) {
512
+ featureNamespaces.push(namespaceValue);
513
+ let variableTypeDeclarations = "";
514
+ let variableMethods = "";
515
+ const featureSchemaTypesUsed = new Set();
516
+ if (parsedFeature.variablesSchema) {
517
+ const variableKeys = Object.keys(parsedFeature.variablesSchema);
518
+ const allDeclarations = [];
519
+ for (const variableKey of variableKeys) {
520
+ const variableSchema = parsedFeature.variablesSchema[variableKey];
521
+ const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
522
+ const variableType = effective?.type;
523
+ const { declarations, returnTypeName, genericArg, isLiteralType, useGetVariable, schemaTypesUsed, } = generateVariableTypeDeclarations(variableKey, variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
524
+ schemaTypesUsed.forEach((t) => featureSchemaTypesUsed.add(t));
525
+ allDeclarations.push(...declarations);
526
+ const internalMethodName = `getVariable${variableType === "json" ? "JSON" : getPascalCase(variableType ?? "string")}`;
527
+ const hasGeneric = variableType === "json" || variableType === "array" || variableType === "object";
528
+ const literalAssertion = isLiteralType ? ` as ${returnTypeName} | null` : "";
529
+ if (useGetVariable) {
530
+ variableMethods += `
459
531
 
460
532
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
461
533
  ${INDENT_NS_BODY}return getInstance().getVariable(key, "${variableKey}", context)${literalAssertion};
462
534
  ${INDENT_NS}}`;
463
- }
464
- else if (variableType === "json") {
465
- variableMethods += `
535
+ }
536
+ else if (variableType === "json") {
537
+ variableMethods += `
466
538
 
467
539
  ${INDENT_NS}export function get${getPascalCase(variableKey)}<T = unknown>(context: Context = {}): T | null {
468
540
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}<T>(key, "${variableKey}", context);
469
541
  ${INDENT_NS}}`;
470
- }
471
- else if (hasGeneric) {
472
- variableMethods += `
542
+ }
543
+ else if (hasGeneric) {
544
+ variableMethods += `
473
545
 
474
546
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
475
547
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}<${genericArg}>(key, "${variableKey}", context);
476
548
  ${INDENT_NS}}`;
477
- }
478
- else {
479
- variableMethods += `
549
+ }
550
+ else {
551
+ variableMethods += `
480
552
 
481
553
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
482
554
  ${INDENT_NS_BODY}return getInstance().${internalMethodName}(key, "${variableKey}", context)${literalAssertion};
483
555
  ${INDENT_NS}}`;
556
+ }
557
+ }
558
+ if (allDeclarations.length > 0) {
559
+ variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
484
560
  }
485
561
  }
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 = `
494
- import { Context } from "./Context";
562
+ const schemasImportLine = formatTypeImport([...featureSchemaTypesUsed].sort(), "./schemas");
563
+ const featureContent = `
564
+ import { Context } from "./context";
495
565
  import { getInstance } from "./instance";
496
566
  ${schemasImportLine}export namespace ${namespaceValue} {
497
567
  ${INDENT_NS}export const key = "${featureKey}";${variableTypeDeclarations}
@@ -505,15 +575,121 @@ ${INDENT_NS_BODY}return getInstance().getVariation(key, context);
505
575
  ${INDENT_NS}}${variableMethods}
506
576
  }
507
577
  `.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)}`);
578
+ const featureNamespaceFilePath = path.join(outputPath, `${namespaceValue}.ts`);
579
+ fs.writeFileSync(featureNamespaceFilePath, featureContent);
580
+ console.log(`Feature ${featureKey} file written at: ${getRelativePath(rootDirectoryPath, featureNamespaceFilePath)}`);
581
+ }
582
+ }
583
+ const featuresTypeSchemasUsed = new Set();
584
+ const featureTypeEntries = parsedFeatures
585
+ .map(({ featureKey, parsedFeature }) => {
586
+ const featureLines = [];
587
+ const variationUnion = getVariationUnionFromFeature(parsedFeature);
588
+ if (variationUnion) {
589
+ featureLines.push(`${INDENT_NS_BODY}variation: ${variationUnion};`);
590
+ }
591
+ if (parsedFeature.variablesSchema) {
592
+ for (const [variableKey, variableSchema] of Object.entries(parsedFeature.variablesSchema)) {
593
+ const { typeName, schemaTypesUsed } = getVariableTypeForFeaturesMap(variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
594
+ schemaTypesUsed.forEach((name) => featuresTypeSchemasUsed.add(name));
595
+ featureLines.push(`${INDENT_NS_BODY}${formatObjectKey(variableKey)}: ${typeName};`);
596
+ }
597
+ }
598
+ if (featureLines.length === 0) {
599
+ return `${INDENT_NS}${formatObjectKey(featureKey)}: null;`;
600
+ }
601
+ return `${INDENT_NS}${formatObjectKey(featureKey)}: {\n${featureLines.join("\n")}\n${INDENT_NS}};`;
602
+ })
603
+ .join("\n");
604
+ const featuresSchemasImportLine = formatTypeImport([...featuresTypeSchemasUsed].sort(), "./schemas");
605
+ const featuresFileContent = `
606
+ ${featuresSchemasImportLine}export type Features = {
607
+ ${featureTypeEntries}
608
+ };
609
+
610
+ export type FeatureKey = keyof Features;
611
+ export type VariableKey<F extends FeatureKey> = Features[F] extends Record<string, unknown>
612
+ ? Extract<Exclude<keyof Features[F], "variation">, string>
613
+ : never;
614
+ export type VariableType<F extends FeatureKey, V extends VariableKey<F>> = Features[F] extends Record<string, unknown>
615
+ ? Features[F][V]
616
+ : never;
617
+ export type Variation<F extends FeatureKey> = Features[F] extends { variation: infer V }
618
+ ? V
619
+ : never;
620
+ `.trimStart();
621
+ const featuresFilePath = path.join(outputPath, "features.ts");
622
+ fs.writeFileSync(featuresFilePath, featuresFileContent);
623
+ console.log(`Features file written at: ${getRelativePath(rootDirectoryPath, featuresFilePath)}`);
624
+ const functionsFileContent = `
625
+ import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
626
+ import { Context } from "./context";
627
+ import { getInstance } from "./instance";
628
+
629
+ export function isEnabled(featureKey: FeatureKey, context: Context = {}): boolean {
630
+ return getInstance().isEnabled(featureKey, context);
631
+ }
632
+
633
+ export function getVariation<F extends FeatureKey>(
634
+ featureKey: F,
635
+ context: Context = {},
636
+ ): Variation<F> | null {
637
+ return getInstance().getVariation(featureKey, context) as Variation<F> | null;
638
+ }
639
+
640
+ export function getVariable<F extends FeatureKey, V extends VariableKey<F>>(
641
+ featureKey: F,
642
+ variableKey: V,
643
+ context: Context = {},
644
+ ): VariableType<F, V> | null {
645
+ return getInstance().getVariable(featureKey, variableKey, context) as VariableType<F, V> | null;
646
+ }
647
+ `.trimStart();
648
+ const functionsFilePath = path.join(outputPath, "functions.ts");
649
+ fs.writeFileSync(functionsFilePath, functionsFileContent);
650
+ console.log(`Functions file written at: ${getRelativePath(rootDirectoryPath, functionsFilePath)}`);
651
+ if (shouldGenerateReact) {
652
+ const reactFileContent = `
653
+ import {
654
+ useFlag as useFlagOriginal,
655
+ useVariation as useVariationOriginal,
656
+ useVariable as useVariableOriginal,
657
+ } from "@featurevisor/react";
658
+
659
+ import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
660
+ import { Context } from "./context";
661
+
662
+ export function useFlag(featureKey: FeatureKey, context: Context = {}): boolean {
663
+ return useFlagOriginal(featureKey, context);
664
+ }
665
+
666
+ export function useVariation<F extends FeatureKey>(
667
+ featureKey: F,
668
+ context: Context = {},
669
+ ): Variation<F> | null {
670
+ return useVariationOriginal(featureKey, context) as Variation<F> | null;
671
+ }
672
+
673
+ export function useVariable<F extends FeatureKey, V extends VariableKey<F>>(
674
+ featureKey: F,
675
+ variableKey: V,
676
+ context: Context = {},
677
+ ): VariableType<F, V> | null {
678
+ return useVariableOriginal(featureKey, variableKey, context) as VariableType<F, V> | null;
679
+ }
680
+ `.trimStart();
681
+ const reactFilePath = path.join(outputPath, "react.ts");
682
+ fs.writeFileSync(reactFilePath, reactFileContent);
683
+ console.log(`React file written at: ${getRelativePath(rootDirectoryPath, reactFilePath)}`);
511
684
  }
512
685
  // index
513
686
  const indexContent = [
514
- `export * from "./Context";`,
687
+ `export * from "./context";`,
515
688
  `export * from "./instance";`,
516
- ...(hasSchemasFile ? [`export * from "./Schemas";`] : []),
689
+ ...(hasSchemasFile ? [`export * from "./schemas";`] : []),
690
+ `export * from "./features";`,
691
+ `export * from "./functions";`,
692
+ ...(shouldGenerateReact ? [`export * from "./react";`] : []),
517
693
  ...featureNamespaces.map((featureNamespace) => {
518
694
  return `export * from "./${featureNamespace}";`;
519
695
  }),
@@ -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.17.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",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "license": "MIT",
42
42
  "dependencies": {
43
- "@featurevisor/sdk": "2.12.0",
43
+ "@featurevisor/sdk": "2.17.0",
44
44
  "@featurevisor/site": "2.12.0",
45
45
  "@featurevisor/types": "2.12.0",
46
46
  "axios": "^1.3.4",
@@ -49,5 +49,5 @@
49
49
  "yargs": "^17.7.2",
50
50
  "zod": "^3.22.4"
51
51
  },
52
- "gitHead": "5d3bb98dcc4f3570d5fc43413b095e753f5bcd59"
52
+ "gitHead": "d6ddd88d49ddb7ae91927ddf55e153242f4819b6"
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
  };