@featurevisor/core 0.64.0 → 0.64.2

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.
@@ -68,13 +68,13 @@ function lintProject(deps) {
68
68
  case 2:
69
69
  if (!(_i < attributes_1.length)) return [3 /*break*/, 8];
70
70
  key = attributes_1[_i];
71
- return [4 /*yield*/, datasource.readAttribute(key)];
71
+ _e.label = 3;
72
72
  case 3:
73
+ _e.trys.push([3, 6, , 7]);
74
+ return [4 /*yield*/, datasource.readAttribute(key)];
75
+ case 4:
73
76
  parsed = _e.sent();
74
77
  availableAttributeKeys.push(key);
75
- _e.label = 4;
76
- case 4:
77
- _e.trys.push([4, 6, , 7]);
78
78
  return [4 /*yield*/, attributeJoiSchema.validateAsync(parsed)];
79
79
  case 5:
80
80
  _e.sent();
@@ -82,6 +82,7 @@ function lintProject(deps) {
82
82
  case 6:
83
83
  e_1 = _e.sent();
84
84
  console.log(" =>", key);
85
+ console.log("");
85
86
  if (e_1 instanceof Joi.ValidationError) {
86
87
  (0, printJoiError_1.printJoiError)(e_1);
87
88
  }
@@ -104,13 +105,13 @@ function lintProject(deps) {
104
105
  case 10:
105
106
  if (!(_a < segments_1.length)) return [3 /*break*/, 16];
106
107
  key = segments_1[_a];
107
- return [4 /*yield*/, datasource.readSegment(key)];
108
+ _e.label = 11;
108
109
  case 11:
110
+ _e.trys.push([11, 14, , 15]);
111
+ return [4 /*yield*/, datasource.readSegment(key)];
112
+ case 12:
109
113
  parsed = _e.sent();
110
114
  availableSegmentKeys.push(key);
111
- _e.label = 12;
112
- case 12:
113
- _e.trys.push([12, 14, , 15]);
114
115
  return [4 /*yield*/, segmentJoiSchema.validateAsync(parsed)];
115
116
  case 13:
116
117
  _e.sent();
@@ -118,6 +119,7 @@ function lintProject(deps) {
118
119
  case 14:
119
120
  e_2 = _e.sent();
120
121
  console.log(" =>", key);
122
+ console.log("");
121
123
  if (e_2 instanceof Joi.ValidationError) {
122
124
  (0, printJoiError_1.printJoiError)(e_2);
123
125
  }
@@ -139,13 +141,14 @@ function lintProject(deps) {
139
141
  case 18:
140
142
  if (!(_b < features_1.length)) return [3 /*break*/, 28];
141
143
  key = features_1[_b];
142
- return [4 /*yield*/, datasource.readFeature(key)];
144
+ parsed = void 0;
145
+ _e.label = 19;
143
146
  case 19:
147
+ _e.trys.push([19, 22, , 23]);
148
+ return [4 /*yield*/, datasource.readFeature(key)];
149
+ case 20:
144
150
  parsed = _e.sent();
145
151
  availableFeatureKeys.push(key);
146
- _e.label = 20;
147
- case 20:
148
- _e.trys.push([20, 22, , 23]);
149
152
  return [4 /*yield*/, featureJoiSchema.validateAsync(parsed)];
150
153
  case 21:
151
154
  _e.sent();
@@ -153,6 +156,7 @@ function lintProject(deps) {
153
156
  case 22:
154
157
  e_3 = _e.sent();
155
158
  console.log(" =>", key);
159
+ console.log("");
156
160
  if (e_3 instanceof Joi.ValidationError) {
157
161
  (0, printJoiError_1.printJoiError)(e_3);
158
162
  }
@@ -162,7 +166,7 @@ function lintProject(deps) {
162
166
  hasError = true;
163
167
  return [3 /*break*/, 23];
164
168
  case 23:
165
- if (!parsed.required) return [3 /*break*/, 27];
169
+ if (!(parsed && parsed.required)) return [3 /*break*/, 27];
166
170
  _e.label = 24;
167
171
  case 24:
168
172
  _e.trys.push([24, 26, , 27]);
@@ -189,12 +193,12 @@ function lintProject(deps) {
189
193
  case 30:
190
194
  if (!(_c < groups_1.length)) return [3 /*break*/, 36];
191
195
  key = groups_1[_c];
192
- return [4 /*yield*/, datasource.readGroup(key)];
196
+ _e.label = 31;
193
197
  case 31:
194
- parsed = _e.sent();
195
- _e.label = 32;
198
+ _e.trys.push([31, 34, , 35]);
199
+ return [4 /*yield*/, datasource.readGroup(key)];
196
200
  case 32:
197
- _e.trys.push([32, 34, , 35]);
201
+ parsed = _e.sent();
198
202
  return [4 /*yield*/, groupJoiSchema.validateAsync(parsed)];
199
203
  case 33:
200
204
  _e.sent();
@@ -202,6 +206,7 @@ function lintProject(deps) {
202
206
  case 34:
203
207
  e_5 = _e.sent();
204
208
  console.log(" =>", key);
209
+ console.log("");
205
210
  if (e_5 instanceof Joi.ValidationError) {
206
211
  (0, printJoiError_1.printJoiError)(e_5);
207
212
  }
@@ -223,12 +228,12 @@ function lintProject(deps) {
223
228
  case 38:
224
229
  if (!(_d < tests_1.length)) return [3 /*break*/, 44];
225
230
  key = tests_1[_d];
226
- return [4 /*yield*/, datasource.readTest(key)];
231
+ _e.label = 39;
227
232
  case 39:
228
- parsed = _e.sent();
229
- _e.label = 40;
233
+ _e.trys.push([39, 42, , 43]);
234
+ return [4 /*yield*/, datasource.readTest(key)];
230
235
  case 40:
231
- _e.trys.push([40, 42, , 43]);
236
+ parsed = _e.sent();
232
237
  return [4 /*yield*/, testsJoiSchema.validateAsync(parsed)];
233
238
  case 41:
234
239
  _e.sent();
@@ -236,6 +241,7 @@ function lintProject(deps) {
236
241
  case 42:
237
242
  e_6 = _e.sent();
238
243
  console.log(" =>", key);
244
+ console.log("");
239
245
  if (e_6 instanceof Joi.ValidationError) {
240
246
  (0, printJoiError_1.printJoiError)(e_6);
241
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/linter/lintProject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lintProject.js","sourceRoot":"","sources":["../../src/linter/lintProject.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@featurevisor/core",
3
- "version": "0.64.0",
3
+ "version": "0.64.2",
4
4
  "description": "Core package of Featurevisor for Node.js usage",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -57,5 +57,5 @@
57
57
  "@types/js-yaml": "^4.0.5",
58
58
  "@types/tar": "^6.1.4"
59
59
  },
60
- "gitHead": "a65e3b0b639e7d2f7550fc29857a2cba61cfe172"
60
+ "gitHead": "7d9cd4515e1e871e146aec5faca70156e2b7f16f"
61
61
  }
@@ -8,6 +8,13 @@ export function detectIfVariationsChanged(
8
8
  existingFeature?: ExistingFeature, // from state file
9
9
  ): boolean {
10
10
  if (!existingFeature || typeof existingFeature.variations === "undefined") {
11
+ if (Array.isArray(yamlVariations) && yamlVariations.length > 0) {
12
+ // feature did not previously have any variations,
13
+ // but now variations have been added
14
+ return true;
15
+ }
16
+
17
+ // variations didn't exist before, and not even now
11
18
  return false;
12
19
  }
13
20
 
@@ -28,13 +28,13 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
28
28
  const attributeJoiSchema = getAttributeJoiSchema();
29
29
 
30
30
  for (const key of attributes) {
31
- const parsed = await datasource.readAttribute(key);
32
- availableAttributeKeys.push(key);
33
-
34
31
  try {
32
+ const parsed = await datasource.readAttribute(key);
33
+ availableAttributeKeys.push(key);
35
34
  await attributeJoiSchema.validateAsync(parsed);
36
35
  } catch (e) {
37
36
  console.log(" =>", key);
37
+ console.log("");
38
38
 
39
39
  if (e instanceof Joi.ValidationError) {
40
40
  printJoiError(e);
@@ -54,13 +54,13 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
54
54
  const segmentJoiSchema = getSegmentJoiSchema(projectConfig, conditionsJoiSchema);
55
55
 
56
56
  for (const key of segments) {
57
- const parsed = await datasource.readSegment(key);
58
- availableSegmentKeys.push(key);
59
-
60
57
  try {
58
+ const parsed = await datasource.readSegment(key);
59
+ availableSegmentKeys.push(key);
61
60
  await segmentJoiSchema.validateAsync(parsed);
62
61
  } catch (e) {
63
62
  console.log(" =>", key);
63
+ console.log("");
64
64
 
65
65
  if (e instanceof Joi.ValidationError) {
66
66
  printJoiError(e);
@@ -84,13 +84,16 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
84
84
  );
85
85
 
86
86
  for (const key of features) {
87
- const parsed = await datasource.readFeature(key);
88
- availableFeatureKeys.push(key);
87
+ let parsed;
89
88
 
90
89
  try {
90
+ parsed = await datasource.readFeature(key);
91
+ availableFeatureKeys.push(key);
92
+
91
93
  await featureJoiSchema.validateAsync(parsed);
92
94
  } catch (e) {
93
95
  console.log(" =>", key);
96
+ console.log("");
94
97
 
95
98
  if (e instanceof Joi.ValidationError) {
96
99
  printJoiError(e);
@@ -101,7 +104,7 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
101
104
  hasError = true;
102
105
  }
103
106
 
104
- if (parsed.required) {
107
+ if (parsed && parsed.required) {
105
108
  try {
106
109
  await checkForCircularDependencyInRequired(datasource, key, parsed.required);
107
110
  } catch (e) {
@@ -120,12 +123,12 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
120
123
  const groupJoiSchema = getGroupJoiSchema(projectConfig, datasource, availableFeatureKeys);
121
124
 
122
125
  for (const key of groups) {
123
- const parsed = await datasource.readGroup(key);
124
-
125
126
  try {
127
+ const parsed = await datasource.readGroup(key);
126
128
  await groupJoiSchema.validateAsync(parsed);
127
129
  } catch (e) {
128
130
  console.log(" =>", key);
131
+ console.log("");
129
132
 
130
133
  if (e instanceof Joi.ValidationError) {
131
134
  printJoiError(e);
@@ -150,12 +153,12 @@ export async function lintProject(deps: Dependencies): Promise<boolean> {
150
153
  );
151
154
 
152
155
  for (const key of tests) {
153
- const parsed = await datasource.readTest(key);
154
-
155
156
  try {
157
+ const parsed = await datasource.readTest(key);
156
158
  await testsJoiSchema.validateAsync(parsed);
157
159
  } catch (e) {
158
160
  console.log(" =>", key);
161
+ console.log("");
159
162
 
160
163
  if (e instanceof Joi.ValidationError) {
161
164
  printJoiError(e);