@featurevisor/core 2.10.0 → 2.12.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 (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/coverage/clover.xml +684 -3
  3. package/coverage/coverage-final.json +4 -0
  4. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  7. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  8. package/coverage/lcov-report/builder/index.html +1 -1
  9. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  10. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  11. package/coverage/lcov-report/index.html +25 -10
  12. package/coverage/lcov-report/linter/conditionSchema.ts.html +775 -0
  13. package/coverage/lcov-report/linter/featureSchema.ts.html +4924 -0
  14. package/coverage/lcov-report/linter/index.html +161 -0
  15. package/coverage/lcov-report/linter/schema.ts.html +1471 -0
  16. package/coverage/lcov-report/linter/segmentSchema.ts.html +130 -0
  17. package/coverage/lcov-report/list/index.html +1 -1
  18. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  19. package/coverage/lcov-report/parsers/index.html +1 -1
  20. package/coverage/lcov-report/parsers/json.ts.html +1 -1
  21. package/coverage/lcov-report/parsers/yml.ts.html +1 -1
  22. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  23. package/coverage/lcov-report/tester/index.html +1 -1
  24. package/coverage/lcov.info +1471 -0
  25. package/lib/builder/buildDatafile.js +15 -1
  26. package/lib/builder/buildDatafile.js.map +1 -1
  27. package/lib/config/projectConfig.d.ts +2 -0
  28. package/lib/config/projectConfig.js +3 -1
  29. package/lib/config/projectConfig.js.map +1 -1
  30. package/lib/datasource/datasource.d.ts +6 -1
  31. package/lib/datasource/datasource.js +16 -0
  32. package/lib/datasource/datasource.js.map +1 -1
  33. package/lib/datasource/filesystemAdapter.js +10 -0
  34. package/lib/datasource/filesystemAdapter.js.map +1 -1
  35. package/lib/generate-code/typescript.js +283 -49
  36. package/lib/generate-code/typescript.js.map +1 -1
  37. package/lib/linter/conditionSchema.spec.d.ts +1 -0
  38. package/lib/linter/conditionSchema.spec.js +331 -0
  39. package/lib/linter/conditionSchema.spec.js.map +1 -0
  40. package/lib/linter/featureSchema.d.ts +153 -17
  41. package/lib/linter/featureSchema.js +536 -49
  42. package/lib/linter/featureSchema.js.map +1 -1
  43. package/lib/linter/featureSchema.spec.d.ts +1 -0
  44. package/lib/linter/featureSchema.spec.js +978 -0
  45. package/lib/linter/featureSchema.spec.js.map +1 -0
  46. package/lib/linter/lintProject.js +67 -1
  47. package/lib/linter/lintProject.js.map +1 -1
  48. package/lib/linter/schema.d.ts +42 -0
  49. package/lib/linter/schema.js +417 -0
  50. package/lib/linter/schema.js.map +1 -0
  51. package/lib/linter/schema.spec.d.ts +1 -0
  52. package/lib/linter/schema.spec.js +483 -0
  53. package/lib/linter/schema.spec.js.map +1 -0
  54. package/lib/linter/segmentSchema.spec.d.ts +1 -0
  55. package/lib/linter/segmentSchema.spec.js +231 -0
  56. package/lib/linter/segmentSchema.spec.js.map +1 -0
  57. package/lib/tester/testFeature.js +5 -3
  58. package/lib/tester/testFeature.js.map +1 -1
  59. package/lib/utils/git.js +3 -0
  60. package/lib/utils/git.js.map +1 -1
  61. package/package.json +5 -5
  62. package/src/builder/buildDatafile.ts +17 -1
  63. package/src/config/projectConfig.ts +3 -0
  64. package/src/datasource/datasource.ts +23 -0
  65. package/src/datasource/filesystemAdapter.ts +7 -0
  66. package/src/generate-code/typescript.ts +333 -52
  67. package/src/linter/conditionSchema.spec.ts +446 -0
  68. package/src/linter/featureSchema.spec.ts +1218 -0
  69. package/src/linter/featureSchema.ts +747 -70
  70. package/src/linter/lintProject.ts +84 -0
  71. package/src/linter/schema.spec.ts +617 -0
  72. package/src/linter/schema.ts +462 -0
  73. package/src/linter/segmentSchema.spec.ts +273 -0
  74. package/src/tester/testFeature.ts +5 -3
  75. package/src/utils/git.ts +2 -0
  76. package/lib/linter/propertySchema.d.ts +0 -5
  77. package/lib/linter/propertySchema.js +0 -43
  78. package/lib/linter/propertySchema.js.map +0 -1
  79. package/src/linter/propertySchema.ts +0 -47
@@ -26,35 +26,83 @@ function convertFeaturevisorTypeToTypeScriptType(featurevisorType) {
26
26
  }
27
27
  }
28
28
  /**
29
- * Converts a PropertySchema (items or properties entry) to a TypeScript type string.
30
- * Handles nested object/array with structured items and properties.
29
+ * Resolve a schema to its full definition, following schema references (schema: key).
31
30
  */
32
- function propertySchemaToTypeScriptType(schema) {
33
- const type = schema.type;
31
+ function resolveSchema(schema, schemasByKey) {
32
+ if (schema.schema && schemasByKey[schema.schema]) {
33
+ return resolveSchema(schemasByKey[schema.schema], schemasByKey);
34
+ }
35
+ return schema;
36
+ }
37
+ /** Emit a TypeScript literal type for a primitive const value, or null if not a primitive. */
38
+ function constToLiteralType(constVal) {
39
+ if (constVal === null || constVal === undefined)
40
+ return null;
41
+ if (typeof constVal === "string")
42
+ return JSON.stringify(constVal);
43
+ if (typeof constVal === "number")
44
+ return String(constVal);
45
+ if (typeof constVal === "boolean")
46
+ return constVal ? "true" : "false";
47
+ return null;
48
+ }
49
+ /** Emit a TypeScript union of literal types for an enum array (primitives only), or null. */
50
+ function enumToUnionType(enumArr) {
51
+ if (enumArr.length === 0)
52
+ return null;
53
+ const literals = [];
54
+ for (const v of enumArr) {
55
+ const lit = constToLiteralType(v);
56
+ if (lit === null)
57
+ return null;
58
+ literals.push(lit);
59
+ }
60
+ return literals.join(" | ");
61
+ }
62
+ /**
63
+ * Converts a Schema (items or properties entry) to a TypeScript type string.
64
+ * Handles nested object/array and resolves schema references recursively.
65
+ * When schema has `oneOf`, emits a union of each branch type. When schema has primitive `const` or `enum`, emits a literal or union type.
66
+ * When schemaTypeNames is provided and schema is a reference (schema: key), returns that type name instead of inlining.
67
+ */
68
+ function schemaToTypeScriptType(schema, schemasByKey, schemaTypeNames) {
69
+ if (schema?.schema && schemaTypeNames?.[schema.schema]) {
70
+ return schemaTypeNames[schema.schema];
71
+ }
72
+ const resolved = resolveSchema(schema, schemasByKey);
73
+ if (resolved.oneOf && Array.isArray(resolved.oneOf) && resolved.oneOf.length > 0) {
74
+ const parts = resolved.oneOf.map((branch) => schemaToTypeScriptType(branch, schemasByKey, schemaTypeNames));
75
+ return parts.join(" | ");
76
+ }
77
+ const literalFromConst = resolved.const !== undefined ? constToLiteralType(resolved.const) : null;
78
+ const unionFromEnum = resolved.enum && Array.isArray(resolved.enum) && resolved.enum.length > 0
79
+ ? enumToUnionType(resolved.enum)
80
+ : null;
81
+ const type = resolved.type;
34
82
  if (!type) {
35
- return "unknown";
83
+ return literalFromConst ?? unionFromEnum ?? "unknown";
36
84
  }
37
85
  switch (type) {
38
86
  case "boolean":
39
- return "boolean";
87
+ return literalFromConst ?? unionFromEnum ?? "boolean";
40
88
  case "string":
41
- return "string";
89
+ return literalFromConst ?? unionFromEnum ?? "string";
42
90
  case "integer":
43
91
  case "double":
44
- return "number";
92
+ return literalFromConst ?? unionFromEnum ?? "number";
45
93
  case "array":
46
- if (schema.items) {
47
- return `(${propertySchemaToTypeScriptType(schema.items)})[]`;
94
+ if (resolved.items) {
95
+ return `(${schemaToTypeScriptType(resolved.items, schemasByKey, schemaTypeNames)})[]`;
48
96
  }
49
97
  return "string[]";
50
98
  case "object": {
51
- const props = schema.properties;
99
+ const props = resolved.properties;
52
100
  if (props && typeof props === "object" && Object.keys(props).length > 0) {
53
- const requiredSet = new Set(schema.required || []);
101
+ const requiredSet = new Set(resolved.required || []);
54
102
  const entries = Object.entries(props)
55
103
  .map(([k, v]) => {
56
- const propType = propertySchemaToTypeScriptType(v);
57
- const optional = requiredSet.size > 0 && !requiredSet.has(k);
104
+ const propType = schemaToTypeScriptType(v, schemasByKey, schemaTypeNames);
105
+ const optional = !requiredSet.has(k);
58
106
  return optional ? `${k}?: ${propType}` : `${k}: ${propType}`;
59
107
  })
60
108
  .join("; ");
@@ -66,80 +114,208 @@ function propertySchemaToTypeScriptType(schema) {
66
114
  return "unknown";
67
115
  }
68
116
  }
117
+ /**
118
+ * Resolve variable schema to the schema shape used for code gen (inline or from schema reference).
119
+ */
120
+ function getEffectiveVariableSchema(variableSchema, schemasByKey) {
121
+ if ("schema" in variableSchema && variableSchema.schema) {
122
+ return schemasByKey[variableSchema.schema];
123
+ }
124
+ return variableSchema;
125
+ }
69
126
  /**
70
127
  * Generates TypeScript type/interface declarations and metadata for a variable.
71
128
  * Returns declarations to emit (interface or type alias) plus the type name and generic to use in the getter.
129
+ * When isLiteralType is true, the getter return must be asserted so the SDK's primitive return type matches the literal.
130
+ * When schemaTypeNames is provided, direct schema refs and schema refs in array items use those type names and schemaTypesUsed is populated.
72
131
  */
73
- function generateVariableTypeDeclarations(variableKey, variableSchema) {
132
+ function generateVariableTypeDeclarations(variableKey, variableSchema, schemasByKey, schemaTypeNames) {
74
133
  const typeName = getPascalCase(variableKey) + "Variable";
75
134
  const itemTypeName = getPascalCase(variableKey) + "VariableItem";
76
- const type = variableSchema.type;
135
+ const schemaTypesUsed = [];
136
+ const addSchemaUsed = (name) => {
137
+ if (name && !schemaTypesUsed.includes(name))
138
+ schemaTypesUsed.push(name);
139
+ };
140
+ // Direct schema reference: emit type alias to schema type and reuse it
141
+ if (schemaTypeNames &&
142
+ "schema" in variableSchema &&
143
+ variableSchema.schema &&
144
+ schemasByKey[variableSchema.schema]) {
145
+ const schemaKey = variableSchema.schema;
146
+ const schemaTypeName = schemaTypeNames[schemaKey];
147
+ const resolvedSchema = resolveSchema(schemasByKey[schemaKey], schemasByKey);
148
+ const isOneOf = resolvedSchema.oneOf &&
149
+ Array.isArray(resolvedSchema.oneOf) &&
150
+ resolvedSchema.oneOf.length > 0 &&
151
+ !resolvedSchema.type;
152
+ const isLiteralSchema = resolvedSchema.const !== undefined ||
153
+ (resolvedSchema.enum && Array.isArray(resolvedSchema.enum) && resolvedSchema.enum.length > 0);
154
+ addSchemaUsed(schemaTypeName);
155
+ // getVariableArray<T> expects T to be the element type, not the full array type
156
+ let genericArg = schemaTypeName;
157
+ if (resolvedSchema.type === "array" && resolvedSchema.items) {
158
+ const itemsSchema = resolvedSchema.items;
159
+ if ("schema" in itemsSchema && itemsSchema.schema && schemaTypeNames[itemsSchema.schema]) {
160
+ genericArg = schemaTypeNames[itemsSchema.schema];
161
+ addSchemaUsed(genericArg);
162
+ }
163
+ else {
164
+ genericArg = schemaToTypeScriptType(itemsSchema, schemasByKey, schemaTypeNames);
165
+ }
166
+ }
167
+ return {
168
+ declarations: [`${INDENT_NS}export type ${typeName} = ${schemaTypeName};`],
169
+ returnTypeName: schemaTypeName,
170
+ genericArg,
171
+ useGetVariable: isOneOf,
172
+ isLiteralType: isOneOf || isLiteralSchema,
173
+ schemaTypesUsed,
174
+ };
175
+ }
176
+ const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
177
+ const type = effective?.type;
77
178
  const declarations = [];
78
179
  if (type === "json") {
79
- return { declarations: [], returnTypeName: "T", genericArg: "T" };
180
+ return { declarations: [], returnTypeName: "T", genericArg: "T", schemaTypesUsed };
181
+ }
182
+ const effectiveOneOf = effective && "oneOf" in effective && Array.isArray(effective.oneOf)
183
+ ? effective.oneOf
184
+ : undefined;
185
+ if (effectiveOneOf && effectiveOneOf.length > 0 && !type) {
186
+ const unionType = effectiveOneOf
187
+ .map((branch) => schemaToTypeScriptType(branch, schemasByKey, schemaTypeNames))
188
+ .join(" | ");
189
+ if (schemaTypeNames) {
190
+ Object.values(schemaTypeNames).forEach((n) => {
191
+ if (unionType.includes(n))
192
+ addSchemaUsed(n);
193
+ });
194
+ }
195
+ declarations.push(`${INDENT_NS}export type ${typeName} = ${unionType};`);
196
+ return {
197
+ declarations,
198
+ returnTypeName: typeName,
199
+ genericArg: typeName,
200
+ isLiteralType: true,
201
+ useGetVariable: true,
202
+ schemaTypesUsed,
203
+ };
80
204
  }
81
205
  if (type === "object") {
82
- const props = variableSchema.properties;
206
+ const resolvedEffective = effective && "properties" in effective
207
+ ? resolveSchema(effective, schemasByKey)
208
+ : undefined;
209
+ const props = resolvedEffective?.properties;
83
210
  if (props && typeof props === "object" && Object.keys(props).length > 0) {
84
- const requiredSet = new Set(variableSchema.required || []);
211
+ const requiredSet = new Set(resolvedEffective?.required || []);
85
212
  const entries = Object.entries(props)
86
213
  .map(([k, v]) => {
87
- const propType = propertySchemaToTypeScriptType(v);
88
- const optional = requiredSet.size > 0 && !requiredSet.has(k);
214
+ const propType = schemaToTypeScriptType(v, schemasByKey, schemaTypeNames);
215
+ if (schemaTypeNames)
216
+ Object.values(schemaTypeNames).forEach((n) => {
217
+ if (propType.includes(n))
218
+ addSchemaUsed(n);
219
+ });
220
+ const optional = !requiredSet.has(k);
89
221
  return optional
90
222
  ? `${INDENT_NS_BODY}${k}?: ${propType};`
91
223
  : `${INDENT_NS_BODY}${k}: ${propType};`;
92
224
  })
93
225
  .join("\n");
94
226
  declarations.push(`${INDENT_NS}export interface ${typeName} {\n${entries}\n${INDENT_NS}}`);
95
- return { declarations, returnTypeName: typeName, genericArg: typeName };
227
+ return { declarations, returnTypeName: typeName, genericArg: typeName, schemaTypesUsed };
96
228
  }
97
229
  declarations.push(`${INDENT_NS}export type ${typeName} = Record<string, unknown>;`);
98
- return { declarations, returnTypeName: typeName, genericArg: typeName };
230
+ return { declarations, returnTypeName: typeName, genericArg: typeName, schemaTypesUsed };
99
231
  }
100
232
  if (type === "array") {
101
- if (variableSchema.items) {
102
- const items = variableSchema.items;
103
- if (items.type === "object" && items.properties && Object.keys(items.properties).length > 0) {
104
- const requiredSet = new Set(items.required || []);
105
- const entries = Object.entries(items.properties)
233
+ const itemsSchema = effective && "items" in effective ? effective.items : undefined;
234
+ if (itemsSchema) {
235
+ const itemsRef = schemaTypeNames &&
236
+ "schema" in itemsSchema &&
237
+ itemsSchema.schema &&
238
+ schemasByKey[itemsSchema.schema]
239
+ ? schemaTypeNames[itemsSchema.schema]
240
+ : null;
241
+ if (itemsRef) {
242
+ addSchemaUsed(itemsRef);
243
+ declarations.push(`${INDENT_NS}export type ${itemTypeName} = ${itemsRef};`);
244
+ return {
245
+ declarations,
246
+ returnTypeName: `${itemTypeName}[]`,
247
+ genericArg: itemTypeName,
248
+ schemaTypesUsed,
249
+ };
250
+ }
251
+ const resolvedItems = resolveSchema(itemsSchema, schemasByKey);
252
+ if (resolvedItems.type === "object" &&
253
+ resolvedItems.properties &&
254
+ Object.keys(resolvedItems.properties).length > 0) {
255
+ const requiredSet = new Set(resolvedItems.required || []);
256
+ const entries = Object.entries(resolvedItems.properties)
106
257
  .map(([k, v]) => {
107
- const propType = propertySchemaToTypeScriptType(v);
108
- const optional = requiredSet.size > 0 && !requiredSet.has(k);
258
+ const propType = schemaToTypeScriptType(v, schemasByKey, schemaTypeNames);
259
+ if (schemaTypeNames)
260
+ Object.values(schemaTypeNames).forEach((n) => {
261
+ if (propType.includes(n))
262
+ addSchemaUsed(n);
263
+ });
264
+ const optional = !requiredSet.has(k);
109
265
  return optional
110
266
  ? `${INDENT_NS_BODY}${k}?: ${propType};`
111
267
  : `${INDENT_NS_BODY}${k}: ${propType};`;
112
268
  })
113
269
  .join("\n");
114
270
  declarations.push(`${INDENT_NS}export interface ${itemTypeName} {\n${entries}\n${INDENT_NS}}`);
115
- // getVariableArray<T> returns T[] | null, so generic is item type
116
271
  return {
117
272
  declarations,
118
273
  returnTypeName: `${itemTypeName}[]`,
119
274
  genericArg: itemTypeName,
275
+ schemaTypesUsed,
120
276
  };
121
277
  }
122
- // array of primitive (e.g. string): emit item type only, use item[] in methods
123
- const itemType = propertySchemaToTypeScriptType(items);
278
+ const itemType = schemaToTypeScriptType(resolvedItems, schemasByKey, schemaTypeNames);
279
+ if (schemaTypeNames)
280
+ Object.values(schemaTypeNames).forEach((n) => {
281
+ if (itemType.includes(n))
282
+ addSchemaUsed(n);
283
+ });
124
284
  declarations.push(`${INDENT_NS}export type ${itemTypeName} = ${itemType};`);
125
285
  return {
126
286
  declarations,
127
287
  returnTypeName: `${itemTypeName}[]`,
128
288
  genericArg: itemTypeName,
289
+ schemaTypesUsed,
129
290
  };
130
291
  }
131
- // array without items (default string[]): emit item type only
132
292
  declarations.push(`${INDENT_NS}export type ${itemTypeName} = string;`);
133
293
  return {
134
294
  declarations,
135
295
  returnTypeName: `${itemTypeName}[]`,
136
296
  genericArg: itemTypeName,
297
+ schemaTypesUsed,
137
298
  };
138
299
  }
139
- // primitive: boolean, string, integer, double
140
- const primitiveType = convertFeaturevisorTypeToTypeScriptType(type);
300
+ // primitive: boolean, string, integer, double (or unknown when schema ref unresolved)
301
+ // When schema has primitive const or enum, emit literal or union type
302
+ const effectiveConst = effective && "const" in effective && effective.const !== undefined
303
+ ? effective.const
304
+ : undefined;
305
+ const effectiveEnum = effective && "enum" in effective && Array.isArray(effective.enum)
306
+ ? effective.enum
307
+ : undefined;
308
+ const literalType = effectiveConst !== undefined ? constToLiteralType(effectiveConst) : null;
309
+ const enumUnion = effectiveEnum && effectiveEnum.length > 0 ? enumToUnionType(effectiveEnum) : null;
310
+ const primitiveType = literalType ?? enumUnion ?? (type ? convertFeaturevisorTypeToTypeScriptType(type) : "unknown");
141
311
  declarations.push(`${INDENT_NS}export type ${typeName} = ${primitiveType};`);
142
- return { declarations, returnTypeName: typeName, genericArg: typeName };
312
+ return {
313
+ declarations,
314
+ returnTypeName: typeName,
315
+ genericArg: typeName,
316
+ isLiteralType: literalType !== null || enumUnion !== null,
317
+ schemaTypesUsed,
318
+ };
143
319
  }
144
320
  function getPascalCase(str) {
145
321
  // Remove special characters and split the string into an array of words
@@ -155,6 +331,25 @@ function getRelativePath(from, to) {
155
331
  }
156
332
  return relativePath;
157
333
  }
334
+ /**
335
+ * Generates the content of Schemas.ts: one exported type per schema key, using schema refs between schemas.
336
+ */
337
+ function generateSchemasFileContent(schemaKeys, schemasByKey) {
338
+ const schemaTypeNames = {};
339
+ for (const k of schemaKeys) {
340
+ schemaTypeNames[k] = getPascalCase(k) + "Schema";
341
+ }
342
+ const lines = [];
343
+ for (const key of schemaKeys) {
344
+ const schema = schemasByKey[key];
345
+ if (!schema)
346
+ continue;
347
+ const name = schemaTypeNames[key];
348
+ const typeStr = schemaToTypeScriptType(schema, schemasByKey, schemaTypeNames);
349
+ lines.push(`export type ${name} = ${typeStr};`);
350
+ }
351
+ return lines.join("\n") + "\n";
352
+ }
158
353
  // Indentation for generated namespace content (2 spaces per level)
159
354
  const INDENT_NS = " ";
160
355
  const INDENT_NS_BODY = " ";
@@ -213,6 +408,29 @@ ${attributeProperties}
213
408
  // features
214
409
  const featureNamespaces = [];
215
410
  const featureFiles = await datasource.listFeatures();
411
+ // Load schemas for resolving variable schema references
412
+ const schemaListKeys = await datasource.listSchemas();
413
+ const schemasByKey = {};
414
+ for (const key of schemaListKeys) {
415
+ try {
416
+ schemasByKey[key] = await datasource.readSchema(key);
417
+ }
418
+ catch {
419
+ // Schema file may be invalid; skip for code gen
420
+ }
421
+ }
422
+ const schemaKeys = Object.keys(schemasByKey);
423
+ const hasSchemasFile = schemaKeys.length > 0;
424
+ if (hasSchemasFile) {
425
+ const schemasContent = generateSchemasFileContent(schemaKeys, schemasByKey);
426
+ const schemasFilePath = path.join(outputPath, "Schemas.ts");
427
+ fs.writeFileSync(schemasFilePath, schemasContent);
428
+ console.log(`Schemas type file written at: ${getRelativePath(rootDirectoryPath, schemasFilePath)}`);
429
+ }
430
+ const schemaTypeNames = {};
431
+ for (const k of schemaKeys) {
432
+ schemaTypeNames[k] = getPascalCase(k) + "Schema";
433
+ }
216
434
  for (const featureKey of featureFiles) {
217
435
  const parsedFeature = await datasource.readFeature(featureKey);
218
436
  if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
@@ -222,17 +440,28 @@ ${attributeProperties}
222
440
  featureNamespaces.push(namespaceValue);
223
441
  let variableTypeDeclarations = "";
224
442
  let variableMethods = "";
443
+ const featureSchemaTypesUsed = new Set();
225
444
  if (parsedFeature.variablesSchema) {
226
445
  const variableKeys = Object.keys(parsedFeature.variablesSchema);
227
446
  const allDeclarations = [];
228
447
  for (const variableKey of variableKeys) {
229
448
  const variableSchema = parsedFeature.variablesSchema[variableKey];
230
- const variableType = variableSchema.type;
231
- const { declarations, returnTypeName, genericArg } = generateVariableTypeDeclarations(variableKey, variableSchema);
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));
232
453
  allDeclarations.push(...declarations);
233
- const internalMethodName = `getVariable${variableType === "json" ? "JSON" : getPascalCase(variableType)}`;
454
+ const internalMethodName = `getVariable${variableType === "json" ? "JSON" : getPascalCase(variableType ?? "string")}`;
234
455
  const hasGeneric = variableType === "json" || variableType === "array" || variableType === "object";
235
- if (variableType === "json") {
456
+ const literalAssertion = isLiteralType ? ` as ${returnTypeName} | null` : "";
457
+ if (useGetVariable) {
458
+ variableMethods += `
459
+
460
+ ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
461
+ ${INDENT_NS_BODY}return getInstance().getVariable(key, "${variableKey}", context)${literalAssertion};
462
+ ${INDENT_NS}}`;
463
+ }
464
+ else if (variableType === "json") {
236
465
  variableMethods += `
237
466
 
238
467
  ${INDENT_NS}export function get${getPascalCase(variableKey)}<T = unknown>(context: Context = {}): T | null {
@@ -250,7 +479,7 @@ ${INDENT_NS}}`;
250
479
  variableMethods += `
251
480
 
252
481
  ${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
253
- ${INDENT_NS_BODY}return getInstance().${internalMethodName}(key, "${variableKey}", context);
482
+ ${INDENT_NS_BODY}return getInstance().${internalMethodName}(key, "${variableKey}", context)${literalAssertion};
254
483
  ${INDENT_NS}}`;
255
484
  }
256
485
  }
@@ -258,11 +487,13 @@ ${INDENT_NS}}`;
258
487
  variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
259
488
  }
260
489
  }
490
+ const schemasImportLine = featureSchemaTypesUsed.size > 0
491
+ ? `import type { ${[...featureSchemaTypesUsed].sort().join(", ")} } from "./Schemas";\n\n`
492
+ : "";
261
493
  const featureContent = `
262
494
  import { Context } from "./Context";
263
495
  import { getInstance } from "./instance";
264
-
265
- export namespace ${namespaceValue} {
496
+ ${schemasImportLine}export namespace ${namespaceValue} {
266
497
  ${INDENT_NS}export const key = "${featureKey}";${variableTypeDeclarations}
267
498
 
268
499
  ${INDENT_NS}export function isEnabled(context: Context = {}) {
@@ -279,11 +510,14 @@ ${INDENT_NS}}${variableMethods}
279
510
  console.log(`Feature ${featureKey} file written at: ${getRelativePath(rootDirectoryPath, featureNamespaceFilePath)}`);
280
511
  }
281
512
  // index
282
- const indexContent = [`export * from "./Context";`, `export * from "./instance";`]
283
- .concat(featureNamespaces.map((featureNamespace) => {
284
- return `export * from "./${featureNamespace}";`;
285
- }))
286
- .join("\n") + "\n";
513
+ const indexContent = [
514
+ `export * from "./Context";`,
515
+ `export * from "./instance";`,
516
+ ...(hasSchemasFile ? [`export * from "./Schemas";`] : []),
517
+ ...featureNamespaces.map((featureNamespace) => {
518
+ return `export * from "./${featureNamespace}";`;
519
+ }),
520
+ ].join("\n") + "\n";
287
521
  const indexFilePath = path.join(outputPath, "index.ts");
288
522
  fs.writeFileSync(indexFilePath, indexContent);
289
523
  console.log(`Index file written at: ${getRelativePath(rootDirectoryPath, indexFilePath)}`);
@@ -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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"}
@@ -0,0 +1 @@
1
+ export {};