ballerina-core 1.0.140 → 1.0.141
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/package.json
CHANGED
|
@@ -20,6 +20,7 @@ export const PredicateValueExtractor = {
|
|
|
20
20
|
lookupName: string,
|
|
21
21
|
typesMap: Map<string, DispatchParsedType<any>>,
|
|
22
22
|
t: DispatchParsedType<any>,
|
|
23
|
+
debugPath: string[],
|
|
23
24
|
): TypeInstancesExtractor => {
|
|
24
25
|
const self = PredicateValueExtractor.Operations.ExtractPredicateValue;
|
|
25
26
|
switch (t.kind) {
|
|
@@ -37,7 +38,7 @@ export const PredicateValueExtractor = {
|
|
|
37
38
|
|
|
38
39
|
return t.name === lookupName
|
|
39
40
|
? (v) => ValueOrErrors.Default.return([v])
|
|
40
|
-
: self(lookupName, typesMap, lookupType);
|
|
41
|
+
: self(lookupName, typesMap, lookupType, debugPath);
|
|
41
42
|
}
|
|
42
43
|
case "primitive":
|
|
43
44
|
return (_) => ValueOrErrors.Default.return([]);
|
|
@@ -54,13 +55,13 @@ export const PredicateValueExtractor = {
|
|
|
54
55
|
// }
|
|
55
56
|
case "record": {
|
|
56
57
|
const traverseRecordFields = t.fields.map((f) =>
|
|
57
|
-
self(lookupName, typesMap, f),
|
|
58
|
+
self(lookupName, typesMap, f, debugPath.concat(f.name.toString())),
|
|
58
59
|
);
|
|
59
60
|
return (v: PredicateValue): ExtractedTypeInstances =>
|
|
60
61
|
!PredicateValue.Operations.IsRecord(v)
|
|
61
62
|
? ValueOrErrors.Default.throwOne(
|
|
62
63
|
Errors.Default.singleton([
|
|
63
|
-
"not a ValueRecord",
|
|
64
|
+
"not a ValueRecord: " + debugPath.join("."),
|
|
64
65
|
JSON.stringify(v),
|
|
65
66
|
]),
|
|
66
67
|
)
|
|
@@ -80,7 +81,12 @@ export const PredicateValueExtractor = {
|
|
|
80
81
|
);
|
|
81
82
|
}
|
|
82
83
|
case "singleSelection": {
|
|
83
|
-
const traverseSingleSelection = self(
|
|
84
|
+
const traverseSingleSelection = self(
|
|
85
|
+
lookupName,
|
|
86
|
+
typesMap,
|
|
87
|
+
t.args[0],
|
|
88
|
+
debugPath.concat(t.args[0].name.toString()),
|
|
89
|
+
);
|
|
84
90
|
return (v) =>
|
|
85
91
|
!PredicateValue.Operations.IsOption(v)
|
|
86
92
|
? ValueOrErrors.Default.throwOne(
|
|
@@ -99,6 +105,7 @@ export const PredicateValueExtractor = {
|
|
|
99
105
|
lookupName,
|
|
100
106
|
typesMap,
|
|
101
107
|
t.args[0],
|
|
108
|
+
debugPath.concat(t.args[0].name.toString()),
|
|
102
109
|
);
|
|
103
110
|
return (v: PredicateValue) =>
|
|
104
111
|
!PredicateValue.Operations.IsRecord(v)
|
|
@@ -122,8 +129,18 @@ export const PredicateValueExtractor = {
|
|
|
122
129
|
);
|
|
123
130
|
}
|
|
124
131
|
case "map": {
|
|
125
|
-
const traverseKey = self(
|
|
126
|
-
|
|
132
|
+
const traverseKey = self(
|
|
133
|
+
lookupName,
|
|
134
|
+
typesMap,
|
|
135
|
+
t.args[0],
|
|
136
|
+
debugPath.concat(t.args[0].name.toString()),
|
|
137
|
+
);
|
|
138
|
+
const traverseValue = self(
|
|
139
|
+
lookupName,
|
|
140
|
+
typesMap,
|
|
141
|
+
t.args[1],
|
|
142
|
+
debugPath.concat(t.args[1].name.toString()),
|
|
143
|
+
);
|
|
127
144
|
return (v: PredicateValue) =>
|
|
128
145
|
!PredicateValue.Operations.IsTuple(v)
|
|
129
146
|
? ValueOrErrors.Default.throwOne(
|
|
@@ -167,8 +184,18 @@ export const PredicateValueExtractor = {
|
|
|
167
184
|
);
|
|
168
185
|
}
|
|
169
186
|
case "sum": {
|
|
170
|
-
const traverseLeftValue = self(
|
|
171
|
-
|
|
187
|
+
const traverseLeftValue = self(
|
|
188
|
+
lookupName,
|
|
189
|
+
typesMap,
|
|
190
|
+
t.args[0],
|
|
191
|
+
debugPath.concat(t.args[0].name.toString()),
|
|
192
|
+
);
|
|
193
|
+
const traverseRightValue = self(
|
|
194
|
+
lookupName,
|
|
195
|
+
typesMap,
|
|
196
|
+
t.args[1],
|
|
197
|
+
debugPath.concat(t.args[1].name.toString()),
|
|
198
|
+
);
|
|
172
199
|
return (v) =>
|
|
173
200
|
!PredicateValue.Operations.IsSum(v)
|
|
174
201
|
? ValueOrErrors.Default.throwOne(
|
|
@@ -177,22 +204,19 @@ export const PredicateValueExtractor = {
|
|
|
177
204
|
JSON.stringify(v),
|
|
178
205
|
]),
|
|
179
206
|
)
|
|
180
|
-
:
|
|
181
|
-
|
|
182
|
-
[traverseLeftValue, traverseRightValue].map(
|
|
183
|
-
(traverseField) => traverseField(v),
|
|
184
|
-
),
|
|
185
|
-
),
|
|
186
|
-
).Map((listFailingChecks) =>
|
|
187
|
-
listFailingChecks.reduce(
|
|
188
|
-
(acc, curr) => [...acc, ...curr],
|
|
189
|
-
[] as Array<PredicateValue>,
|
|
190
|
-
),
|
|
207
|
+
: (v.value.kind === "l" ? traverseLeftValue : traverseRightValue)(
|
|
208
|
+
v.value.value,
|
|
191
209
|
);
|
|
210
|
+
// .Map((listFailingChecks) =>
|
|
211
|
+
// listFailingChecks.reduce(
|
|
212
|
+
// (acc, curr) => [...acc, ...curr],
|
|
213
|
+
// [] as Array<PredicateValue>,
|
|
214
|
+
// ),
|
|
215
|
+
// );
|
|
192
216
|
}
|
|
193
217
|
case "tuple": {
|
|
194
218
|
const traverseTupleFields = t.args.map((f) =>
|
|
195
|
-
self(lookupName, typesMap, f),
|
|
219
|
+
self(lookupName, typesMap, f, debugPath.concat(f.name.toString())),
|
|
196
220
|
);
|
|
197
221
|
return (v) =>
|
|
198
222
|
!PredicateValue.Operations.IsTuple(v)
|
|
@@ -217,34 +241,44 @@ export const PredicateValueExtractor = {
|
|
|
217
241
|
}
|
|
218
242
|
case "union": {
|
|
219
243
|
const traverseCases: Map<string, TypeInstancesExtractor> = t.args
|
|
220
|
-
.map((f) =>
|
|
244
|
+
.map((f) =>
|
|
245
|
+
self(
|
|
246
|
+
lookupName,
|
|
247
|
+
typesMap,
|
|
248
|
+
f,
|
|
249
|
+
debugPath.concat(f.name.toString()),
|
|
250
|
+
),
|
|
251
|
+
)
|
|
221
252
|
.toMap();
|
|
222
253
|
return (v): ExtractedTypeInstances =>
|
|
223
|
-
|
|
224
|
-
? ValueOrErrors.Default.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
254
|
+
PredicateValue.Operations.IsPrimitive(v)
|
|
255
|
+
? ValueOrErrors.Default.return([])
|
|
256
|
+
: !PredicateValue.Operations.IsUnionCase(v)
|
|
257
|
+
? ValueOrErrors.Default.throwOne(
|
|
258
|
+
Errors.Default.singleton([
|
|
259
|
+
"not a ValueUnion (from union)" + debugPath.join("."),
|
|
260
|
+
JSON.stringify(v),
|
|
261
|
+
]),
|
|
262
|
+
)
|
|
263
|
+
: MapRepo.Operations.tryFindWithError<
|
|
264
|
+
string,
|
|
265
|
+
TypeInstancesExtractor,
|
|
266
|
+
Errors<string[]>
|
|
267
|
+
>(v.caseName, traverseCases, () =>
|
|
268
|
+
Errors.Default.singleton([
|
|
269
|
+
`unexpected union case ${v.caseName}`,
|
|
270
|
+
JSON.stringify(v),
|
|
271
|
+
]),
|
|
272
|
+
).Then((traverseCase: TypeInstancesExtractor) =>
|
|
273
|
+
traverseCase(v.fields),
|
|
274
|
+
);
|
|
242
275
|
}
|
|
243
276
|
case "one": {
|
|
244
277
|
const traverseValue: TypeInstancesExtractor = self(
|
|
245
278
|
lookupName,
|
|
246
279
|
typesMap,
|
|
247
280
|
t.args,
|
|
281
|
+
debugPath.concat(t.args.name.toString()),
|
|
248
282
|
);
|
|
249
283
|
return (v): ExtractedTypeInstances =>
|
|
250
284
|
PredicateValue.Operations.IsOption(v)
|
|
@@ -263,7 +297,12 @@ export const PredicateValueExtractor = {
|
|
|
263
297
|
);
|
|
264
298
|
}
|
|
265
299
|
case "list": {
|
|
266
|
-
const traverseListField = self(
|
|
300
|
+
const traverseListField = self(
|
|
301
|
+
lookupName,
|
|
302
|
+
typesMap,
|
|
303
|
+
t.args[0],
|
|
304
|
+
debugPath.concat(t.args[0].name.toString()),
|
|
305
|
+
);
|
|
267
306
|
return (v) =>
|
|
268
307
|
!PredicateValue.Operations.IsTuple(v)
|
|
269
308
|
? ValueOrErrors.Default.throwOne(
|