@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.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +19 -0
- package/coverage/clover.xml +114 -110
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +23 -23
- package/coverage/lcov-report/lib/builder/allocator.js.html +1 -1
- package/coverage/lcov-report/lib/builder/index.html +15 -15
- package/coverage/lcov-report/lib/builder/traffic.js.html +27 -9
- package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +1 -1
- package/coverage/lcov-report/lib/tester/index.html +1 -1
- package/coverage/lcov-report/src/builder/allocator.ts.html +1 -1
- package/coverage/lcov-report/src/builder/index.html +15 -15
- package/coverage/lcov-report/src/builder/traffic.ts.html +30 -9
- package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +1 -1
- package/coverage/lcov-report/src/tester/index.html +1 -1
- package/coverage/lcov.info +203 -192
- package/lib/builder/traffic.js +6 -0
- package/lib/builder/traffic.js.map +1 -1
- package/lib/linter/lintProject.js +27 -21
- package/lib/linter/lintProject.js.map +1 -1
- package/package.json +2 -2
- package/src/builder/traffic.ts +7 -0
- package/src/linter/lintProject.ts +16 -13
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
196
|
+
_e.label = 31;
|
|
193
197
|
case 31:
|
|
194
|
-
|
|
195
|
-
|
|
198
|
+
_e.trys.push([31, 34, , 35]);
|
|
199
|
+
return [4 /*yield*/, datasource.readGroup(key)];
|
|
196
200
|
case 32:
|
|
197
|
-
_e.
|
|
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
|
-
|
|
231
|
+
_e.label = 39;
|
|
227
232
|
case 39:
|
|
228
|
-
|
|
229
|
-
|
|
233
|
+
_e.trys.push([39, 42, , 43]);
|
|
234
|
+
return [4 /*yield*/, datasource.readTest(key)];
|
|
230
235
|
case 40:
|
|
231
|
-
_e.
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,yBAA2B;AAE3B,qDAA0D;AAC1D,qDAA2D;AAC3D,iDAAsD;AACtD,6CAAkD;AAClD,iDAAsD;AACtD,2CAAiD;AAEjD,qEAAiF;AACjF,iDAAgD;AAGhD,SAAsB,WAAW,CAAC,IAAkB;;;;;;oBAC1C,aAAa,GAAiB,IAAI,cAArB,EAAE,UAAU,GAAK,IAAI,WAAT,CAAU;oBAEvC,QAAQ,GAAG,KAAK,CAAC;oBAEf,sBAAsB,GAAa,EAAE,CAAC;oBACtC,oBAAoB,GAAa,EAAE,CAAC;oBACpC,oBAAoB,GAAa,EAAE,CAAC;oBAGvB,qBAAM,UAAU,CAAC,cAAc,EAAE,EAAA;;oBAA9C,UAAU,GAAG,SAAiC;oBACpD,OAAO,CAAC,GAAG,CAAC,kBAAW,UAAU,CAAC,MAAM,qBAAkB,CAAC,CAAC;oBAEtD,kBAAkB,GAAG,IAAA,uCAAqB,GAAE,CAAC;0BAEvB,EAAV,yBAAU;;;yBAAV,CAAA,wBAAU,CAAA;oBAAjB,GAAG
|
|
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.
|
|
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": "
|
|
60
|
+
"gitHead": "7d9cd4515e1e871e146aec5faca70156e2b7f16f"
|
|
61
61
|
}
|
package/src/builder/traffic.ts
CHANGED
|
@@ -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
|
-
|
|
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);
|