@featurevisor/core 2.16.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.
- package/CHANGELOG.md +11 -0
- package/coverage/clover.xml +2 -2
- package/coverage/lcov-report/builder/allocator.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
- package/coverage/lcov-report/builder/index.html +1 -1
- package/coverage/lcov-report/builder/mutateVariables.ts.html +1 -1
- package/coverage/lcov-report/builder/mutator.ts.html +1 -1
- package/coverage/lcov-report/builder/revision.ts.html +1 -1
- package/coverage/lcov-report/builder/traffic.ts.html +1 -1
- package/coverage/lcov-report/config/index.html +1 -1
- package/coverage/lcov-report/config/index.ts.html +1 -1
- package/coverage/lcov-report/config/projectConfig.ts.html +1 -1
- package/coverage/lcov-report/datasource/adapter.ts.html +1 -1
- package/coverage/lcov-report/datasource/datasource.ts.html +1 -1
- package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +1 -1
- package/coverage/lcov-report/datasource/index.html +1 -1
- package/coverage/lcov-report/datasource/index.ts.html +1 -1
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/linter/attributeSchema.ts.html +1 -1
- package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
- package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
- package/coverage/lcov-report/linter/conditionSchema.ts.html +1 -1
- package/coverage/lcov-report/linter/featureSchema.ts.html +1 -1
- package/coverage/lcov-report/linter/groupSchema.ts.html +1 -1
- package/coverage/lcov-report/linter/index.html +1 -1
- package/coverage/lcov-report/linter/lintProject.ts.html +1 -1
- package/coverage/lcov-report/linter/mutationNotation.ts.html +1 -1
- package/coverage/lcov-report/linter/printError.ts.html +1 -1
- package/coverage/lcov-report/linter/schema.ts.html +1 -1
- package/coverage/lcov-report/linter/segmentSchema.ts.html +1 -1
- package/coverage/lcov-report/linter/testSchema.ts.html +1 -1
- package/coverage/lcov-report/list/index.html +1 -1
- package/coverage/lcov-report/list/matrix.ts.html +1 -1
- package/coverage/lcov-report/parsers/index.html +1 -1
- package/coverage/lcov-report/parsers/index.ts.html +1 -1
- package/coverage/lcov-report/parsers/json.ts.html +1 -1
- package/coverage/lcov-report/parsers/yml.ts.html +1 -1
- package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
- package/coverage/lcov-report/tester/helpers.ts.html +1 -1
- package/coverage/lcov-report/tester/index.html +1 -1
- package/coverage/lcov-report/utils/git.ts.html +1 -1
- package/coverage/lcov-report/utils/index.html +1 -1
- package/lib/generate-code/typescript.js +55 -30
- package/lib/generate-code/typescript.js.map +1 -1
- package/package.json +3 -3
- package/src/generate-code/typescript.ts +63 -32
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
# [2.17.0](https://github.com/featurevisor/featurevisor/compare/v2.16.0...v2.17.0) (2026-02-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* code generation improvements ([#395](https://github.com/featurevisor/featurevisor/issues/395)) ([f530c1c](https://github.com/featurevisor/featurevisor/commit/f530c1cc59e137985b3e3d582de9bddfec495fd6))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [2.16.0](https://github.com/featurevisor/featurevisor/compare/v2.15.0...v2.16.0) (2026-02-26)
|
|
7
18
|
|
|
8
19
|
|
package/coverage/clover.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
2
|
+
<coverage generated="1772214438978" clover="3.2.0">
|
|
3
|
+
<project timestamp="1772214438978" name="All files">
|
|
4
4
|
<metrics statements="2286" coveredstatements="1676" conditionals="1481" coveredconditionals="973" methods="336" coveredmethods="228" elements="4103" coveredelements="2877" complexity="0" loc="2286" ncloc="2286" packages="8" files="33" classes="33"/>
|
|
5
5
|
<package name="builder">
|
|
6
6
|
<metrics statements="452" coveredstatements="437" conditionals="263" coveredconditionals="220" methods="57" coveredmethods="57"/>
|
|
@@ -205,7 +205,7 @@ export function getUpdatedAvailableRangesAfterFilling(
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
208
|
-
at 2026-02-
|
|
208
|
+
at 2026-02-27T17:47:18.936Z
|
|
209
209
|
</div>
|
|
210
210
|
<script src="../prettify.js"></script>
|
|
211
211
|
<script>
|
|
@@ -472,7 +472,7 @@ export function buildScopedCondition(
|
|
|
472
472
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
473
473
|
Code coverage generated by
|
|
474
474
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
475
|
-
at 2026-02-
|
|
475
|
+
at 2026-02-27T17:47:18.936Z
|
|
476
476
|
</div>
|
|
477
477
|
<script src="../prettify.js"></script>
|
|
478
478
|
<script>
|
|
@@ -589,7 +589,7 @@ export function buildScopedDatafile(
|
|
|
589
589
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
590
590
|
Code coverage generated by
|
|
591
591
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
592
|
-
at 2026-02-
|
|
592
|
+
at 2026-02-27T17:47:18.936Z
|
|
593
593
|
</div>
|
|
594
594
|
<script src="../prettify.js"></script>
|
|
595
595
|
<script>
|
|
@@ -529,7 +529,7 @@ export function buildScopedGroupSegments(
|
|
|
529
529
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
530
530
|
Code coverage generated by
|
|
531
531
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
532
|
-
at 2026-02-
|
|
532
|
+
at 2026-02-27T17:47:18.936Z
|
|
533
533
|
</div>
|
|
534
534
|
<script src="../prettify.js"></script>
|
|
535
535
|
<script>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
207
207
|
Code coverage generated by
|
|
208
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
209
|
-
at 2026-02-
|
|
209
|
+
at 2026-02-27T17:47:18.936Z
|
|
210
210
|
</div>
|
|
211
211
|
<script src="../prettify.js"></script>
|
|
212
212
|
<script>
|
|
@@ -385,7 +385,7 @@ export function resolveMutationsForSingleVariable(
|
|
|
385
385
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
386
386
|
Code coverage generated by
|
|
387
387
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
388
|
-
at 2026-02-
|
|
388
|
+
at 2026-02-27T17:47:18.936Z
|
|
389
389
|
</div>
|
|
390
390
|
<script src="../prettify.js"></script>
|
|
391
391
|
<script>
|
|
@@ -781,7 +781,7 @@ export function mutate(
|
|
|
781
781
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
782
782
|
Code coverage generated by
|
|
783
783
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
784
|
-
at 2026-02-
|
|
784
|
+
at 2026-02-27T17:47:18.936Z
|
|
785
785
|
</div>
|
|
786
786
|
<script src="../prettify.js"></script>
|
|
787
787
|
<script>
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2026-02-
|
|
139
|
+
at 2026-02-27T17:47:18.936Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -643,7 +643,7 @@ export function getTraffic(
|
|
|
643
643
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
644
644
|
Code coverage generated by
|
|
645
645
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
646
|
-
at 2026-02-
|
|
646
|
+
at 2026-02-27T17:47:18.936Z
|
|
647
647
|
</div>
|
|
648
648
|
<script src="../prettify.js"></script>
|
|
649
649
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-02-
|
|
119
|
+
at 2026-02-27T17:47:18.936Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
74
74
|
Code coverage generated by
|
|
75
75
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
76
|
-
at 2026-02-
|
|
76
|
+
at 2026-02-27T17:47:18.936Z
|
|
77
77
|
</div>
|
|
78
78
|
<script src="../prettify.js"></script>
|
|
79
79
|
<script>
|
|
@@ -694,7 +694,7 @@ export const configPlugin: Plugin = {
|
|
|
694
694
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
695
695
|
Code coverage generated by
|
|
696
696
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
697
|
-
at 2026-02-
|
|
697
|
+
at 2026-02-27T17:47:18.936Z
|
|
698
698
|
</div>
|
|
699
699
|
<script src="../prettify.js"></script>
|
|
700
700
|
<script>
|
|
@@ -283,7 +283,7 @@ export abstract class Adapter {
|
|
|
283
283
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
284
|
Code coverage generated by
|
|
285
285
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
-
at 2026-02-
|
|
286
|
+
at 2026-02-27T17:47:18.936Z
|
|
287
287
|
</div>
|
|
288
288
|
<script src="../prettify.js"></script>
|
|
289
289
|
<script>
|
|
@@ -898,7 +898,7 @@ export class Datasource {
|
|
|
898
898
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
899
899
|
Code coverage generated by
|
|
900
900
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
901
|
-
at 2026-02-
|
|
901
|
+
at 2026-02-27T17:47:18.936Z
|
|
902
902
|
</div>
|
|
903
903
|
<script src="../prettify.js"></script>
|
|
904
904
|
<script>
|
|
@@ -1963,7 +1963,7 @@ export class FilesystemAdapter extends Adapter {
|
|
|
1963
1963
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1964
1964
|
Code coverage generated by
|
|
1965
1965
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1966
|
-
at 2026-02-
|
|
1966
|
+
at 2026-02-27T17:47:18.936Z
|
|
1967
1967
|
</div>
|
|
1968
1968
|
<script src="../prettify.js"></script>
|
|
1969
1969
|
<script>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2026-02-
|
|
149
|
+
at 2026-02-27T17:47:18.936Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -79,7 +79,7 @@ export * from "./filesystemAdapter";
|
|
|
79
79
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
80
80
|
Code coverage generated by
|
|
81
81
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
82
|
-
at 2026-02-
|
|
82
|
+
at 2026-02-27T17:47:18.936Z
|
|
83
83
|
</div>
|
|
84
84
|
<script src="../prettify.js"></script>
|
|
85
85
|
<script>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
207
207
|
Code coverage generated by
|
|
208
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
209
|
-
at 2026-02-
|
|
209
|
+
at 2026-02-27T17:47:18.936Z
|
|
210
210
|
</div>
|
|
211
211
|
<script src="prettify.js"></script>
|
|
212
212
|
<script>
|
|
@@ -160,7 +160,7 @@ export function getAttributeZodSchema() {
|
|
|
160
160
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
161
161
|
Code coverage generated by
|
|
162
162
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
163
|
-
at 2026-02-
|
|
163
|
+
at 2026-02-27T17:47:18.936Z
|
|
164
164
|
</div>
|
|
165
165
|
<script src="../prettify.js"></script>
|
|
166
166
|
<script>
|
|
@@ -205,7 +205,7 @@ export async function checkForCircularDependencyInRequired(
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
208
|
-
at 2026-02-
|
|
208
|
+
at 2026-02-27T17:47:18.936Z
|
|
209
209
|
</div>
|
|
210
210
|
<script src="../prettify.js"></script>
|
|
211
211
|
<script>
|
|
@@ -253,7 +253,7 @@ export async function checkForFeatureExceedingGroupSlotPercentage(
|
|
|
253
253
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
254
254
|
Code coverage generated by
|
|
255
255
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
256
|
-
at 2026-02-
|
|
256
|
+
at 2026-02-27T17:47:18.936Z
|
|
257
257
|
</div>
|
|
258
258
|
<script src="../prettify.js"></script>
|
|
259
259
|
<script>
|
|
@@ -760,7 +760,7 @@ export function getConditionsZodSchema(
|
|
|
760
760
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
761
761
|
Code coverage generated by
|
|
762
762
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
763
|
-
at 2026-02-
|
|
763
|
+
at 2026-02-27T17:47:18.936Z
|
|
764
764
|
</div>
|
|
765
765
|
<script src="../prettify.js"></script>
|
|
766
766
|
<script>
|
|
@@ -5368,7 +5368,7 @@ export function getFeatureZodSchema(
|
|
|
5368
5368
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
5369
5369
|
Code coverage generated by
|
|
5370
5370
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
5371
|
-
at 2026-02-
|
|
5371
|
+
at 2026-02-27T17:47:18.936Z
|
|
5372
5372
|
</div>
|
|
5373
5373
|
<script src="../prettify.js"></script>
|
|
5374
5374
|
<script>
|
|
@@ -211,7 +211,7 @@ export function getGroupZodSchema(
|
|
|
211
211
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
212
212
|
Code coverage generated by
|
|
213
213
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
214
|
-
at 2026-02-
|
|
214
|
+
at 2026-02-27T17:47:18.936Z
|
|
215
215
|
</div>
|
|
216
216
|
<script src="../prettify.js"></script>
|
|
217
217
|
<script>
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
267
267
|
Code coverage generated by
|
|
268
268
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
269
|
-
at 2026-02-
|
|
269
|
+
at 2026-02-27T17:47:18.936Z
|
|
270
270
|
</div>
|
|
271
271
|
<script src="../prettify.js"></script>
|
|
272
272
|
<script>
|
|
@@ -2170,7 +2170,7 @@ export const lintPlugin: Plugin = {
|
|
|
2170
2170
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2171
2171
|
Code coverage generated by
|
|
2172
2172
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2173
|
-
at 2026-02-
|
|
2173
|
+
at 2026-02-27T17:47:18.936Z
|
|
2174
2174
|
</div>
|
|
2175
2175
|
<script src="../prettify.js"></script>
|
|
2176
2176
|
<script>
|
|
@@ -1294,7 +1294,7 @@ export function parsePathMapKey(relativePath: string): PathSegment[] | null {
|
|
|
1294
1294
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1295
1295
|
Code coverage generated by
|
|
1296
1296
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1297
|
-
at 2026-02-
|
|
1297
|
+
at 2026-02-27T17:47:18.936Z
|
|
1298
1298
|
</div>
|
|
1299
1299
|
<script src="../prettify.js"></script>
|
|
1300
1300
|
<script>
|
|
@@ -223,7 +223,7 @@ export function <span class="fstat-no" title="function not covered" >printZodErr
|
|
|
223
223
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
224
224
|
Code coverage generated by
|
|
225
225
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
226
|
-
at 2026-02-
|
|
226
|
+
at 2026-02-27T17:47:18.936Z
|
|
227
227
|
</div>
|
|
228
228
|
<script src="../prettify.js"></script>
|
|
229
229
|
<script>
|
|
@@ -1456,7 +1456,7 @@ export function getSchemaZodSchema(schemaKeys: SchemaKey[] = <span class="branch
|
|
|
1456
1456
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1457
1457
|
Code coverage generated by
|
|
1458
1458
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1459
|
-
at 2026-02-
|
|
1459
|
+
at 2026-02-27T17:47:18.936Z
|
|
1460
1460
|
</div>
|
|
1461
1461
|
<script src="../prettify.js"></script>
|
|
1462
1462
|
<script>
|
|
@@ -115,7 +115,7 @@ export function getSegmentZodSchema(projectConfig: ProjectConfig, conditionsZodS
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2026-02-
|
|
118
|
+
at 2026-02-27T17:47:18.936Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -535,7 +535,7 @@ export function getTestsZodSchema(
|
|
|
535
535
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
536
|
Code coverage generated by
|
|
537
537
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
538
|
-
at 2026-02-
|
|
538
|
+
at 2026-02-27T17:47:18.936Z
|
|
539
539
|
</div>
|
|
540
540
|
<script src="../prettify.js"></script>
|
|
541
541
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-02-
|
|
104
|
+
at 2026-02-27T17:47:18.936Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -721,7 +721,7 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
|
|
|
721
721
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
722
722
|
Code coverage generated by
|
|
723
723
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
724
|
-
at 2026-02-
|
|
724
|
+
at 2026-02-27T17:47:18.936Z
|
|
725
725
|
</div>
|
|
726
726
|
<script src="../prettify.js"></script>
|
|
727
727
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-02-
|
|
134
|
+
at 2026-02-27T17:47:18.936Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -136,7 +136,7 @@ export type Parser = BuiltInParser | CustomParser;
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2026-02-
|
|
139
|
+
at 2026-02-27T17:47:18.936Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -103,7 +103,7 @@ export const jsonParser: CustomParser = {
|
|
|
103
103
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
104
104
|
Code coverage generated by
|
|
105
105
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
106
|
-
at 2026-02-
|
|
106
|
+
at 2026-02-27T17:47:18.936Z
|
|
107
107
|
</div>
|
|
108
108
|
<script src="../prettify.js"></script>
|
|
109
109
|
<script>
|
|
@@ -574,7 +574,7 @@ export const ymlParser: CustomParser = {
|
|
|
574
574
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
575
575
|
Code coverage generated by
|
|
576
576
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
577
|
-
at 2026-02-
|
|
577
|
+
at 2026-02-27T17:47:18.936Z
|
|
578
578
|
</div>
|
|
579
579
|
<script src="../prettify.js"></script>
|
|
580
580
|
<script>
|
|
@@ -88,7 +88,7 @@ export const CLI_FORMAT_BOLD_UNDERLINE = "\x1b[1m\x1b[4m%s\x1b[0m";
|
|
|
88
88
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
89
89
|
Code coverage generated by
|
|
90
90
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
91
|
-
at 2026-02-
|
|
91
|
+
at 2026-02-27T17:47:18.936Z
|
|
92
92
|
</div>
|
|
93
93
|
<script src="../prettify.js"></script>
|
|
94
94
|
<script>
|
|
@@ -298,7 +298,7 @@ export function checkIfArraysAreEqual(arr1: any[], arr2: any[]): boolean {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
301
|
-
at 2026-02-
|
|
301
|
+
at 2026-02-27T17:47:18.936Z
|
|
302
302
|
</div>
|
|
303
303
|
<script src="../prettify.js"></script>
|
|
304
304
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-02-
|
|
119
|
+
at 2026-02-27T17:47:18.936Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -568,7 +568,7 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
|
|
|
568
568
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
569
569
|
Code coverage generated by
|
|
570
570
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
571
|
-
at 2026-02-
|
|
571
|
+
at 2026-02-27T17:47:18.936Z
|
|
572
572
|
</div>
|
|
573
573
|
<script src="../prettify.js"></script>
|
|
574
574
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-02-
|
|
104
|
+
at 2026-02-27T17:47:18.936Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -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
|
-
|
|
108
|
+
const itemType = schemaToTypeScriptType(resolved.items, schemasByKey, schemaTypeNames);
|
|
109
|
+
return shouldWrapArrayItemType(itemType) ? `(${itemType})[]` : `${itemType}[]`;
|
|
96
110
|
}
|
|
97
111
|
return "string[]";
|
|
98
112
|
case "object": {
|
|
@@ -441,14 +455,14 @@ async function generateTypeScriptCodeForProject(deps, outputPath, options = {})
|
|
|
441
455
|
})
|
|
442
456
|
.join("\n");
|
|
443
457
|
const contextContent = `
|
|
444
|
-
import type { AttributeKey, AttributeValue } from "@featurevisor/
|
|
458
|
+
import type { AttributeKey, AttributeValue } from "@featurevisor/sdk";
|
|
445
459
|
|
|
446
460
|
export interface Context {
|
|
447
461
|
${attributeProperties}
|
|
448
462
|
[key: AttributeKey]: AttributeValue;
|
|
449
463
|
}
|
|
450
464
|
`.trimStart();
|
|
451
|
-
const contextTypeFilePath = path.join(outputPath, "
|
|
465
|
+
const contextTypeFilePath = path.join(outputPath, "context.ts");
|
|
452
466
|
fs.writeFileSync(contextTypeFilePath, contextContent);
|
|
453
467
|
console.log(`Context type file written at: ${getRelativePath(rootDirectoryPath, contextTypeFilePath)}`);
|
|
454
468
|
// features
|
|
@@ -468,7 +482,7 @@ ${attributeProperties}
|
|
|
468
482
|
const hasSchemasFile = schemaKeys.length > 0;
|
|
469
483
|
if (hasSchemasFile) {
|
|
470
484
|
const schemasContent = generateSchemasFileContent(schemaKeys, schemasByKey);
|
|
471
|
-
const schemasFilePath = path.join(outputPath, "
|
|
485
|
+
const schemasFilePath = path.join(outputPath, "schemas.ts");
|
|
472
486
|
fs.writeFileSync(schemasFilePath, schemasContent);
|
|
473
487
|
console.log(`Schemas type file written at: ${getRelativePath(rootDirectoryPath, schemasFilePath)}`);
|
|
474
488
|
}
|
|
@@ -545,11 +559,9 @@ ${INDENT_NS}}`;
|
|
|
545
559
|
variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
|
|
546
560
|
}
|
|
547
561
|
}
|
|
548
|
-
const schemasImportLine = featureSchemaTypesUsed.
|
|
549
|
-
? `import type { ${[...featureSchemaTypesUsed].sort().join(", ")} } from "./Schemas";\n\n`
|
|
550
|
-
: "";
|
|
562
|
+
const schemasImportLine = formatTypeImport([...featureSchemaTypesUsed].sort(), "./schemas");
|
|
551
563
|
const featureContent = `
|
|
552
|
-
import { Context } from "./
|
|
564
|
+
import { Context } from "./context";
|
|
553
565
|
import { getInstance } from "./instance";
|
|
554
566
|
${schemasImportLine}export namespace ${namespaceValue} {
|
|
555
567
|
${INDENT_NS}export const key = "${featureKey}";${variableTypeDeclarations}
|
|
@@ -580,38 +592,48 @@ ${INDENT_NS}}${variableMethods}
|
|
|
580
592
|
for (const [variableKey, variableSchema] of Object.entries(parsedFeature.variablesSchema)) {
|
|
581
593
|
const { typeName, schemaTypesUsed } = getVariableTypeForFeaturesMap(variableSchema, schemasByKey, hasSchemasFile ? schemaTypeNames : undefined);
|
|
582
594
|
schemaTypesUsed.forEach((name) => featuresTypeSchemasUsed.add(name));
|
|
583
|
-
featureLines.push(`${INDENT_NS_BODY}${
|
|
595
|
+
featureLines.push(`${INDENT_NS_BODY}${formatObjectKey(variableKey)}: ${typeName};`);
|
|
584
596
|
}
|
|
585
597
|
}
|
|
586
|
-
|
|
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}};`;
|
|
587
602
|
})
|
|
588
603
|
.join("\n");
|
|
589
|
-
const featuresSchemasImportLine = featuresTypeSchemasUsed.
|
|
590
|
-
? `import type { ${[...featuresTypeSchemasUsed].sort().join(", ")} } from "./Schemas";\n\n`
|
|
591
|
-
: "";
|
|
604
|
+
const featuresSchemasImportLine = formatTypeImport([...featuresTypeSchemasUsed].sort(), "./schemas");
|
|
592
605
|
const featuresFileContent = `
|
|
593
606
|
${featuresSchemasImportLine}export type Features = {
|
|
594
607
|
${featureTypeEntries}
|
|
595
608
|
};
|
|
596
609
|
|
|
597
610
|
export type FeatureKey = keyof Features;
|
|
598
|
-
export type VariableKey<F extends FeatureKey> =
|
|
599
|
-
|
|
600
|
-
|
|
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;
|
|
601
620
|
`.trimStart();
|
|
602
|
-
const featuresFilePath = path.join(outputPath, "
|
|
621
|
+
const featuresFilePath = path.join(outputPath, "features.ts");
|
|
603
622
|
fs.writeFileSync(featuresFilePath, featuresFileContent);
|
|
604
623
|
console.log(`Features file written at: ${getRelativePath(rootDirectoryPath, featuresFilePath)}`);
|
|
605
624
|
const functionsFileContent = `
|
|
606
|
-
import { FeatureKey, Variation, VariableKey, VariableType } from "./
|
|
607
|
-
import { Context } from "./
|
|
625
|
+
import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
|
|
626
|
+
import { Context } from "./context";
|
|
608
627
|
import { getInstance } from "./instance";
|
|
609
628
|
|
|
610
629
|
export function isEnabled(featureKey: FeatureKey, context: Context = {}): boolean {
|
|
611
630
|
return getInstance().isEnabled(featureKey, context);
|
|
612
631
|
}
|
|
613
632
|
|
|
614
|
-
export function getVariation<F extends FeatureKey>(
|
|
633
|
+
export function getVariation<F extends FeatureKey>(
|
|
634
|
+
featureKey: F,
|
|
635
|
+
context: Context = {},
|
|
636
|
+
): Variation<F> | null {
|
|
615
637
|
return getInstance().getVariation(featureKey, context) as Variation<F> | null;
|
|
616
638
|
}
|
|
617
639
|
|
|
@@ -623,7 +645,7 @@ export function getVariable<F extends FeatureKey, V extends VariableKey<F>>(
|
|
|
623
645
|
return getInstance().getVariable(featureKey, variableKey, context) as VariableType<F, V> | null;
|
|
624
646
|
}
|
|
625
647
|
`.trimStart();
|
|
626
|
-
const functionsFilePath = path.join(outputPath, "
|
|
648
|
+
const functionsFilePath = path.join(outputPath, "functions.ts");
|
|
627
649
|
fs.writeFileSync(functionsFilePath, functionsFileContent);
|
|
628
650
|
console.log(`Functions file written at: ${getRelativePath(rootDirectoryPath, functionsFilePath)}`);
|
|
629
651
|
if (shouldGenerateReact) {
|
|
@@ -634,14 +656,17 @@ import {
|
|
|
634
656
|
useVariable as useVariableOriginal,
|
|
635
657
|
} from "@featurevisor/react";
|
|
636
658
|
|
|
637
|
-
import { FeatureKey, Variation, VariableKey, VariableType } from "./
|
|
638
|
-
import { Context } from "./
|
|
659
|
+
import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
|
|
660
|
+
import { Context } from "./context";
|
|
639
661
|
|
|
640
662
|
export function useFlag(featureKey: FeatureKey, context: Context = {}): boolean {
|
|
641
663
|
return useFlagOriginal(featureKey, context);
|
|
642
664
|
}
|
|
643
665
|
|
|
644
|
-
export function useVariation<F extends FeatureKey>(
|
|
666
|
+
export function useVariation<F extends FeatureKey>(
|
|
667
|
+
featureKey: F,
|
|
668
|
+
context: Context = {},
|
|
669
|
+
): Variation<F> | null {
|
|
645
670
|
return useVariationOriginal(featureKey, context) as Variation<F> | null;
|
|
646
671
|
}
|
|
647
672
|
|
|
@@ -653,18 +678,18 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F>>(
|
|
|
653
678
|
return useVariableOriginal(featureKey, variableKey, context) as VariableType<F, V> | null;
|
|
654
679
|
}
|
|
655
680
|
`.trimStart();
|
|
656
|
-
const reactFilePath = path.join(outputPath, "
|
|
681
|
+
const reactFilePath = path.join(outputPath, "react.ts");
|
|
657
682
|
fs.writeFileSync(reactFilePath, reactFileContent);
|
|
658
683
|
console.log(`React file written at: ${getRelativePath(rootDirectoryPath, reactFilePath)}`);
|
|
659
684
|
}
|
|
660
685
|
// index
|
|
661
686
|
const indexContent = [
|
|
662
|
-
`export * from "./
|
|
687
|
+
`export * from "./context";`,
|
|
663
688
|
`export * from "./instance";`,
|
|
664
|
-
...(hasSchemasFile ? [`export * from "./
|
|
665
|
-
`export * from "./
|
|
666
|
-
`export * from "./
|
|
667
|
-
...(shouldGenerateReact ? [`export * from "./
|
|
689
|
+
...(hasSchemasFile ? [`export * from "./schemas";`] : []),
|
|
690
|
+
`export * from "./features";`,
|
|
691
|
+
`export * from "./functions";`,
|
|
692
|
+
...(shouldGenerateReact ? [`export * from "./react";`] : []),
|
|
668
693
|
...featureNamespaces.map((featureNamespace) => {
|
|
669
694
|
return `export * from "./${featureNamespace}";`;
|
|
670
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.
|
|
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.
|
|
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": "
|
|
52
|
+
"gitHead": "d6ddd88d49ddb7ae91927ddf55e153242f4819b6"
|
|
53
53
|
}
|
|
@@ -39,6 +39,23 @@ function convertFeaturevisorTypeToTypeScriptType(featurevisorType: string): stri
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
function shouldWrapArrayItemType(typeName: string): boolean {
|
|
43
|
+
const trimmed = typeName.trim();
|
|
44
|
+
return trimmed.includes("|") || trimmed.includes("&");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function formatObjectKey(key: string): string {
|
|
48
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : JSON.stringify(key);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function formatTypeImport(typeNames: string[], fromPath: string): string {
|
|
52
|
+
if (typeNames.length === 0) {
|
|
53
|
+
return "";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return `import type {\n${typeNames.map((name) => ` ${name},`).join("\n")}\n} from "${fromPath}";\n\n`;
|
|
57
|
+
}
|
|
58
|
+
|
|
42
59
|
/**
|
|
43
60
|
* Resolve a schema to its full definition, following schema references (schema: key).
|
|
44
61
|
*/
|
|
@@ -110,7 +127,8 @@ function schemaToTypeScriptType(
|
|
|
110
127
|
return literalFromConst ?? unionFromEnum ?? "number";
|
|
111
128
|
case "array":
|
|
112
129
|
if (resolved.items) {
|
|
113
|
-
|
|
130
|
+
const itemType = schemaToTypeScriptType(resolved.items, schemasByKey, schemaTypeNames);
|
|
131
|
+
return shouldWrapArrayItemType(itemType) ? `(${itemType})[]` : `${itemType}[]`;
|
|
114
132
|
}
|
|
115
133
|
return "string[]";
|
|
116
134
|
case "object": {
|
|
@@ -534,7 +552,7 @@ export async function generateTypeScriptCodeForProject(
|
|
|
534
552
|
})
|
|
535
553
|
.join("\n");
|
|
536
554
|
const contextContent = `
|
|
537
|
-
import type { AttributeKey, AttributeValue } from "@featurevisor/
|
|
555
|
+
import type { AttributeKey, AttributeValue } from "@featurevisor/sdk";
|
|
538
556
|
|
|
539
557
|
export interface Context {
|
|
540
558
|
${attributeProperties}
|
|
@@ -542,7 +560,7 @@ ${attributeProperties}
|
|
|
542
560
|
}
|
|
543
561
|
`.trimStart();
|
|
544
562
|
|
|
545
|
-
const contextTypeFilePath = path.join(outputPath, "
|
|
563
|
+
const contextTypeFilePath = path.join(outputPath, "context.ts");
|
|
546
564
|
fs.writeFileSync(contextTypeFilePath, contextContent);
|
|
547
565
|
console.log(
|
|
548
566
|
`Context type file written at: ${getRelativePath(rootDirectoryPath, contextTypeFilePath)}`,
|
|
@@ -565,7 +583,7 @@ ${attributeProperties}
|
|
|
565
583
|
const hasSchemasFile = schemaKeys.length > 0;
|
|
566
584
|
if (hasSchemasFile) {
|
|
567
585
|
const schemasContent = generateSchemasFileContent(schemaKeys, schemasByKey);
|
|
568
|
-
const schemasFilePath = path.join(outputPath, "
|
|
586
|
+
const schemasFilePath = path.join(outputPath, "schemas.ts");
|
|
569
587
|
fs.writeFileSync(schemasFilePath, schemasContent);
|
|
570
588
|
console.log(
|
|
571
589
|
`Schemas type file written at: ${getRelativePath(rootDirectoryPath, schemasFilePath)}`,
|
|
@@ -674,13 +692,10 @@ ${INDENT_NS}}`;
|
|
|
674
692
|
}
|
|
675
693
|
}
|
|
676
694
|
|
|
677
|
-
const schemasImportLine =
|
|
678
|
-
featureSchemaTypesUsed.size > 0
|
|
679
|
-
? `import type { ${[...featureSchemaTypesUsed].sort().join(", ")} } from "./Schemas";\n\n`
|
|
680
|
-
: "";
|
|
695
|
+
const schemasImportLine = formatTypeImport([...featureSchemaTypesUsed].sort(), "./schemas");
|
|
681
696
|
|
|
682
697
|
const featureContent = `
|
|
683
|
-
import { Context } from "./
|
|
698
|
+
import { Context } from "./context";
|
|
684
699
|
import { getInstance } from "./instance";
|
|
685
700
|
${schemasImportLine}export namespace ${namespaceValue} {
|
|
686
701
|
${INDENT_NS}export const key = "${featureKey}";${variableTypeDeclarations}
|
|
@@ -724,18 +739,22 @@ ${INDENT_NS}}${variableMethods}
|
|
|
724
739
|
hasSchemasFile ? schemaTypeNames : undefined,
|
|
725
740
|
);
|
|
726
741
|
schemaTypesUsed.forEach((name) => featuresTypeSchemasUsed.add(name));
|
|
727
|
-
featureLines.push(`${INDENT_NS_BODY}${
|
|
742
|
+
featureLines.push(`${INDENT_NS_BODY}${formatObjectKey(variableKey)}: ${typeName};`);
|
|
728
743
|
}
|
|
729
744
|
}
|
|
730
745
|
|
|
731
|
-
|
|
746
|
+
if (featureLines.length === 0) {
|
|
747
|
+
return `${INDENT_NS}${formatObjectKey(featureKey)}: null;`;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
return `${INDENT_NS}${formatObjectKey(featureKey)}: {\n${featureLines.join("\n")}\n${INDENT_NS}};`;
|
|
732
751
|
})
|
|
733
752
|
.join("\n");
|
|
734
753
|
|
|
735
|
-
const featuresSchemasImportLine =
|
|
736
|
-
featuresTypeSchemasUsed.
|
|
737
|
-
|
|
738
|
-
|
|
754
|
+
const featuresSchemasImportLine = formatTypeImport(
|
|
755
|
+
[...featuresTypeSchemasUsed].sort(),
|
|
756
|
+
"./schemas",
|
|
757
|
+
);
|
|
739
758
|
|
|
740
759
|
const featuresFileContent = `
|
|
741
760
|
${featuresSchemasImportLine}export type Features = {
|
|
@@ -743,24 +762,33 @@ ${featureTypeEntries}
|
|
|
743
762
|
};
|
|
744
763
|
|
|
745
764
|
export type FeatureKey = keyof Features;
|
|
746
|
-
export type VariableKey<F extends FeatureKey> =
|
|
747
|
-
|
|
748
|
-
|
|
765
|
+
export type VariableKey<F extends FeatureKey> = Features[F] extends Record<string, unknown>
|
|
766
|
+
? Extract<Exclude<keyof Features[F], "variation">, string>
|
|
767
|
+
: never;
|
|
768
|
+
export type VariableType<F extends FeatureKey, V extends VariableKey<F>> = Features[F] extends Record<string, unknown>
|
|
769
|
+
? Features[F][V]
|
|
770
|
+
: never;
|
|
771
|
+
export type Variation<F extends FeatureKey> = Features[F] extends { variation: infer V }
|
|
772
|
+
? V
|
|
773
|
+
: never;
|
|
749
774
|
`.trimStart();
|
|
750
|
-
const featuresFilePath = path.join(outputPath, "
|
|
775
|
+
const featuresFilePath = path.join(outputPath, "features.ts");
|
|
751
776
|
fs.writeFileSync(featuresFilePath, featuresFileContent);
|
|
752
777
|
console.log(`Features file written at: ${getRelativePath(rootDirectoryPath, featuresFilePath)}`);
|
|
753
778
|
|
|
754
779
|
const functionsFileContent = `
|
|
755
|
-
import { FeatureKey, Variation, VariableKey, VariableType } from "./
|
|
756
|
-
import { Context } from "./
|
|
780
|
+
import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
|
|
781
|
+
import { Context } from "./context";
|
|
757
782
|
import { getInstance } from "./instance";
|
|
758
783
|
|
|
759
784
|
export function isEnabled(featureKey: FeatureKey, context: Context = {}): boolean {
|
|
760
785
|
return getInstance().isEnabled(featureKey, context);
|
|
761
786
|
}
|
|
762
787
|
|
|
763
|
-
export function getVariation<F extends FeatureKey>(
|
|
788
|
+
export function getVariation<F extends FeatureKey>(
|
|
789
|
+
featureKey: F,
|
|
790
|
+
context: Context = {},
|
|
791
|
+
): Variation<F> | null {
|
|
764
792
|
return getInstance().getVariation(featureKey, context) as Variation<F> | null;
|
|
765
793
|
}
|
|
766
794
|
|
|
@@ -772,7 +800,7 @@ export function getVariable<F extends FeatureKey, V extends VariableKey<F>>(
|
|
|
772
800
|
return getInstance().getVariable(featureKey, variableKey, context) as VariableType<F, V> | null;
|
|
773
801
|
}
|
|
774
802
|
`.trimStart();
|
|
775
|
-
const functionsFilePath = path.join(outputPath, "
|
|
803
|
+
const functionsFilePath = path.join(outputPath, "functions.ts");
|
|
776
804
|
fs.writeFileSync(functionsFilePath, functionsFileContent);
|
|
777
805
|
console.log(
|
|
778
806
|
`Functions file written at: ${getRelativePath(rootDirectoryPath, functionsFilePath)}`,
|
|
@@ -786,14 +814,17 @@ import {
|
|
|
786
814
|
useVariable as useVariableOriginal,
|
|
787
815
|
} from "@featurevisor/react";
|
|
788
816
|
|
|
789
|
-
import { FeatureKey, Variation, VariableKey, VariableType } from "./
|
|
790
|
-
import { Context } from "./
|
|
817
|
+
import { FeatureKey, Variation, VariableKey, VariableType } from "./features";
|
|
818
|
+
import { Context } from "./context";
|
|
791
819
|
|
|
792
820
|
export function useFlag(featureKey: FeatureKey, context: Context = {}): boolean {
|
|
793
821
|
return useFlagOriginal(featureKey, context);
|
|
794
822
|
}
|
|
795
823
|
|
|
796
|
-
export function useVariation<F extends FeatureKey>(
|
|
824
|
+
export function useVariation<F extends FeatureKey>(
|
|
825
|
+
featureKey: F,
|
|
826
|
+
context: Context = {},
|
|
827
|
+
): Variation<F> | null {
|
|
797
828
|
return useVariationOriginal(featureKey, context) as Variation<F> | null;
|
|
798
829
|
}
|
|
799
830
|
|
|
@@ -805,7 +836,7 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F>>(
|
|
|
805
836
|
return useVariableOriginal(featureKey, variableKey, context) as VariableType<F, V> | null;
|
|
806
837
|
}
|
|
807
838
|
`.trimStart();
|
|
808
|
-
const reactFilePath = path.join(outputPath, "
|
|
839
|
+
const reactFilePath = path.join(outputPath, "react.ts");
|
|
809
840
|
fs.writeFileSync(reactFilePath, reactFileContent);
|
|
810
841
|
console.log(`React file written at: ${getRelativePath(rootDirectoryPath, reactFilePath)}`);
|
|
811
842
|
}
|
|
@@ -813,12 +844,12 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F>>(
|
|
|
813
844
|
// index
|
|
814
845
|
const indexContent =
|
|
815
846
|
[
|
|
816
|
-
`export * from "./
|
|
847
|
+
`export * from "./context";`,
|
|
817
848
|
`export * from "./instance";`,
|
|
818
|
-
...(hasSchemasFile ? [`export * from "./
|
|
819
|
-
`export * from "./
|
|
820
|
-
`export * from "./
|
|
821
|
-
...(shouldGenerateReact ? [`export * from "./
|
|
849
|
+
...(hasSchemasFile ? [`export * from "./schemas";`] : []),
|
|
850
|
+
`export * from "./features";`,
|
|
851
|
+
`export * from "./functions";`,
|
|
852
|
+
...(shouldGenerateReact ? [`export * from "./react";`] : []),
|
|
822
853
|
...featureNamespaces.map((featureNamespace) => {
|
|
823
854
|
return `export * from "./${featureNamespace}";`;
|
|
824
855
|
}),
|