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
@@ -2,7 +2,7 @@
2
2
  "name": "ballerina-core",
3
3
  "author": "Dr. Giuseppe Maggiore",
4
4
  "private": false,
5
- "version": "1.0.140",
5
+ "version": "1.0.141",
6
6
  "main": "main.ts",
7
7
  "scripts": {
8
8
  "prettier": "prettier --write ."
@@ -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(lookupName, typesMap, t.args[0]);
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(lookupName, typesMap, t.args[0]);
126
- const traverseValue = self(lookupName, typesMap, t.args[1]);
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(lookupName, typesMap, t.args[0]);
171
- const traverseRightValue = self(lookupName, typesMap, t.args[1]);
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
- : ValueOrErrors.Operations.All(
181
- List(
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) => self(lookupName, typesMap, 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
- !PredicateValue.Operations.IsUnionCase(v)
224
- ? ValueOrErrors.Default.throwOne(
225
- Errors.Default.singleton([
226
- "not a ValueUnion (from union)",
227
- JSON.stringify(v),
228
- ]),
229
- )
230
- : MapRepo.Operations.tryFindWithError<
231
- string,
232
- TypeInstancesExtractor,
233
- Errors<string[]>
234
- >(v.caseName, traverseCases, () =>
235
- Errors.Default.singleton([
236
- `unexpected union case ${v.caseName}`,
237
- JSON.stringify(v),
238
- ]),
239
- ).Then((traverseCase: TypeInstancesExtractor) =>
240
- traverseCase(v.fields),
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(lookupName, typesMap, t.args[0]);
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(