@featurevisor/core 0.47.6 → 0.48.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 (48) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +19 -0
  3. package/coverage/clover.xml +2 -2
  4. package/coverage/lcov-report/index.html +1 -1
  5. package/coverage/lcov-report/lib/allocator.js.html +1 -1
  6. package/coverage/lcov-report/lib/index.html +1 -1
  7. package/coverage/lcov-report/lib/traffic.js.html +1 -1
  8. package/coverage/lcov-report/src/allocator.ts.html +1 -1
  9. package/coverage/lcov-report/src/index.html +1 -1
  10. package/coverage/lcov-report/src/traffic.ts.html +1 -1
  11. package/lib/builder.d.ts +3 -2
  12. package/lib/builder.js +20 -28
  13. package/lib/builder.js.map +1 -1
  14. package/lib/config.d.ts +3 -0
  15. package/lib/config.js +3 -1
  16. package/lib/config.js.map +1 -1
  17. package/lib/datasource/datasource.d.ts +32 -0
  18. package/lib/datasource/datasource.js +152 -0
  19. package/lib/datasource/datasource.js.map +1 -0
  20. package/lib/datasource/parsers.d.ts +15 -0
  21. package/lib/datasource/parsers.js +19 -0
  22. package/lib/datasource/parsers.js.map +1 -0
  23. package/lib/generate-code/index.js +3 -1
  24. package/lib/generate-code/index.js.map +1 -1
  25. package/lib/generate-code/typescript.d.ts +2 -1
  26. package/lib/generate-code/typescript.js +7 -10
  27. package/lib/generate-code/typescript.js.map +1 -1
  28. package/lib/init.d.ts +1 -1
  29. package/lib/init.js +1 -1
  30. package/lib/init.js.map +1 -1
  31. package/lib/linter.d.ts +2 -1
  32. package/lib/linter.js +44 -55
  33. package/lib/linter.js.map +1 -1
  34. package/lib/site.js +15 -28
  35. package/lib/site.js.map +1 -1
  36. package/lib/tester.js +9 -11
  37. package/lib/tester.js.map +1 -1
  38. package/package.json +5 -5
  39. package/src/builder.ts +22 -30
  40. package/src/config.ts +7 -0
  41. package/src/datasource/datasource.ts +185 -0
  42. package/src/datasource/parsers.ts +26 -0
  43. package/src/generate-code/index.ts +9 -1
  44. package/src/generate-code/typescript.ts +8 -12
  45. package/src/init.ts +1 -1
  46. package/src/linter.ts +46 -45
  47. package/src/site.ts +104 -127
  48. package/src/tester.ts +10 -12
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsers = void 0;
4
+ var utils_1 = require("../utils");
5
+ /**
6
+ * If we want to add more built-in parsers,
7
+ * add them to this object with new file extension as the key,
8
+ * and a function that takes file content as string and returns parsed object as the value.
9
+ */
10
+ exports.parsers = {
11
+ // extension => function
12
+ yml: function (content) {
13
+ return (0, utils_1.parseYaml)(content);
14
+ },
15
+ json: function (content) {
16
+ return JSON.parse(content);
17
+ },
18
+ };
19
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/datasource/parsers.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AAErC;;;;GAIG;AACU,QAAA,OAAO,GAAG;IACrB,wBAAwB;IACxB,GAAG,YAAC,OAAe;QACjB,OAAO,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,YAAC,OAAe;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC"}
@@ -4,6 +4,7 @@ exports.generateCodeForProject = exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION =
4
4
  var fs = require("fs");
5
5
  var path = require("path");
6
6
  var mkdirp = require("mkdirp");
7
+ var datasource_1 = require("../datasource/datasource");
7
8
  var typescript_1 = require("./typescript");
8
9
  exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION = ["typescript"];
9
10
  function generateCodeForProject(rootDirectoryPath, projectConfig, cliOptions) {
@@ -13,6 +14,7 @@ function generateCodeForProject(rootDirectoryPath, projectConfig, cliOptions) {
13
14
  if (!cliOptions.outDir) {
14
15
  throw new Error("Option `--out-dir` is required");
15
16
  }
17
+ var datasource = new datasource_1.Datasource(projectConfig);
16
18
  var absolutePath = path.resolve(rootDirectoryPath, cliOptions.outDir);
17
19
  if (!fs.existsSync(absolutePath)) {
18
20
  console.log("Creating output directory: ".concat(absolutePath));
@@ -26,7 +28,7 @@ function generateCodeForProject(rootDirectoryPath, projectConfig, cliOptions) {
26
28
  throw new Error("Language ".concat(cliOptions.language, " is not supported for code generation"));
27
29
  }
28
30
  if (cliOptions.language === "typescript") {
29
- return (0, typescript_1.generateTypeScriptCodeForProject)(rootDirectoryPath, projectConfig, absolutePath);
31
+ return (0, typescript_1.generateTypeScriptCodeForProject)(rootDirectoryPath, projectConfig, datasource, absolutePath);
30
32
  }
31
33
  throw new Error("Language ".concat(cliOptions.language, " is not supported"));
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generate-code/index.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,+BAAiC;AAGjC,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,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,EAAC,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;KACzF;IAED,MAAM,IAAI,KAAK,CAAC,mBAAY,UAAU,CAAC,QAAQ,sBAAmB,CAAC,CAAC;AACtE,CAAC;AAnCD,wDAmCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generate-code/index.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,+BAAiC;AAGjC,uDAAsD;AACtD,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,2 +1,3 @@
1
1
  import { ProjectConfig } from "../config";
2
- export declare function generateTypeScriptCodeForProject(rootDirectoryPath: string, projectConfig: ProjectConfig, outputPath: string): void;
2
+ import { Datasource } from "../datasource/datasource";
3
+ export declare function generateTypeScriptCodeForProject(rootDirectoryPath: string, projectConfig: ProjectConfig, datasource: Datasource, outputPath: string): void;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTypeScriptCodeForProject = void 0;
4
4
  var fs = require("fs");
5
5
  var path = require("path");
6
- var utils_1 = require("../utils");
7
6
  function convertFeaturevisorTypeToTypeScriptType(featurevisorType) {
8
7
  switch (featurevisorType) {
9
8
  case "boolean":
@@ -53,18 +52,17 @@ function getFeaturevisorTypeFromValue(value) {
53
52
  throw new Error("Could not detect Featurevisor type from value");
54
53
  }
55
54
  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();
56
- function generateTypeScriptCodeForProject(rootDirectoryPath, projectConfig, outputPath) {
55
+ function generateTypeScriptCodeForProject(rootDirectoryPath, projectConfig, datasource, outputPath) {
57
56
  console.log("Generating TypeScript code...");
58
57
  // instance
59
58
  var instanceFilePath = path.join(outputPath, "instance.ts");
60
59
  fs.writeFileSync(instanceFilePath, instanceSnippet);
61
60
  console.log("Instance file written at: ".concat(instanceFilePath));
62
61
  // attributes
63
- var attributeFiles = (0, utils_1.getYAMLFiles)(projectConfig.attributesDirectoryPath);
62
+ var attributeFiles = datasource.listAttributes();
64
63
  var attributes = attributeFiles
65
- .map(function (attributeFile) {
66
- var parsedAttribute = (0, utils_1.parseYaml)(fs.readFileSync(attributeFile, "utf8"));
67
- var attributeKey = path.basename(attributeFile, ".yml");
64
+ .map(function (attributeKey) {
65
+ var parsedAttribute = datasource.readAttribute(attributeKey);
68
66
  return {
69
67
  archived: parsedAttribute.archived,
70
68
  key: attributeKey,
@@ -90,11 +88,10 @@ function generateTypeScriptCodeForProject(rootDirectoryPath, projectConfig, outp
90
88
  console.log("Context type file written at: ".concat(contextTypeFilePath));
91
89
  // features
92
90
  var featureNamespaces = [];
93
- var featureFiles = (0, utils_1.getYAMLFiles)(projectConfig.featuresDirectoryPath);
91
+ var featureFiles = datasource.listFeatures();
94
92
  for (var _i = 0, featureFiles_1 = featureFiles; _i < featureFiles_1.length; _i++) {
95
- var featureFile = featureFiles_1[_i];
96
- var featureKey = path.basename(featureFile, ".yml");
97
- var parsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(featureFile, "utf8"));
93
+ var featureKey = featureFiles_1[_i];
94
+ var parsedFeature = datasource.readFeature(featureKey);
98
95
  if (typeof parsedFeature.archived !== "undefined" && parsedFeature.archived) {
99
96
  continue;
100
97
  }
@@ -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/lib/init.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const DEFAULT_EXAMPLE = "example-1";
1
+ export declare const DEFAULT_EXAMPLE = "example-yml";
2
2
  export declare const EXAMPLES_ORG_NAME = "fahad19";
3
3
  export declare const EXAMPLES_REPO_NAME = "featurevisor";
4
4
  export declare const EXAMPLES_BRANCH_NAME = "main";
package/lib/init.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initProject = exports.EXAMPLES_TAR_URL = exports.EXAMPLES_BRANCH_NAME = exports.EXAMPLES_REPO_NAME = exports.EXAMPLES_ORG_NAME = exports.DEFAULT_EXAMPLE = void 0;
4
4
  var axios_1 = require("axios");
5
5
  var tar = require("tar");
6
- exports.DEFAULT_EXAMPLE = "example-1";
6
+ exports.DEFAULT_EXAMPLE = "example-yml";
7
7
  exports.EXAMPLES_ORG_NAME = "fahad19";
8
8
  exports.EXAMPLES_REPO_NAME = "featurevisor";
9
9
  exports.EXAMPLES_BRANCH_NAME = "main";
package/lib/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAC1B,yBAA2B;AAEd,QAAA,eAAe,GAAG,WAAW,CAAC;AAE9B,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,kBAAkB,GAAG,cAAc,CAAC;AACpC,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAE9B,QAAA,gBAAgB,GAAG,sCAA+B,yBAAiB,cAAI,0BAAkB,qBAAW,4BAAoB,CAAE,CAAC;AAExI,SAAS,cAAc,CAAC,WAAmB;IACzC,OAAO,UAAG,0BAAkB,cAAI,4BAAoB,uBAAa,WAAW,MAAG,CAAC;AAClF,CAAC;AAED,SAAgB,WAAW,CACzB,aAAqB,EACrB,WAAqC;IAArC,4BAAA,EAAA,cAAsB,uBAAe;IAErC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;QAClC,eAAK,CAAC,GAAG,CAAC,wBAAgB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;YACpE,QAAQ,CAAC,IAAI;iBACV,IAAI,CACH,GAAG,CAAC,CAAC,CAAC;gBACJ,CAAC,EAAE,aAAa;gBAChB,MAAM,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAA/C,CAA+C;gBACjE,KAAK,EAAE,CAAC;aACT,CAAC,CACH;iBACA,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;iBACD,EAAE,CAAC,QAAQ,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,gCAAyB,aAAa,CAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,oDAAkD,CAAC,CAAC;gBAEhE,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,kCA4BC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAC1B,yBAA2B;AAEd,QAAA,eAAe,GAAG,aAAa,CAAC;AAEhC,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,kBAAkB,GAAG,cAAc,CAAC;AACpC,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAE9B,QAAA,gBAAgB,GAAG,sCAA+B,yBAAiB,cAAI,0BAAkB,qBAAW,4BAAoB,CAAE,CAAC;AAExI,SAAS,cAAc,CAAC,WAAmB;IACzC,OAAO,UAAG,0BAAkB,cAAI,4BAAoB,uBAAa,WAAW,MAAG,CAAC;AAClF,CAAC;AAED,SAAgB,WAAW,CACzB,aAAqB,EACrB,WAAqC;IAArC,4BAAA,EAAA,cAAsB,uBAAe;IAErC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;QAClC,eAAK,CAAC,GAAG,CAAC,wBAAgB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;YACpE,QAAQ,CAAC,IAAI;iBACV,IAAI,CACH,GAAG,CAAC,CAAC,CAAC;gBACJ,CAAC,EAAE,aAAa;gBAChB,MAAM,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAA/C,CAA+C;gBACjE,KAAK,EAAE,CAAC;aACT,CAAC,CACH;iBACA,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;iBACD,EAAE,CAAC,QAAQ,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,gCAAyB,aAAa,CAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,oDAAkD,CAAC,CAAC;gBAEhE,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,kCA4BC"}
package/lib/linter.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import * as Joi from "joi";
2
+ import { Datasource } from "./datasource/datasource";
2
3
  import { ProjectConfig } from "./config";
3
4
  export declare function getAttributeJoiSchema(): Joi.ObjectSchema<any>;
4
5
  export declare function getConditionsJoiSchema(projectConfig: ProjectConfig, availableAttributeKeys: string[]): Joi.AlternativesSchema<any>;
5
6
  export declare function getSegmentJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any): Joi.ObjectSchema<any>;
6
- export declare function getGroupJoiSchema(projectConfig: ProjectConfig, availableFeatureKeys: string[]): Joi.ObjectSchema<any>;
7
+ export declare function getGroupJoiSchema(projectConfig: ProjectConfig, datasource: Datasource, availableFeatureKeys: string[]): Joi.ObjectSchema<any>;
7
8
  export declare function getFeatureJoiSchema(projectConfig: ProjectConfig, conditionsJoiSchema: any, availableSegmentKeys: string[], availableFeatureKeys: string[]): Joi.ObjectSchema<any>;
8
9
  export declare function getTestsJoiSchema(projectConfig: ProjectConfig, availableFeatureKeys: string[], availableSegmentKeys: string[]): Joi.ObjectSchema<any>;
9
10
  export declare function printJoiError(e: Joi.ValidationError): void;
package/lib/linter.js CHANGED
@@ -48,9 +48,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.lintProject = exports.printJoiError = exports.getTestsJoiSchema = exports.getFeatureJoiSchema = exports.getGroupJoiSchema = exports.getSegmentJoiSchema = exports.getConditionsJoiSchema = exports.getAttributeJoiSchema = void 0;
49
49
  // for use in node only
50
50
  var fs = require("fs");
51
- var path = require("path");
52
51
  var Joi = require("joi");
53
- var utils_1 = require("./utils");
52
+ var datasource_1 = require("./datasource/datasource");
54
53
  function getAttributeJoiSchema() {
55
54
  var attributeJoiSchema = Joi.object({
56
55
  archived: Joi.boolean(),
@@ -109,7 +108,7 @@ function getSegmentJoiSchema(projectConfig, conditionsJoiSchema) {
109
108
  return segmentJoiSchema;
110
109
  }
111
110
  exports.getSegmentJoiSchema = getSegmentJoiSchema;
112
- function getGroupJoiSchema(projectConfig, availableFeatureKeys) {
111
+ function getGroupJoiSchema(projectConfig, datasource, availableFeatureKeys) {
113
112
  var _a;
114
113
  var groupJoiSchema = Joi.object({
115
114
  description: Joi.string().required(),
@@ -128,11 +127,11 @@ function getGroupJoiSchema(projectConfig, availableFeatureKeys) {
128
127
  var maxPercentageForRule = slot.percentage;
129
128
  if (slot.feature) {
130
129
  var featureKey = slot.feature;
131
- var featurePath = path.join(projectConfig.featuresDirectoryPath, "".concat(featureKey, ".yml"));
132
- var parsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(featurePath, "utf8"));
133
- if (!parsedFeature) {
130
+ var featureExists = datasource.entityExists("feature", featureKey);
131
+ if (!featureExists) {
134
132
  throw new Error("feature ".concat(featureKey, " not found"));
135
133
  }
134
+ var parsedFeature = datasource.readFeature(featureKey);
136
135
  var environmentKeys = Object.keys(parsedFeature.environments);
137
136
  for (var _a = 0, environmentKeys_1 = environmentKeys; _a < environmentKeys_1.length; _a++) {
138
137
  var environmentKey = environmentKeys_1[_a];
@@ -335,7 +334,7 @@ function printJoiError(e) {
335
334
  });
336
335
  }
337
336
  exports.printJoiError = printJoiError;
338
- function checkForCircularDependencyInRequired(featuresDirectoryPath, featureKey, required, chain) {
337
+ function checkForCircularDependencyInRequired(datasource, featureKey, required, chain) {
339
338
  if (chain === void 0) { chain = []; }
340
339
  if (!required) {
341
340
  return;
@@ -350,37 +349,36 @@ function checkForCircularDependencyInRequired(featuresDirectoryPath, featureKey,
350
349
  if (chain.indexOf(featureKey) > -1) {
351
350
  throw new Error("circular dependency found: ".concat(chain.join(" -> ")));
352
351
  }
353
- var requiredFeaturePath = path.join(featuresDirectoryPath, "".concat(requiredKey, ".yml"));
354
- if (!fs.existsSync(requiredFeaturePath)) {
352
+ var requiredFeatureExists = datasource.entityExists("feature", requiredKey);
353
+ if (!requiredFeatureExists) {
355
354
  throw new Error("required feature \"".concat(requiredKey, "\" not found"));
356
355
  }
357
- var requiredParsedFeature = (0, utils_1.parseYaml)(fs.readFileSync(requiredFeaturePath, "utf8"));
356
+ var requiredParsedFeature = datasource.readFeature(requiredKey);
358
357
  if (requiredParsedFeature.required) {
359
- checkForCircularDependencyInRequired(featuresDirectoryPath, featureKey, requiredParsedFeature.required, chain);
358
+ checkForCircularDependencyInRequired(datasource, featureKey, requiredParsedFeature.required, chain);
360
359
  }
361
360
  }
362
361
  }
363
362
  function lintProject(projectConfig) {
364
363
  return __awaiter(this, void 0, void 0, function () {
365
- var hasError, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys, attributeFilePaths, attributeJoiSchema, _i, attributeFilePaths_1, filePath, key, parsed, e_1, segmentFilePaths, conditionsJoiSchema, segmentJoiSchema, _a, segmentFilePaths_1, filePath, key, parsed, e_2, groupFilePaths, groupJoiSchema, _b, groupFilePaths_1, filePath, key, parsed, e_3, featureFilePaths, featureJoiSchema, _c, featureFilePaths_1, filePath, key, parsed, e_4, testFilePaths, testsJoiSchema, _d, testFilePaths_1, filePath, key, parsed, e_5;
364
+ var hasError, datasource, availableAttributeKeys, availableSegmentKeys, availableFeatureKeys, attributes, attributeJoiSchema, _i, attributes_1, key, parsed, e_1, segments, conditionsJoiSchema, segmentJoiSchema, _a, segments_1, key, parsed, e_2, groups, groupJoiSchema, _b, groups_1, key, parsed, e_3, features, featureJoiSchema, _c, features_1, key, parsed, e_4, tests, testsJoiSchema, _d, tests_1, key, parsed, e_5;
366
365
  return __generator(this, function (_e) {
367
366
  switch (_e.label) {
368
367
  case 0:
369
368
  hasError = false;
369
+ datasource = new datasource_1.Datasource(projectConfig);
370
370
  availableAttributeKeys = [];
371
371
  availableSegmentKeys = [];
372
372
  availableFeatureKeys = [];
373
- // lint attributes
374
- console.log("Linting attributes...\n");
375
- attributeFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.attributesDirectoryPath));
373
+ attributes = datasource.listAttributes();
374
+ console.log("Linting ".concat(attributes.length, " attributes...\n"));
376
375
  attributeJoiSchema = getAttributeJoiSchema();
377
- _i = 0, attributeFilePaths_1 = attributeFilePaths;
376
+ _i = 0, attributes_1 = attributes;
378
377
  _e.label = 1;
379
378
  case 1:
380
- if (!(_i < attributeFilePaths_1.length)) return [3 /*break*/, 6];
381
- filePath = attributeFilePaths_1[_i];
382
- key = path.basename(filePath, ".yml");
383
- parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
379
+ if (!(_i < attributes_1.length)) return [3 /*break*/, 6];
380
+ key = attributes_1[_i];
381
+ parsed = datasource.readAttribute(key);
384
382
  availableAttributeKeys.push(key);
385
383
  _e.label = 2;
386
384
  case 2:
@@ -404,18 +402,16 @@ function lintProject(projectConfig) {
404
402
  _i++;
405
403
  return [3 /*break*/, 1];
406
404
  case 6:
407
- // lint segments
408
- console.log("\nLinting segments...\n");
409
- segmentFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.segmentsDirectoryPath));
405
+ segments = datasource.listSegments();
406
+ console.log("\nLinting ".concat(segments.length, " segments...\n"));
410
407
  conditionsJoiSchema = getConditionsJoiSchema(projectConfig, availableAttributeKeys);
411
408
  segmentJoiSchema = getSegmentJoiSchema(projectConfig, conditionsJoiSchema);
412
- _a = 0, segmentFilePaths_1 = segmentFilePaths;
409
+ _a = 0, segments_1 = segments;
413
410
  _e.label = 7;
414
411
  case 7:
415
- if (!(_a < segmentFilePaths_1.length)) return [3 /*break*/, 12];
416
- filePath = segmentFilePaths_1[_a];
417
- key = path.basename(filePath, ".yml");
418
- parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
412
+ if (!(_a < segments_1.length)) return [3 /*break*/, 12];
413
+ key = segments_1[_a];
414
+ parsed = datasource.readSegment(key);
419
415
  availableSegmentKeys.push(key);
420
416
  _e.label = 8;
421
417
  case 8:
@@ -439,18 +435,16 @@ function lintProject(projectConfig) {
439
435
  _a++;
440
436
  return [3 /*break*/, 7];
441
437
  case 12:
442
- // lint groups
443
- console.log("\nLinting groups...\n");
444
438
  if (!fs.existsSync(projectConfig.groupsDirectoryPath)) return [3 /*break*/, 18];
445
- groupFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.groupsDirectoryPath));
446
- groupJoiSchema = getGroupJoiSchema(projectConfig, availableFeatureKeys);
447
- _b = 0, groupFilePaths_1 = groupFilePaths;
439
+ groups = datasource.listGroups();
440
+ console.log("\nLinting ".concat(groups.length, " groups...\n"));
441
+ groupJoiSchema = getGroupJoiSchema(projectConfig, datasource, availableFeatureKeys);
442
+ _b = 0, groups_1 = groups;
448
443
  _e.label = 13;
449
444
  case 13:
450
- if (!(_b < groupFilePaths_1.length)) return [3 /*break*/, 18];
451
- filePath = groupFilePaths_1[_b];
452
- key = path.basename(filePath, ".yml");
453
- parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
445
+ if (!(_b < groups_1.length)) return [3 /*break*/, 18];
446
+ key = groups_1[_b];
447
+ parsed = datasource.readGroup(key);
454
448
  _e.label = 14;
455
449
  case 14:
456
450
  _e.trys.push([14, 16, , 17]);
@@ -473,18 +467,15 @@ function lintProject(projectConfig) {
473
467
  _b++;
474
468
  return [3 /*break*/, 13];
475
469
  case 18:
476
- // @TODO: feature cannot exist in multiple groups
477
- // lint features
478
- console.log("\nLinting features...\n");
479
- featureFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.featuresDirectoryPath));
470
+ features = datasource.listFeatures();
471
+ console.log("\nLinting ".concat(features.length, " features...\n"));
480
472
  featureJoiSchema = getFeatureJoiSchema(projectConfig, conditionsJoiSchema, availableSegmentKeys, availableFeatureKeys);
481
- _c = 0, featureFilePaths_1 = featureFilePaths;
473
+ _c = 0, features_1 = features;
482
474
  _e.label = 19;
483
475
  case 19:
484
- if (!(_c < featureFilePaths_1.length)) return [3 /*break*/, 25];
485
- filePath = featureFilePaths_1[_c];
486
- key = path.basename(filePath, ".yml");
487
- parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
476
+ if (!(_c < features_1.length)) return [3 /*break*/, 25];
477
+ key = features_1[_c];
478
+ parsed = datasource.readFeature(key);
488
479
  availableFeatureKeys.push(key);
489
480
  _e.label = 20;
490
481
  case 20:
@@ -507,7 +498,7 @@ function lintProject(projectConfig) {
507
498
  case 23:
508
499
  if (parsed.required) {
509
500
  try {
510
- checkForCircularDependencyInRequired(projectConfig.featuresDirectoryPath, key, parsed.required);
501
+ checkForCircularDependencyInRequired(datasource, key, parsed.required);
511
502
  }
512
503
  catch (e) {
513
504
  console.log(" =>", key);
@@ -520,18 +511,16 @@ function lintProject(projectConfig) {
520
511
  _c++;
521
512
  return [3 /*break*/, 19];
522
513
  case 25:
523
- // lint tests
524
- console.log("\nLinting tests...\n");
525
514
  if (!fs.existsSync(projectConfig.testsDirectoryPath)) return [3 /*break*/, 31];
526
- testFilePaths = (0, utils_1.getYAMLFiles)(path.join(projectConfig.testsDirectoryPath));
515
+ tests = datasource.listTests();
516
+ console.log("\nLinting ".concat(tests.length, " tests...\n"));
527
517
  testsJoiSchema = getTestsJoiSchema(projectConfig, availableFeatureKeys, availableSegmentKeys);
528
- _d = 0, testFilePaths_1 = testFilePaths;
518
+ _d = 0, tests_1 = tests;
529
519
  _e.label = 26;
530
520
  case 26:
531
- if (!(_d < testFilePaths_1.length)) return [3 /*break*/, 31];
532
- filePath = testFilePaths_1[_d];
533
- key = path.basename(filePath, ".yml");
534
- parsed = (0, utils_1.parseYaml)(fs.readFileSync(filePath, "utf8"));
521
+ if (!(_d < tests_1.length)) return [3 /*break*/, 31];
522
+ key = tests_1[_d];
523
+ parsed = datasource.readTest(key);
535
524
  _e.label = 27;
536
525
  case 27:
537
526
  _e.trys.push([27, 29, , 30]);
package/lib/linter.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
package/lib/site.js CHANGED
@@ -17,6 +17,7 @@ var path = require("path");
17
17
  var http = require("http");
18
18
  var child_process_1 = require("child_process");
19
19
  var mkdirp = require("mkdirp");
20
+ var datasource_1 = require("./datasource/datasource");
20
21
  var utils_1 = require("./utils");
21
22
  function getRelativePaths(rootDirectoryPath, projectConfig) {
22
23
  var relativeFeaturesPath = path.relative(rootDirectoryPath, projectConfig.featuresDirectoryPath);
@@ -71,7 +72,7 @@ function generateHistory(rootDirectoryPath, projectConfig) {
71
72
  var lineSplit = line.split(path.sep);
72
73
  var fileName = lineSplit.pop();
73
74
  var relativeDir = lineSplit.join(path.sep);
74
- var key = fileName.replace(".yml", "");
75
+ var key = fileName.replace("." + projectConfig.parser, "");
75
76
  var type = "feature";
76
77
  if (relativeDir === relativeSegmentsPath_1) {
77
78
  type = "segment";
@@ -179,6 +180,7 @@ function generateSiteSearchIndex(rootDirectoryPath, projectConfig, fullHistory,
179
180
  features: [],
180
181
  },
181
182
  };
183
+ var datasource = new datasource_1.Datasource(projectConfig);
182
184
  /**
183
185
  * Links
184
186
  */
@@ -189,9 +191,9 @@ function generateSiteSearchIndex(rootDirectoryPath, projectConfig, fullHistory,
189
191
  prefix = rootDirectoryPath.replace(repoDetails.topLevelPath + "/", "") + "/";
190
192
  }
191
193
  result.links = {
192
- attribute: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeAttributesPath + "/{{key}}.yml"),
193
- segment: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeSegmentsPath + "/{{key}}.yml"),
194
- feature: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeFeaturesPath + "/{{key}}.yml"),
194
+ attribute: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeAttributesPath + "/{{key}}." + datasource.getExtension()),
195
+ segment: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeSegmentsPath + "/{{key}}." + datasource.getExtension()),
196
+ feature: repoDetails.blobUrl.replace("{{blobPath}}", prefix + relativeFeaturesPath + "/{{key}}." + datasource.getExtension()),
195
197
  commit: repoDetails.commitUrl,
196
198
  };
197
199
  }
@@ -203,14 +205,9 @@ function generateSiteSearchIndex(rootDirectoryPath, projectConfig, fullHistory,
203
205
  var attributesUsedInSegments = {};
204
206
  var segmentsUsedInFeatures = {};
205
207
  // features
206
- var featureFiles = fs.readdirSync(projectConfig.featuresDirectoryPath);
207
- featureFiles
208
- .filter(function (fileName) { return fileName.endsWith(".yml"); })
209
- .forEach(function (fileName) {
210
- var filePath = path.join(projectConfig.featuresDirectoryPath, fileName);
211
- var entityName = fileName.replace(".yml", "");
212
- var fileContent = fs.readFileSync(filePath, "utf8");
213
- var parsed = (0, utils_1.parseYaml)(fileContent);
208
+ var featureFiles = datasource.listFeatures();
209
+ featureFiles.forEach(function (entityName) {
210
+ var parsed = datasource.readFeature(entityName);
214
211
  if (Array.isArray(parsed.variations)) {
215
212
  parsed.variations.forEach(function (variation) {
216
213
  if (!variation.variables) {
@@ -276,14 +273,9 @@ function generateSiteSearchIndex(rootDirectoryPath, projectConfig, fullHistory,
276
273
  result.entities.features.push(__assign(__assign({}, parsed), { key: entityName, lastModified: getLastModifiedFromHistory(fullHistory, "feature", entityName) }));
277
274
  });
278
275
  // segments
279
- var segmentFiles = fs.readdirSync(projectConfig.segmentsDirectoryPath);
280
- segmentFiles
281
- .filter(function (fileName) { return fileName.endsWith(".yml"); })
282
- .forEach(function (fileName) {
283
- var filePath = path.join(projectConfig.segmentsDirectoryPath, fileName);
284
- var entityName = fileName.replace(".yml", "");
285
- var fileContent = fs.readFileSync(filePath, "utf8");
286
- var parsed = (0, utils_1.parseYaml)(fileContent);
276
+ var segmentFiles = datasource.listSegments();
277
+ segmentFiles.forEach(function (entityName) {
278
+ var parsed = datasource.readSegment(entityName);
287
279
  (0, utils_1.extractAttributeKeysFromConditions)(parsed.conditions).forEach(function (attributeKey) {
288
280
  if (!attributesUsedInSegments[attributeKey]) {
289
281
  attributesUsedInSegments[attributeKey] = new Set();
@@ -293,14 +285,9 @@ function generateSiteSearchIndex(rootDirectoryPath, projectConfig, fullHistory,
293
285
  result.entities.segments.push(__assign(__assign({}, parsed), { key: entityName, lastModified: getLastModifiedFromHistory(fullHistory, "segment", entityName), usedInFeatures: Array.from(segmentsUsedInFeatures[entityName] || []) }));
294
286
  });
295
287
  // attributes
296
- var attributeFiles = fs.readdirSync(projectConfig.attributesDirectoryPath);
297
- attributeFiles
298
- .filter(function (fileName) { return fileName.endsWith(".yml"); })
299
- .forEach(function (fileName) {
300
- var filePath = path.join(projectConfig.attributesDirectoryPath, fileName);
301
- var entityName = fileName.replace(".yml", "");
302
- var fileContent = fs.readFileSync(filePath, "utf8");
303
- var parsed = (0, utils_1.parseYaml)(fileContent);
288
+ var attributeFiles = datasource.listAttributes();
289
+ attributeFiles.forEach(function (entityName) {
290
+ var parsed = datasource.readAttribute(entityName);
304
291
  result.entities.attributes.push(__assign(__assign({}, parsed), { key: entityName, lastModified: getLastModifiedFromHistory(fullHistory, "attribute", entityName), usedInFeatures: Array.from(attributesUsedInFeatures[entityName] || []), usedInSegments: Array.from(attributesUsedInSegments[entityName] || []) }));
305
292
  });
306
293
  return result;