@featurevisor/core 0.53.2 → 0.53.3

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 (77) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +8 -0
  3. package/coverage/clover.xml +2 -2
  4. package/coverage/lcov-report/index.html +1 -1
  5. package/coverage/lcov-report/lib/builder/allocator.js.html +1 -1
  6. package/coverage/lcov-report/lib/builder/index.html +1 -1
  7. package/coverage/lcov-report/lib/builder/traffic.js.html +1 -1
  8. package/coverage/lcov-report/src/builder/allocator.ts.html +1 -1
  9. package/coverage/lcov-report/src/builder/index.html +1 -1
  10. package/coverage/lcov-report/src/builder/traffic.ts.html +1 -1
  11. package/lib/builder/buildDatafile.d.ts +1 -1
  12. package/lib/builder/buildDatafile.js +241 -168
  13. package/lib/builder/buildDatafile.js.map +1 -1
  14. package/lib/builder/buildProject.d.ts +1 -1
  15. package/lib/builder/buildProject.js +99 -40
  16. package/lib/builder/buildProject.js.map +1 -1
  17. package/lib/builder/getFeatureRanges.d.ts +1 -1
  18. package/lib/builder/getFeatureRanges.js +92 -31
  19. package/lib/builder/getFeatureRanges.js.map +1 -1
  20. package/lib/datasource/datasource.d.ts +16 -16
  21. package/lib/datasource/datasource.js +123 -67
  22. package/lib/datasource/datasource.js.map +1 -1
  23. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  24. package/lib/find-duplicate-segments/findDuplicateSegments.js +75 -18
  25. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  26. package/lib/find-duplicate-segments/index.d.ts +1 -1
  27. package/lib/find-duplicate-segments/index.js +56 -9
  28. package/lib/find-duplicate-segments/index.js.map +1 -1
  29. package/lib/generate-code/index.d.ts +1 -1
  30. package/lib/generate-code/index.js +67 -23
  31. package/lib/generate-code/index.js.map +1 -1
  32. package/lib/generate-code/typescript.d.ts +1 -1
  33. package/lib/generate-code/typescript.js +139 -72
  34. package/lib/generate-code/typescript.js.map +1 -1
  35. package/lib/linter/checkCircularDependency.d.ts +1 -1
  36. package/lib/linter/checkCircularDependency.js +78 -22
  37. package/lib/linter/checkCircularDependency.js.map +1 -1
  38. package/lib/linter/groupSchema.js +79 -28
  39. package/lib/linter/groupSchema.js.map +1 -1
  40. package/lib/linter/lintProject.js +122 -101
  41. package/lib/linter/lintProject.js.map +1 -1
  42. package/lib/restore.d.ts +1 -1
  43. package/lib/restore.js +53 -11
  44. package/lib/restore.js.map +1 -1
  45. package/lib/site/exportSite.d.ts +1 -1
  46. package/lib/site/exportSite.js +64 -21
  47. package/lib/site/exportSite.js.map +1 -1
  48. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  49. package/lib/site/generateSiteSearchIndex.js +203 -111
  50. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  51. package/lib/tester/testFeature.d.ts +1 -1
  52. package/lib/tester/testFeature.js +127 -59
  53. package/lib/tester/testFeature.js.map +1 -1
  54. package/lib/tester/testProject.d.ts +1 -1
  55. package/lib/tester/testProject.js +105 -48
  56. package/lib/tester/testProject.js.map +1 -1
  57. package/lib/tester/testSegment.d.ts +1 -1
  58. package/lib/tester/testSegment.js +69 -21
  59. package/lib/tester/testSegment.js.map +1 -1
  60. package/package.json +2 -2
  61. package/src/builder/buildDatafile.ts +9 -9
  62. package/src/builder/buildProject.ts +2 -2
  63. package/src/builder/getFeatureRanges.ts +4 -4
  64. package/src/datasource/datasource.ts +22 -69
  65. package/src/find-duplicate-segments/findDuplicateSegments.ts +9 -6
  66. package/src/find-duplicate-segments/index.ts +5 -2
  67. package/src/generate-code/index.ts +2 -2
  68. package/src/generate-code/typescript.ts +42 -25
  69. package/src/linter/checkCircularDependency.ts +4 -4
  70. package/src/linter/groupSchema.ts +3 -3
  71. package/src/linter/lintProject.ts +39 -39
  72. package/src/restore.ts +1 -1
  73. package/src/site/exportSite.ts +2 -2
  74. package/src/site/generateSiteSearchIndex.ts +14 -14
  75. package/src/tester/testFeature.ts +8 -6
  76. package/src/tester/testProject.ts +8 -5
  77. package/src/tester/testSegment.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource/datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource/datasource.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { SegmentKey } from "@featurevisor/types";
2
2
  import { Datasource } from "../datasource";
3
- export declare function findDuplicateSegments(datasource: Datasource): SegmentKey[][];
3
+ export declare function findDuplicateSegments(datasource: Datasource): Promise<SegmentKey[][]>;
@@ -1,27 +1,84 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.findDuplicateSegments = void 0;
4
40
  var crypto = require("crypto");
5
41
  function findDuplicateSegments(datasource) {
6
- var segmentsWithHash = datasource.listSegments().map(function (segmentKey) {
7
- var segment = datasource.readSegment(segmentKey);
8
- var conditions = JSON.stringify(segment.conditions);
9
- var hash = crypto.createHash("sha256").update(conditions).digest("hex");
10
- return {
11
- segmentKey: segmentKey,
12
- hash: hash,
13
- };
42
+ return __awaiter(this, void 0, void 0, function () {
43
+ var segments, segmentsWithHash, _i, segments_1, segmentKey, segment, conditions, hash, groupedSegments, result;
44
+ return __generator(this, function (_a) {
45
+ switch (_a.label) {
46
+ case 0: return [4 /*yield*/, datasource.listSegments()];
47
+ case 1:
48
+ segments = _a.sent();
49
+ segmentsWithHash = [];
50
+ _i = 0, segments_1 = segments;
51
+ _a.label = 2;
52
+ case 2:
53
+ if (!(_i < segments_1.length)) return [3 /*break*/, 5];
54
+ segmentKey = segments_1[_i];
55
+ return [4 /*yield*/, datasource.readSegment(segmentKey)];
56
+ case 3:
57
+ segment = _a.sent();
58
+ conditions = JSON.stringify(segment.conditions);
59
+ hash = crypto.createHash("sha256").update(conditions).digest("hex");
60
+ segmentsWithHash.push({
61
+ segmentKey: segmentKey,
62
+ hash: hash,
63
+ });
64
+ _a.label = 4;
65
+ case 4:
66
+ _i++;
67
+ return [3 /*break*/, 2];
68
+ case 5:
69
+ groupedSegments = segmentsWithHash.reduce(function (acc, _a) {
70
+ var segmentKey = _a.segmentKey, hash = _a.hash;
71
+ if (!acc[hash]) {
72
+ acc[hash] = [];
73
+ }
74
+ acc[hash].push(segmentKey);
75
+ return acc;
76
+ }, {});
77
+ result = Object.values(groupedSegments).filter(function (segmentKeys) { return segmentKeys.length > 1; });
78
+ return [2 /*return*/, result];
79
+ }
80
+ });
14
81
  });
15
- var groupedSegments = segmentsWithHash.reduce(function (acc, _a) {
16
- var segmentKey = _a.segmentKey, hash = _a.hash;
17
- if (!acc[hash]) {
18
- acc[hash] = [];
19
- }
20
- acc[hash].push(segmentKey);
21
- return acc;
22
- }, {});
23
- var result = Object.values(groupedSegments).filter(function (segmentKeys) { return segmentKeys.length > 1; });
24
- return result;
25
82
  }
26
83
  exports.findDuplicateSegments = findDuplicateSegments;
27
84
  //# sourceMappingURL=findDuplicateSegments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findDuplicateSegments.js","sourceRoot":"","sources":["../../src/find-duplicate-segments/findDuplicateSegments.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAMjC,SAAgB,qBAAqB,CAAC,UAAsB;IAC1D,IAAM,gBAAgB,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAC,UAAU;QAChE,IAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnD,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtD,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1E,OAAO;YACL,UAAU,YAAA;YACV,IAAI,MAAA;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAM,eAAe,GAAqC,gBAAgB,CAAC,MAAM,CAC/E,UAAC,GAAG,EAAE,EAAoB;YAAlB,UAAU,gBAAA,EAAE,IAAI,UAAA;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACd,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAChB;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,MAAM,GAAG,CAAC,EAAtB,CAAsB,CAAC,CAAC;IAE9F,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,sDA0BC"}
1
+ {"version":3,"file":"findDuplicateSegments.js","sourceRoot":"","sources":["../../src/find-duplicate-segments/findDuplicateSegments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiC;AAMjC,SAAsB,qBAAqB,CAAC,UAAsB;;;;;wBAC/C,qBAAM,UAAU,CAAC,YAAY,EAAE,EAAA;;oBAA1C,QAAQ,GAAG,SAA+B;oBAE1C,gBAAgB,GAA+C,EAAE,CAAC;0BACvC,EAAR,qBAAQ;;;yBAAR,CAAA,sBAAQ,CAAA;oBAAtB,UAAU;oBACH,qBAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;oBAAlD,OAAO,GAAG,SAAwC;oBAClD,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAE1E,gBAAgB,CAAC,IAAI,CAAC;wBACpB,UAAU,YAAA;wBACV,IAAI,MAAA;qBACL,CAAC,CAAC;;;oBARoB,IAAQ,CAAA;;;oBAW3B,eAAe,GAAqC,gBAAgB,CAAC,MAAM,CAC/E,UAAC,GAAG,EAAE,EAAoB;4BAAlB,UAAU,gBAAA,EAAE,IAAI,UAAA;wBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACd,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBAChB;wBACD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC3B,OAAO,GAAG,CAAC;oBACb,CAAC,EACD,EAAE,CACH,CAAC;oBAEI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,MAAM,GAAG,CAAC,EAAtB,CAAsB,CAAC,CAAC;oBAE9F,sBAAO,MAAM,EAAC;;;;CACf;AA7BD,sDA6BC"}
@@ -1,2 +1,2 @@
1
1
  import { ProjectConfig } from "../config";
2
- export declare function findDuplicateSegmentsInProject(rootDirectoryPath: any, projectConfig: ProjectConfig): void;
2
+ export declare function findDuplicateSegmentsInProject(rootDirectoryPath: any, projectConfig: ProjectConfig): Promise<void>;
@@ -1,18 +1,65 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.findDuplicateSegmentsInProject = void 0;
4
40
  var datasource_1 = require("../datasource");
5
41
  var findDuplicateSegments_1 = require("./findDuplicateSegments");
6
42
  function findDuplicateSegmentsInProject(rootDirectoryPath, projectConfig) {
7
- var datasource = new datasource_1.Datasource(projectConfig);
8
- var duplicates = (0, findDuplicateSegments_1.findDuplicateSegments)(datasource);
9
- if (duplicates.length === 0) {
10
- console.log("No duplicate segments found");
11
- return;
12
- }
13
- console.log("Found ".concat(duplicates.length, " duplicates:\n"));
14
- duplicates.forEach(function (segmentKeys) {
15
- console.log(" - ".concat(segmentKeys.join(", ")));
43
+ return __awaiter(this, void 0, void 0, function () {
44
+ var datasource, duplicates;
45
+ return __generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0:
48
+ datasource = new datasource_1.Datasource(projectConfig);
49
+ return [4 /*yield*/, (0, findDuplicateSegments_1.findDuplicateSegments)(datasource)];
50
+ case 1:
51
+ duplicates = _a.sent();
52
+ if (duplicates.length === 0) {
53
+ console.log("No duplicate segments found");
54
+ return [2 /*return*/];
55
+ }
56
+ console.log("Found ".concat(duplicates.length, " duplicates:\n"));
57
+ duplicates.forEach(function (segmentKeys) {
58
+ console.log(" - ".concat(segmentKeys.join(", ")));
59
+ });
60
+ return [2 /*return*/];
61
+ }
62
+ });
16
63
  });
17
64
  }
18
65
  exports.findDuplicateSegmentsInProject = findDuplicateSegmentsInProject;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/find-duplicate-segments/index.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAG3C,iEAAgE;AAEhE,SAAgB,8BAA8B,CAAC,iBAAiB,EAAE,aAA4B;IAC5F,IAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAM,UAAU,GAAG,IAAA,6CAAqB,EAAC,UAAU,CAAC,CAAC;IAErD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;KACR;IAED,OAAO,CAAC,GAAG,CAAC,gBAAS,UAAU,CAAC,MAAM,mBAAgB,CAAC,CAAC;IAExD,UAAU,CAAC,OAAO,CAAC,UAAC,WAAW;QAC7B,OAAO,CAAC,GAAG,CAAC,cAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,wEAeC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/find-duplicate-segments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAG3C,iEAAgE;AAEhE,SAAsB,8BAA8B,CAClD,iBAAiB,EACjB,aAA4B;;;;;;oBAEtB,UAAU,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAC;oBAE9B,qBAAM,IAAA,6CAAqB,EAAC,UAAU,CAAC,EAAA;;oBAApD,UAAU,GAAG,SAAuC;oBAE1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;wBAC3C,sBAAO;qBACR;oBAED,OAAO,CAAC,GAAG,CAAC,gBAAS,UAAU,CAAC,MAAM,mBAAgB,CAAC,CAAC;oBAExD,UAAU,CAAC,OAAO,CAAC,UAAC,WAAW;wBAC7B,OAAO,CAAC,GAAG,CAAC,cAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;oBAC/C,CAAC,CAAC,CAAC;;;;;CACJ;AAlBD,wEAkBC"}
@@ -4,4 +4,4 @@ export interface GenerateCodeCLIOptions {
4
4
  language: string;
5
5
  outDir: string;
6
6
  }
7
- export declare function generateCodeForProject(rootDirectoryPath: any, projectConfig: ProjectConfig, cliOptions: GenerateCodeCLIOptions): void;
7
+ export declare function generateCodeForProject(rootDirectoryPath: any, projectConfig: ProjectConfig, cliOptions: GenerateCodeCLIOptions): Promise<void>;
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.generateCodeForProject = exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION = void 0;
4
40
  var fs = require("fs");
@@ -8,29 +44,37 @@ var datasource_1 = require("../datasource");
8
44
  var typescript_1 = require("./typescript");
9
45
  exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION = ["typescript"];
10
46
  function generateCodeForProject(rootDirectoryPath, projectConfig, cliOptions) {
11
- if (!cliOptions.language) {
12
- throw new Error("Option `--language` is required");
13
- }
14
- if (!cliOptions.outDir) {
15
- throw new Error("Option `--out-dir` is required");
16
- }
17
- var datasource = new datasource_1.Datasource(projectConfig);
18
- var absolutePath = path.resolve(rootDirectoryPath, cliOptions.outDir);
19
- if (!fs.existsSync(absolutePath)) {
20
- console.log("Creating output directory: ".concat(absolutePath));
21
- mkdirp.sync(absolutePath);
22
- }
23
- else {
24
- console.log("Output directory already exists at: ".concat(absolutePath));
25
- }
26
- if (!exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.includes(cliOptions.language)) {
27
- console.log("Only these languages are supported: ".concat(exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.join(", ")));
28
- throw new Error("Language ".concat(cliOptions.language, " is not supported for code generation"));
29
- }
30
- if (cliOptions.language === "typescript") {
31
- return (0, typescript_1.generateTypeScriptCodeForProject)(rootDirectoryPath, projectConfig, datasource, absolutePath);
32
- }
33
- throw new Error("Language ".concat(cliOptions.language, " is not supported"));
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var datasource, absolutePath;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ if (!cliOptions.language) {
53
+ throw new Error("Option `--language` is required");
54
+ }
55
+ if (!cliOptions.outDir) {
56
+ throw new Error("Option `--out-dir` is required");
57
+ }
58
+ datasource = new datasource_1.Datasource(projectConfig);
59
+ absolutePath = path.resolve(rootDirectoryPath, cliOptions.outDir);
60
+ if (!fs.existsSync(absolutePath)) {
61
+ console.log("Creating output directory: ".concat(absolutePath));
62
+ mkdirp.sync(absolutePath);
63
+ }
64
+ else {
65
+ console.log("Output directory already exists at: ".concat(absolutePath));
66
+ }
67
+ if (!exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.includes(cliOptions.language)) {
68
+ console.log("Only these languages are supported: ".concat(exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.join(", ")));
69
+ throw new Error("Language ".concat(cliOptions.language, " is not supported for code generation"));
70
+ }
71
+ if (!(cliOptions.language === "typescript")) return [3 /*break*/, 2];
72
+ return [4 /*yield*/, (0, typescript_1.generateTypeScriptCodeForProject)(rootDirectoryPath, projectConfig, datasource, absolutePath)];
73
+ case 1: return [2 /*return*/, _a.sent()];
74
+ case 2: throw new Error("Language ".concat(cliOptions.language, " is not supported"));
75
+ }
76
+ });
77
+ });
34
78
  }
35
79
  exports.generateCodeForProject = generateCodeForProject;
36
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generate-code/index.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,+BAAiC;AAGjC,4CAA2C;AAC3C,2CAAgE;AAEnD,QAAA,qCAAqC,GAAG,CAAC,YAAY,CAAC,CAAC;AAOpE,SAAgB,sBAAsB,CACpC,iBAAiB,EACjB,aAA4B,EAC5B,UAAkC;IAElC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACnD;IAED,IAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,qCAA8B,YAAY,CAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3B;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,8CAAuC,YAAY,CAAE,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,6CAAqC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxE,OAAO,CAAC,GAAG,CACT,8CAAuC,6CAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAC1F,CAAC;QAEF,MAAM,IAAI,KAAK,CAAC,mBAAY,UAAU,CAAC,QAAQ,0CAAuC,CAAC,CAAC;KACzF;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,YAAY,EAAE;QACxC,OAAO,IAAA,6CAAgC,EACrC,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,CACb,CAAC;KACH;IAED,MAAM,IAAI,KAAK,CAAC,mBAAY,UAAU,CAAC,QAAQ,sBAAmB,CAAC,CAAC;AACtE,CAAC;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generate-code/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,+BAAiC;AAGjC,4CAA2C;AAC3C,2CAAgE;AAEnD,QAAA,qCAAqC,GAAG,CAAC,YAAY,CAAC,CAAC;AAOpE,SAAsB,sBAAsB,CAC1C,iBAAiB,EACjB,aAA4B,EAC5B,UAAkC;;;;;;oBAElC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;qBACpD;oBAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;wBACtB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;qBACnD;oBAEK,UAAU,GAAG,IAAI,uBAAU,CAAC,aAAa,CAAC,CAAC;oBAE3C,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBAExE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;wBAChC,OAAO,CAAC,GAAG,CAAC,qCAA8B,YAAY,CAAE,CAAC,CAAC;wBAC1D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBAC3B;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,8CAAuC,YAAY,CAAE,CAAC,CAAC;qBACpE;oBAED,IAAI,CAAC,6CAAqC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;wBACxE,OAAO,CAAC,GAAG,CACT,8CAAuC,6CAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAC1F,CAAC;wBAEF,MAAM,IAAI,KAAK,CAAC,mBAAY,UAAU,CAAC,QAAQ,0CAAuC,CAAC,CAAC;qBACzF;yBAEG,CAAA,UAAU,CAAC,QAAQ,KAAK,YAAY,CAAA,EAApC,wBAAoC;oBAC/B,qBAAM,IAAA,6CAAgC,EAC3C,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,CACb,EAAA;wBALD,sBAAO,SAKN,EAAC;wBAGJ,MAAM,IAAI,KAAK,CAAC,mBAAY,UAAU,CAAC,QAAQ,sBAAmB,CAAC,CAAC;;;;CACrE;AA1CD,wDA0CC"}
@@ -1,3 +1,3 @@
1
1
  import { ProjectConfig } from "../config";
2
2
  import { Datasource } from "../datasource";
3
- export declare function generateTypeScriptCodeForProject(rootDirectoryPath: string, projectConfig: ProjectConfig, datasource: Datasource, outputPath: string): void;
3
+ export declare function generateTypeScriptCodeForProject(rootDirectoryPath: string, projectConfig: ProjectConfig, datasource: Datasource, outputPath: string): Promise<void>;
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.generateTypeScriptCodeForProject = void 0;
4
40
  var fs = require("fs");
@@ -32,6 +68,13 @@ function getPascalCase(str) {
32
68
  var pascalCased = words.map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); }).join("");
33
69
  return pascalCased;
34
70
  }
71
+ function getRelativePath(from, to) {
72
+ var relativePath = path.relative(from, to);
73
+ if (relativePath.startsWith("..")) {
74
+ return path.join(".", relativePath);
75
+ }
76
+ return relativePath;
77
+ }
35
78
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
79
  function getFeaturevisorTypeFromValue(value) {
37
80
  if (typeof value === "boolean") {
@@ -53,79 +96,103 @@ function getFeaturevisorTypeFromValue(value) {
53
96
  }
54
97
  var instanceSnippet = "\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nlet _instance: FeaturevisorInstance;\n\nexport function setInstance(instance: FeaturevisorInstance) {\n _instance = instance;\n}\n\nexport function getInstance(): FeaturevisorInstance {\n return _instance as FeaturevisorInstance;\n}\n".trimStart();
55
98
  function generateTypeScriptCodeForProject(rootDirectoryPath, projectConfig, datasource, outputPath) {
56
- console.log("Generating TypeScript code...");
57
- // instance
58
- var instanceFilePath = path.join(outputPath, "instance.ts");
59
- fs.writeFileSync(instanceFilePath, instanceSnippet);
60
- console.log("Instance file written at: ".concat(instanceFilePath));
61
- // attributes
62
- var attributeFiles = datasource.listAttributes();
63
- var attributes = attributeFiles
64
- .map(function (attributeKey) {
65
- var parsedAttribute = datasource.readAttribute(attributeKey);
66
- return {
67
- archived: parsedAttribute.archived,
68
- key: attributeKey,
69
- type: parsedAttribute.type,
70
- typescriptType: convertFeaturevisorTypeToTypeScriptType(parsedAttribute.type),
71
- };
72
- })
73
- .filter(function (attribute) {
74
- if (typeof attribute.archived === "undefined") {
75
- return true;
76
- }
77
- return !attribute.archived;
78
- });
79
- // context
80
- var attributeProperties = attributes
81
- .map(function (attribute) {
82
- return " ".concat(attribute.key, "?: ").concat(attribute.typescriptType, ";");
83
- })
84
- .join("\n");
85
- var contextContent = "\nimport { AttributeKey, AttributeValue } from \"@featurevisor/types\";\n\nexport interface Context {\n".concat(attributeProperties, "\n [key: AttributeKey]: AttributeValue;\n}\n").trimStart();
86
- var contextTypeFilePath = path.join(outputPath, "Context.ts");
87
- fs.writeFileSync(contextTypeFilePath, contextContent);
88
- console.log("Context type file written at: ".concat(contextTypeFilePath));
89
- // features
90
- var featureNamespaces = [];
91
- var featureFiles = datasource.listFeatures();
92
- for (var _i = 0, featureFiles_1 = featureFiles; _i < featureFiles_1.length; _i++) {
93
- var featureKey = featureFiles_1[_i];
94
- var parsedFeature = datasource.readFeature(featureKey);
95
- if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
96
- continue;
97
- }
98
- var namespaceValue = getPascalCase(featureKey) + "Feature";
99
- featureNamespaces.push(namespaceValue);
100
- var variableMethods = "";
101
- if (parsedFeature.variablesSchema) {
102
- for (var _a = 0, _b = parsedFeature.variablesSchema; _a < _b.length; _a++) {
103
- var variableSchema = _b[_a];
104
- var variableKey = variableSchema.key;
105
- var variableType = variableSchema.type;
106
- var internalMethodName = "getVariable".concat(variableType === "json" ? "JSON" : getPascalCase(variableType));
107
- if (variableType === "json" || variableType === "object") {
108
- variableMethods += "\n\n export function get".concat(getPascalCase(variableKey), "<T>(context: Context = {}) {\n return getInstance().").concat(internalMethodName, "<T>(key, \"").concat(variableKey, "\", context);\n }");
109
- }
110
- else {
111
- variableMethods += "\n\n export function get".concat(getPascalCase(variableKey), "(context: Context = {}) {\n return getInstance().").concat(internalMethodName, "(key, \"").concat(variableKey, "\", context);\n }");
112
- }
99
+ return __awaiter(this, void 0, void 0, function () {
100
+ var instanceFilePath, attributeFiles, attributes, _i, attributeFiles_1, attributeKey, parsedAttribute, attributeProperties, contextContent, contextTypeFilePath, featureNamespaces, featureFiles, _a, featureFiles_1, featureKey, parsedFeature, namespaceValue, variableMethods, _b, _c, variableSchema, variableKey, variableType, internalMethodName, featureContent, featureNamespaceFilePath, indexContent, indexFilePath;
101
+ return __generator(this, function (_d) {
102
+ switch (_d.label) {
103
+ case 0:
104
+ console.log("\nGenerating TypeScript code...\n");
105
+ instanceFilePath = path.join(outputPath, "instance.ts");
106
+ fs.writeFileSync(instanceFilePath, instanceSnippet);
107
+ console.log("Instance file written at: ".concat(getRelativePath(rootDirectoryPath, instanceFilePath)));
108
+ return [4 /*yield*/, datasource.listAttributes()];
109
+ case 1:
110
+ attributeFiles = _d.sent();
111
+ attributes = [];
112
+ _i = 0, attributeFiles_1 = attributeFiles;
113
+ _d.label = 2;
114
+ case 2:
115
+ if (!(_i < attributeFiles_1.length)) return [3 /*break*/, 5];
116
+ attributeKey = attributeFiles_1[_i];
117
+ return [4 /*yield*/, datasource.readAttribute(attributeKey)];
118
+ case 3:
119
+ parsedAttribute = _d.sent();
120
+ if (typeof parsedAttribute.archived === "undefined") {
121
+ return [3 /*break*/, 4];
122
+ }
123
+ attributes.push({
124
+ archived: parsedAttribute.archived,
125
+ key: attributeKey,
126
+ type: parsedAttribute.type,
127
+ typescriptType: convertFeaturevisorTypeToTypeScriptType(parsedAttribute.type),
128
+ });
129
+ _d.label = 4;
130
+ case 4:
131
+ _i++;
132
+ return [3 /*break*/, 2];
133
+ case 5:
134
+ attributeProperties = attributes
135
+ .map(function (attribute) {
136
+ return " ".concat(attribute.key, "?: ").concat(attribute.typescriptType, ";");
137
+ })
138
+ .join("\n");
139
+ contextContent = "\nimport { AttributeKey, AttributeValue } from \"@featurevisor/types\";\n\nexport interface Context {\n".concat(attributeProperties, "\n [key: AttributeKey]: AttributeValue;\n}\n").trimStart();
140
+ contextTypeFilePath = path.join(outputPath, "Context.ts");
141
+ fs.writeFileSync(contextTypeFilePath, contextContent);
142
+ console.log("Context type file written at: ".concat(getRelativePath(rootDirectoryPath, contextTypeFilePath)));
143
+ featureNamespaces = [];
144
+ return [4 /*yield*/, datasource.listFeatures()];
145
+ case 6:
146
+ featureFiles = _d.sent();
147
+ _a = 0, featureFiles_1 = featureFiles;
148
+ _d.label = 7;
149
+ case 7:
150
+ if (!(_a < featureFiles_1.length)) return [3 /*break*/, 10];
151
+ featureKey = featureFiles_1[_a];
152
+ return [4 /*yield*/, datasource.readFeature(featureKey)];
153
+ case 8:
154
+ parsedFeature = _d.sent();
155
+ if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
156
+ return [3 /*break*/, 9];
157
+ }
158
+ namespaceValue = getPascalCase(featureKey) + "Feature";
159
+ featureNamespaces.push(namespaceValue);
160
+ variableMethods = "";
161
+ if (parsedFeature.variablesSchema) {
162
+ for (_b = 0, _c = parsedFeature.variablesSchema; _b < _c.length; _b++) {
163
+ variableSchema = _c[_b];
164
+ variableKey = variableSchema.key;
165
+ variableType = variableSchema.type;
166
+ internalMethodName = "getVariable".concat(variableType === "json" ? "JSON" : getPascalCase(variableType));
167
+ if (variableType === "json" || variableType === "object") {
168
+ variableMethods += "\n\n export function get".concat(getPascalCase(variableKey), "<T>(context: Context = {}) {\n return getInstance().").concat(internalMethodName, "<T>(key, \"").concat(variableKey, "\", context);\n }");
169
+ }
170
+ else {
171
+ variableMethods += "\n\n export function get".concat(getPascalCase(variableKey), "(context: Context = {}) {\n return getInstance().").concat(internalMethodName, "(key, \"").concat(variableKey, "\", context);\n }");
172
+ }
173
+ }
174
+ }
175
+ featureContent = "\nimport { Context } from \"./Context\";\nimport { getInstance } from \"./instance\";\n\nexport namespace ".concat(namespaceValue, " {\n export const key = \"").concat(featureKey, "\";\n\n export function isEnabled(context: Context = {}) {\n return getInstance().isEnabled(key, context);\n }\n\n export function getVariation(context: Context = {}) {\n return getInstance().getVariation(key, context);\n }").concat(variableMethods, "\n}\n").trimStart();
176
+ featureNamespaceFilePath = path.join(outputPath, "".concat(namespaceValue, ".ts"));
177
+ fs.writeFileSync(featureNamespaceFilePath, featureContent);
178
+ console.log("Feature ".concat(featureKey, " file written at: ").concat(getRelativePath(rootDirectoryPath, featureNamespaceFilePath)));
179
+ _d.label = 9;
180
+ case 9:
181
+ _a++;
182
+ return [3 /*break*/, 7];
183
+ case 10:
184
+ indexContent = ["export * from \"./Context\";", "export * from \"./instance\";"]
185
+ .concat(featureNamespaces.map(function (featureNamespace) {
186
+ return "export * from \"./".concat(featureNamespace, "\";");
187
+ }))
188
+ .join("\n") + "\n";
189
+ indexFilePath = path.join(outputPath, "index.ts");
190
+ fs.writeFileSync(indexFilePath, indexContent);
191
+ console.log("Index file written at: ".concat(getRelativePath(rootDirectoryPath, indexFilePath)));
192
+ return [2 /*return*/];
113
193
  }
114
- }
115
- var featureContent = "\nimport { Context } from \"./Context\";\nimport { getInstance } from \"./instance\";\n\nexport namespace ".concat(namespaceValue, " {\n export const key = \"").concat(featureKey, "\";\n\n export function isEnabled(context: Context = {}) {\n return getInstance().isEnabled(key, context);\n }\n\n export function getVariation(context: Context = {}) {\n return getInstance().getVariation(key, context);\n }").concat(variableMethods, "\n}\n").trimStart();
116
- var featureNamespaceFilePath = path.join(outputPath, "".concat(namespaceValue, ".ts"));
117
- fs.writeFileSync(featureNamespaceFilePath, featureContent);
118
- console.log("Feature ".concat(featureKey, " file written at: ").concat(featureNamespaceFilePath));
119
- }
120
- // index
121
- var indexContent = ["export * from \"./Context\";", "export * from \"./instance\";"]
122
- .concat(featureNamespaces.map(function (featureNamespace) {
123
- return "export * from \"./".concat(featureNamespace, "\";");
124
- }))
125
- .join("\n") + "\n";
126
- var indexFilePath = path.join(outputPath, "index.ts");
127
- fs.writeFileSync(indexFilePath, indexContent);
128
- console.log("Index file written at: ".concat(indexFilePath));
194
+ });
195
+ });
129
196
  }
130
197
  exports.generateTypeScriptCodeForProject = generateTypeScriptCodeForProject;
131
198
  //# sourceMappingURL=typescript.js.map