ballerina-core 1.0.261 → 1.0.262

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 (100) hide show
  1. package/.prettierignore +3 -0
  2. package/.prettierrc +5 -0
  3. package/Dockerfile +7 -0
  4. package/bin/src/forms/domains/dispatched-forms/runner/template.d.ts.map +1 -1
  5. package/bin/src/forms/domains/launcher/coroutines/runner.d.ts.map +1 -1
  6. package/bin/src/forms/domains/launcher/template.d.ts.map +1 -1
  7. package/package.json +5 -1
  8. package/tsconfig.json +5 -1
  9. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.d.ts +0 -57
  10. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.d.ts.map +0 -1
  11. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.js +0 -85
  12. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/domains/forms/domains/layout/state.js.map +0 -1
  13. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.d.ts +0 -57
  14. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.d.ts.map +0 -1
  15. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.js +0 -170
  16. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification/statev2.js.map +0 -1
  17. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.d.ts +0 -43
  18. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.d.ts.map +0 -1
  19. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.js +0 -42
  20. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/enum/state.js.map +0 -1
  21. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.d.ts +0 -78
  22. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.d.ts.map +0 -1
  23. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.js +0 -93
  24. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/list/state.js.map +0 -1
  25. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.d.ts +0 -129
  26. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.d.ts.map +0 -1
  27. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.js +0 -141
  28. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/lookup/state.js.map +0 -1
  29. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.d.ts +0 -53
  30. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.d.ts.map +0 -1
  31. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.js +0 -76
  32. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/map/state.js.map +0 -1
  33. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts +0 -81
  34. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.d.ts.map +0 -1
  35. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.js +0 -98
  36. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/nestedRenderer/state.js.map +0 -1
  37. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.d.ts +0 -76
  38. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.d.ts.map +0 -1
  39. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.js +0 -107
  40. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/one/state.js.map +0 -1
  41. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.d.ts +0 -27
  42. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.d.ts.map +0 -1
  43. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.js +0 -25
  44. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/primitive/state.js.map +0 -1
  45. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.d.ts +0 -61
  46. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.d.ts.map +0 -1
  47. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.js +0 -64
  48. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/readOnly/state.js.map +0 -1
  49. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts +0 -54
  50. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.d.ts.map +0 -1
  51. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js +0 -70
  52. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/domains/recordFieldRenderer/state.js.map +0 -1
  53. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.d.ts +0 -60
  54. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.d.ts.map +0 -1
  55. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.js +0 -144
  56. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/record/state.js.map +0 -1
  57. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.d.ts +0 -35
  58. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.d.ts.map +0 -1
  59. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.js +0 -45
  60. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/stream/state.js.map +0 -1
  61. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.d.ts +0 -60
  62. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.d.ts.map +0 -1
  63. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.js +0 -75
  64. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sum/state.js.map +0 -1
  65. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.d.ts +0 -32
  66. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.d.ts.map +0 -1
  67. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.js +0 -41
  68. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/sumUnitDate/state.js.map +0 -1
  69. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.d.ts +0 -51
  70. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.d.ts.map +0 -1
  71. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js +0 -58
  72. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/domains/tableCellRenderer/state.js.map +0 -1
  73. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.d.ts +0 -102
  74. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.d.ts.map +0 -1
  75. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.js +0 -189
  76. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/table/state.js.map +0 -1
  77. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.d.ts +0 -49
  78. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.d.ts.map +0 -1
  79. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.js +0 -83
  80. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/tuple/state.js.map +0 -1
  81. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.d.ts +0 -52
  82. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.d.ts.map +0 -1
  83. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.js +0 -91
  84. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/domains/union/state.js.map +0 -1
  85. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.d.ts +0 -126
  86. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.d.ts.map +0 -1
  87. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.js +0 -221
  88. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/forms/domains/renderer/state.js.map +0 -1
  89. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.d.ts +0 -550
  90. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.d.ts.map +0 -1
  91. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.js +0 -1086
  92. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/domains/types/state.js.map +0 -1
  93. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.d.ts +0 -139
  94. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.d.ts.map +0 -1
  95. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.js +0 -338
  96. package/bin/src/forms/domains/dispatched-forms/deserializer/domains/specification-v2/state.js.map +0 -1
  97. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts +0 -34
  98. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.d.ts.map +0 -1
  99. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js +0 -145
  100. package/bin/src/forms/domains/dispatched-forms/runner/coroutines/runner.js.map +0 -1
@@ -1,1086 +0,0 @@
1
- import { Map } from "immutable";
2
- import { ValueOrErrors } from "../../../../../../../../collections/domains/valueOrErrors/state";
3
- import {
4
- DispatchGenericTypes,
5
- MapRepo,
6
- isString,
7
- } from "../../../../../../../../../main";
8
- export const DispatchisString = (_) => typeof _ == "string";
9
- export const DispatchIsObject = (_) => typeof _ == "object";
10
- export const DispatchIsGenericType = (_) =>
11
- _ && DispatchGenericTypes.includes(_);
12
- export const DispatchHasFun = (_) =>
13
- DispatchIsObject(_) && "fun" in _ && DispatchisString(_.fun);
14
- export const DispatchHasArgs = (_) =>
15
- DispatchIsObject(_) && "args" in _ && Array.isArray(_.args);
16
- export const DispatchPrimitiveTypeNames = [
17
- "unit",
18
- "guid", //resolves to string
19
- "entityIdString", //resolves to string
20
- "entityIdUUID", //resolves to string
21
- "calculatedDisplayValue", //resolves to string
22
- "string",
23
- "number",
24
- "boolean",
25
- "Date",
26
- "base64File",
27
- "secret",
28
- ];
29
- const STRINGY_TYPES = [
30
- "guid",
31
- "entityIdUUID",
32
- "entityIdString",
33
- "calculatedDisplayValue",
34
- ];
35
- export const SerializedType = {
36
- isExtendedType: (type) =>
37
- typeof type == "object" &&
38
- "extends" in type &&
39
- Array.isArray(type.extends) &&
40
- type.extends.length > 0 &&
41
- type.extends.every(DispatchisString),
42
- hasFields: (type) => typeof type == "object" && "fields" in type,
43
- isPrimitive: (_, injectedPrimitives) =>
44
- Boolean(
45
- DispatchPrimitiveTypeNames.some((__) => _ == __) ||
46
- (injectedPrimitives === null || injectedPrimitives === void 0
47
- ? void 0
48
- : injectedPrimitives.has(_)),
49
- ),
50
- isApplication: (_) =>
51
- DispatchHasFun(_) && DispatchIsGenericType(_.fun) && DispatchHasArgs(_),
52
- isLookup: (_, forms) => DispatchisString(_) && forms.has(_),
53
- isList: (_) =>
54
- SerializedType.isApplication(_) && _.fun == "List" && _.args.length == 1,
55
- isMap: (_) =>
56
- SerializedType.isApplication(_) && _.fun == "Map" && _.args.length == 2,
57
- isSum: (_) =>
58
- SerializedType.isApplication(_) && _.fun == "Sum" && _.args.length == 2,
59
- isSumUnitDate: (_) => typeof _ == "string" && _ == "SumUnitDate",
60
- isSingleSelection: (_) =>
61
- SerializedType.isApplication(_) &&
62
- _.fun == "SingleSelection" &&
63
- _.args.length == 1,
64
- isMultiSelection: (_) =>
65
- SerializedType.isApplication(_) &&
66
- _.fun == "MultiSelection" &&
67
- _.args.length == 1,
68
- isUnion: (_) =>
69
- DispatchHasFun(_) &&
70
- DispatchIsGenericType(_.fun) &&
71
- DispatchHasArgs(_) &&
72
- _.fun == "Union" &&
73
- _.args.length > 0 &&
74
- _.args.every(
75
- (arg) =>
76
- (DispatchIsObject(arg) && "caseName" in arg && !("fields" in arg)) ||
77
- ("fields" in arg &&
78
- (DispatchisString(arg.fields) || DispatchIsObject(arg.fields))),
79
- ),
80
- isTuple: (_) => SerializedType.isApplication(_) && _.fun == "Tuple",
81
- isRecord: (_) =>
82
- _ != null &&
83
- typeof _ == "object" &&
84
- "fields" in _ &&
85
- (DispatchIsObject(_.fields) || DispatchisString(_.fields)),
86
- isTable: (_) =>
87
- SerializedType.isApplication(_) && _.fun == "Table" && _.args.length == 1,
88
- isOption: (_) =>
89
- typeof _ == "object" &&
90
- "fun" in _ &&
91
- _.fun == "Option" &&
92
- "args" in _ &&
93
- Array.isArray(_.args) &&
94
- _.args.length == 1,
95
- isUnit: (_) => _ == "unit",
96
- isKeyOf: (_) =>
97
- typeof _ == "object" &&
98
- "fun" in _ &&
99
- _.fun == "KeyOf" &&
100
- "args" in _ &&
101
- Array.isArray(_.args) &&
102
- (_.args.length == 1 || (_.args.length == 2 && Array.isArray(_.args[1]))) &&
103
- DispatchisString(_.args[0]),
104
- isOne: (_) =>
105
- SerializedType.isApplication(_) && _.fun == "One" && _.args.length == 1,
106
- isReadOnly: (_) =>
107
- SerializedType.isApplication(_) &&
108
- _.fun == "ReadOnly" &&
109
- _.args.length == 1,
110
- isRecordFields: (_) =>
111
- typeof _ == "object" && _ != null && !("fun" in _) && !("args" in _),
112
- isTranslationOverride: (_) =>
113
- typeof _ == "object" &&
114
- _ != null &&
115
- "fun" in _ &&
116
- _.fun == "TranslationOverride" &&
117
- "args" in _ &&
118
- Array.isArray(_.args) &&
119
- _.args.length == 2 &&
120
- DispatchisString(_.args[0]),
121
- };
122
- export const UnionType = {
123
- SerializeToString: (serializedArgs) => {
124
- return `[union; cases: {${serializedArgs.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
125
- },
126
- };
127
- export const RecordType = {
128
- SerializeToString: (serializedFields) => {
129
- return `[record; fields: {${serializedFields.map((v, k) => `${k}: ${v}`).join(", ")}}]`;
130
- },
131
- };
132
- export const LookupType = {
133
- SerializeToString: (name) => {
134
- return `${name}`;
135
- },
136
- };
137
- export const DispatchPrimitiveType = {
138
- SerializeToString: (name) => {
139
- return `[primitive; name: ${String(name)}]`;
140
- },
141
- };
142
- export const SingleSelectionType = {
143
- SerializeToString: (serializedArgs) => {
144
- return `[singleSelection; args: [${serializedArgs.join(", ")}]]`;
145
- },
146
- };
147
- export const MultiSelectionType = {
148
- SerializeToString: (serializedArgs) => {
149
- return `[multiSelection; args: [${serializedArgs.join(", ")}]]`;
150
- },
151
- };
152
- export const ListType = {
153
- SerializeToString: (serializedArgs) => {
154
- return `[list; args: [${serializedArgs.join(", ")}]]`;
155
- },
156
- };
157
- export const TupleType = {
158
- SerializeToString: (serializedArgs) => {
159
- return `[tuple; args: [${serializedArgs.join(", ")}]]`;
160
- },
161
- };
162
- export const SumType = {
163
- SerializeToString: (serializedArgs) => {
164
- return `[sum; args: [${serializedArgs.join(", ")}]]`;
165
- },
166
- };
167
- export const SumNType = {
168
- SerializeToString: (serializedArgs, arity) => {
169
- return `[sumN; arity: ${arity}; args: [${serializedArgs.join(", ")}]]`;
170
- },
171
- };
172
- export const MapType = {
173
- SerializeToString: (serializedArgs) => {
174
- return `[map; args: [${serializedArgs.join(", ")}]]`;
175
- },
176
- };
177
- export const TableType = {
178
- SerializeToString: (serializedArg) => {
179
- return `[table; arg: ${serializedArg}]`;
180
- },
181
- };
182
- export const ReadOnlyType = {
183
- SerializeToString: (serializedArg) => {
184
- return `[readOnly; arg: ${serializedArg}]`;
185
- },
186
- };
187
- export const OneType = {
188
- SerializeToString: (serializedArg) => {
189
- return `[one; arg: ${serializedArg}]`;
190
- },
191
- };
192
- export const FilterContainsType = {
193
- SerializeToString: (serializedContains) => {
194
- return `[filter; contains: ${serializedContains}]`;
195
- },
196
- };
197
- export const FilterEqualsToType = {
198
- SerializeToString: (serializedEqualsTo) => {
199
- return `[filter; equalsTo: ${serializedEqualsTo}]`;
200
- },
201
- };
202
- export const FilterNotEqualsToType = {
203
- SerializeToString: (serializedNotEqualsTo) => {
204
- return `[filter; != ${serializedNotEqualsTo}]`;
205
- },
206
- };
207
- export const FilterGreaterThanOrEqualsToType = {
208
- SerializeToString: (serializedGreaterThanOrEqualsTo) => {
209
- return `[filter; >= ${serializedGreaterThanOrEqualsTo}]`;
210
- },
211
- };
212
- export const FilterGreaterThanType = {
213
- SerializeToString: (serializedGreaterThan) => {
214
- return `[filter; > ${serializedGreaterThan}]`;
215
- },
216
- };
217
- export const FilterIsNotNullType = {
218
- SerializeToString: () => {
219
- return `[filter; !=null]`;
220
- },
221
- };
222
- export const FilterIsNullType = {
223
- SerializeToString: () => {
224
- return `[filter; =null]`;
225
- },
226
- };
227
- export const FilterSmallerThanOrEqualsToType = {
228
- SerializeToString: (serializedSmallerThanOrEqualsTo) => {
229
- return `[filter; <= ${serializedSmallerThanOrEqualsTo}]`;
230
- },
231
- };
232
- export const FilterSmallerThanType = {
233
- SerializeToString: (serializedSmallerThan) => {
234
- return `[filter; < ${serializedSmallerThan}]`;
235
- },
236
- };
237
- export const FilterStartsWithType = {
238
- SerializeToString: (serializedStartsWith) => {
239
- return `[filter; startsWith ${serializedStartsWith}]`;
240
- },
241
- };
242
- export const FilterTypeKinds = [
243
- "contains",
244
- "=",
245
- "!=",
246
- ">=",
247
- ">",
248
- "!=null",
249
- "=null",
250
- "<=",
251
- "<",
252
- "startsWith",
253
- ];
254
- export const DispatchParsedType = {
255
- Default: {
256
- table: (arg) => ({
257
- kind: "table",
258
- arg,
259
- asString: () => TableType.SerializeToString(arg.asString()),
260
- }),
261
- record: (fields) => ({
262
- kind: "record",
263
- fields,
264
- asString: () =>
265
- RecordType.SerializeToString(fields.map((v) => v.asString())),
266
- }),
267
- primitive: (name) => ({
268
- kind: "primitive",
269
- name,
270
- asString: () => DispatchPrimitiveType.SerializeToString(name),
271
- }),
272
- singleSelection: (args) => ({
273
- kind: "singleSelection",
274
- args,
275
- asString: () =>
276
- SingleSelectionType.SerializeToString(args.map((v) => v.asString())),
277
- }),
278
- multiSelection: (args) => ({
279
- kind: "multiSelection",
280
- args,
281
- asString: () =>
282
- MultiSelectionType.SerializeToString(args.map((v) => v.asString())),
283
- }),
284
- list: (args) => ({
285
- kind: "list",
286
- args,
287
- asString: () => ListType.SerializeToString(args.map((v) => v.asString())),
288
- }),
289
- tuple: (args) => ({
290
- kind: "tuple",
291
- args,
292
- asString: () =>
293
- TupleType.SerializeToString(args.map((v) => v.asString())),
294
- }),
295
- sum: (args) => ({
296
- kind: "sum",
297
- args,
298
- asString: () => SumType.SerializeToString(args.map((v) => v.asString())),
299
- }),
300
- sumN: (args) => ({
301
- kind: "sumN",
302
- args,
303
- asString: () =>
304
- SumNType.SerializeToString(
305
- args.map((v) => v.asString()),
306
- args.length,
307
- ),
308
- }),
309
- map: (args) => ({
310
- kind: "map",
311
- args,
312
- asString: () => MapType.SerializeToString(args.map((v) => v.asString())),
313
- }),
314
- union: (args) => ({
315
- kind: "union",
316
- args,
317
- asString: () =>
318
- UnionType.SerializeToString(args.map((v) => v.asString())),
319
- }),
320
- readOnly: (arg) => ({
321
- kind: "readOnly",
322
- arg,
323
- asString: () => ReadOnlyType.SerializeToString(arg.asString()),
324
- }),
325
- lookup: (name) => ({
326
- kind: "lookup",
327
- name,
328
- asString: () => LookupType.SerializeToString(name),
329
- }),
330
- one: (arg) => ({
331
- kind: "one",
332
- arg,
333
- asString: () => OneType.SerializeToString(arg.asString()),
334
- }),
335
- filterContains: (contains) => ({
336
- kind: "contains",
337
- contains,
338
- asString: () => FilterContainsType.SerializeToString(contains.asString()),
339
- }),
340
- filterEqualsTo: (equalsTo) => ({
341
- kind: "=",
342
- equalsTo,
343
- asString: () => FilterEqualsToType.SerializeToString(equalsTo.asString()),
344
- }),
345
- filterNotEqualsTo: (notEqualsTo) => ({
346
- kind: "!=",
347
- notEqualsTo,
348
- asString: () =>
349
- FilterNotEqualsToType.SerializeToString(notEqualsTo.asString()),
350
- }),
351
- filterGreaterThanOrEqualsTo: (greaterThanOrEqualsTo) => ({
352
- kind: ">=",
353
- greaterThanOrEqualsTo,
354
- asString: () =>
355
- FilterGreaterThanOrEqualsToType.SerializeToString(
356
- greaterThanOrEqualsTo.asString(),
357
- ),
358
- }),
359
- filterGreaterThan: (greaterThan) => ({
360
- kind: ">",
361
- greaterThan,
362
- asString: () =>
363
- FilterGreaterThanType.SerializeToString(greaterThan.asString()),
364
- }),
365
- filterIsNotNull: () => ({
366
- kind: "!=null",
367
- asString: () => FilterIsNotNullType.SerializeToString(),
368
- }),
369
- filterIsNull: () => ({
370
- kind: "=null",
371
- asString: () => FilterIsNullType.SerializeToString(),
372
- }),
373
- filterSmallerThanOrEqualsTo: (smallerThanOrEqualsTo) => ({
374
- kind: "<=",
375
- smallerThanOrEqualsTo,
376
- asString: () =>
377
- FilterSmallerThanOrEqualsToType.SerializeToString(
378
- smallerThanOrEqualsTo.asString(),
379
- ),
380
- }),
381
- filterSmallerThan: (smallerThan) => ({
382
- kind: "<",
383
- smallerThan,
384
- asString: () =>
385
- FilterSmallerThanType.SerializeToString(smallerThan.asString()),
386
- }),
387
- filterStartsWith: (startsWith) => ({
388
- kind: "startsWith",
389
- startsWith,
390
- asString: () =>
391
- FilterStartsWithType.SerializeToString(startsWith.asString()),
392
- }),
393
- },
394
- Operations: {
395
- // We don't use this at the moment, if we need it, then we can fix
396
- // Equals: <T>(
397
- // fst: DispatchParsedType<T>,
398
- // snd: DispatchParsedType<T>,
399
- // ): boolean =>
400
- // fst.kind == "record" && snd.kind == "record"
401
- // ? fst.name == snd.name
402
- // : fst.kind == "table" && snd.kind == "table"
403
- // ? fst.name == snd.name
404
- // : fst.kind == "one" && snd.kind == "one"
405
- // ? fst.name == snd.name
406
- // : fst.kind == "lookup" && snd.kind == "lookup"
407
- // ? fst.name == snd.name
408
- // : fst.kind == "primitive" && snd.kind == "primitive"
409
- // ? fst.name == snd.name
410
- // : fst.kind == "list" && snd.kind == "list"
411
- // ? fst.name == snd.name
412
- // : fst.kind == "singleSelection" &&
413
- // snd.kind == "singleSelection"
414
- // ? fst.name == snd.name
415
- // : fst.kind == "multiSelection" &&
416
- // snd.kind == "multiSelection"
417
- // ? fst.name == snd.name
418
- // : fst.kind == "map" && snd.kind == "map"
419
- // ? fst.name == snd.name
420
- // : fst.kind == "sum" && snd.kind == "sum"
421
- // ? fst.name == snd.name
422
- // : fst.kind == "tuple" && snd.kind == "tuple"
423
- // ? fst.name == snd.name &&
424
- // fst.args.length == snd.args.length &&
425
- // fst.args.every((v, i) =>
426
- // DispatchParsedType.Operations.Equals(
427
- // v,
428
- // snd.args[i],
429
- // ),
430
- // )
431
- // : fst.kind == "union" && snd.kind == "union"
432
- // ? fst.args.size == snd.args.size &&
433
- // fst.args.every(
434
- // (v, i) => v.name == snd.args.get(i)!.name,
435
- // )
436
- // : false,
437
- ParseRawKeyOf: (rawType, typeNames, serializedTypes, alreadyParsedTypes) =>
438
- (alreadyParsedTypes.has(rawType.args[0])
439
- ? alreadyParsedTypes
440
- .get(rawType.args[0])
441
- .Then((parsedType) =>
442
- ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]),
443
- )
444
- : DispatchParsedType.Operations.ParseRawType(
445
- rawType.args[0],
446
- serializedTypes[rawType.args[0]],
447
- typeNames,
448
- serializedTypes,
449
- alreadyParsedTypes,
450
- )
451
- )
452
- .Then((parsingResult) =>
453
- parsingResult[0].kind != "record"
454
- ? ValueOrErrors.Default.throwOne(
455
- `Error: ${JSON.stringify(parsingResult[0])} is not a record type`,
456
- )
457
- : ValueOrErrors.Default.return([
458
- DispatchParsedType.Default.union(
459
- Map(
460
- parsingResult[0].fields
461
- .keySeq()
462
- .filter(
463
- (key) =>
464
- rawType.args[1] == undefined ||
465
- !rawType.args[1].includes(key),
466
- )
467
- .toArray()
468
- .map((key) => [
469
- key,
470
- DispatchParsedType.Default.record(Map()),
471
- ]),
472
- ),
473
- ),
474
- parsingResult[1],
475
- ]),
476
- )
477
- .MapErrors((errors) =>
478
- errors.map((error) => `${error}\n...When parsing keyOf type`),
479
- ),
480
- SerializeToString: (type) => {
481
- switch (type.kind) {
482
- case "primitive":
483
- return DispatchPrimitiveType.SerializeToString(type.name);
484
- case "record":
485
- return RecordType.SerializeToString(
486
- type.fields.map((v) =>
487
- DispatchParsedType.Operations.SerializeToString(v),
488
- ),
489
- );
490
- case "table":
491
- return TableType.SerializeToString(
492
- DispatchParsedType.Operations.SerializeToString(type.arg),
493
- );
494
- case "one":
495
- return OneType.SerializeToString(
496
- DispatchParsedType.Operations.SerializeToString(type.arg),
497
- );
498
- case "singleSelection":
499
- return SingleSelectionType.SerializeToString(
500
- type.args.map((v) =>
501
- DispatchParsedType.Operations.SerializeToString(v),
502
- ),
503
- );
504
- case "multiSelection":
505
- return MultiSelectionType.SerializeToString(
506
- type.args.map((v) =>
507
- DispatchParsedType.Operations.SerializeToString(v),
508
- ),
509
- );
510
- case "list":
511
- return ListType.SerializeToString(
512
- type.args.map((v) =>
513
- DispatchParsedType.Operations.SerializeToString(v),
514
- ),
515
- );
516
- case "tuple":
517
- return TupleType.SerializeToString(
518
- type.args.map((v) =>
519
- DispatchParsedType.Operations.SerializeToString(v),
520
- ),
521
- );
522
- case "sum":
523
- return SumType.SerializeToString(
524
- type.args.map((v) =>
525
- DispatchParsedType.Operations.SerializeToString(v),
526
- ),
527
- );
528
- case "sumN":
529
- return SumNType.SerializeToString(
530
- type.args.map((v) =>
531
- DispatchParsedType.Operations.SerializeToString(v),
532
- ),
533
- type.args.length,
534
- );
535
- case "map":
536
- return MapType.SerializeToString(
537
- type.args.map((v) =>
538
- DispatchParsedType.Operations.SerializeToString(v),
539
- ),
540
- );
541
- case "union":
542
- return UnionType.SerializeToString(
543
- type.args.map((v) =>
544
- DispatchParsedType.Operations.SerializeToString(v),
545
- ),
546
- );
547
- case "lookup":
548
- return LookupType.SerializeToString(type.name);
549
- case "contains":
550
- return FilterContainsType.SerializeToString(type.contains.asString());
551
- case "=":
552
- return FilterEqualsToType.SerializeToString(type.equalsTo.asString());
553
- case "!=":
554
- return FilterNotEqualsToType.SerializeToString(
555
- type.notEqualsTo.asString(),
556
- );
557
- case ">=":
558
- return FilterGreaterThanOrEqualsToType.SerializeToString(
559
- type.greaterThanOrEqualsTo.asString(),
560
- );
561
- case ">":
562
- return FilterGreaterThanType.SerializeToString(
563
- type.greaterThan.asString(),
564
- );
565
- case "!=null":
566
- return FilterIsNotNullType.SerializeToString();
567
- case "=null":
568
- return FilterIsNullType.SerializeToString();
569
- case "<=":
570
- return FilterSmallerThanOrEqualsToType.SerializeToString(
571
- type.smallerThanOrEqualsTo.asString(),
572
- );
573
- case "<":
574
- return FilterSmallerThanType.SerializeToString(
575
- type.smallerThan.asString(),
576
- );
577
- case "startsWith":
578
- return FilterStartsWithType.SerializeToString(
579
- type.startsWith.asString(),
580
- );
581
- default:
582
- throw new Error(`Unknown type: ${JSON.stringify(type)}`);
583
- }
584
- },
585
- GetExtendedRecordTypes: (extendedTypeName, alreadyParsedTypes) => {
586
- return MapRepo.Operations.tryFindWithError(
587
- extendedTypeName,
588
- alreadyParsedTypes,
589
- () => `cannot find extended type ${extendedTypeName} in types`,
590
- ).Then((extendedType) =>
591
- extendedType.Then((extendedType) =>
592
- extendedType.kind != "record"
593
- ? ValueOrErrors.Default.throwOne(
594
- `Error: ${JSON.stringify(extendedType)} is not a record type`,
595
- )
596
- : ValueOrErrors.Default.return([extendedTypeName, extendedType]),
597
- ),
598
- );
599
- },
600
- ParseRecord: (
601
- typeName,
602
- rawType,
603
- typeNames,
604
- serializedTypes,
605
- alreadyParsedTypes,
606
- injectedPrimitives,
607
- ) =>
608
- !SerializedType.isRecord(rawType)
609
- ? ValueOrErrors.Default.throwOne(
610
- `Error: ${JSON.stringify(rawType)} is not a valid record`,
611
- )
612
- : (SerializedType.isExtendedType(rawType)
613
- ? rawType.extends
614
- .reduce(
615
- (acc, extendedTypeName) =>
616
- acc.Then(([resultMap, accumulatedAlreadyParsedTypes]) =>
617
- accumulatedAlreadyParsedTypes.has(extendedTypeName)
618
- ? DispatchParsedType.Operations.GetExtendedRecordTypes(
619
- extendedTypeName,
620
- accumulatedAlreadyParsedTypes,
621
- ).Then(([extendedTypeName, recordType]) =>
622
- ValueOrErrors.Default.return([
623
- resultMap.set(extendedTypeName, recordType),
624
- accumulatedAlreadyParsedTypes,
625
- ]),
626
- )
627
- : serializedTypes[extendedTypeName] == undefined
628
- ? ValueOrErrors.Default.throwOne(
629
- `Error: cannot find extended type ${extendedTypeName} in types`,
630
- )
631
- : DispatchParsedType.Operations.ParseRawType(
632
- extendedTypeName,
633
- serializedTypes[extendedTypeName],
634
- typeNames,
635
- serializedTypes,
636
- accumulatedAlreadyParsedTypes,
637
- injectedPrimitives,
638
- ).Then((parsedType) =>
639
- parsedType[0].kind == "record"
640
- ? ValueOrErrors.Default.return([
641
- resultMap.set(
642
- extendedTypeName,
643
- parsedType[0],
644
- ),
645
- parsedType[1],
646
- ])
647
- : ValueOrErrors.Default.throwOne(
648
- `Error: ${JSON.stringify(parsedType[0])} is not a record type`,
649
- ),
650
- ),
651
- ),
652
- ValueOrErrors.Default.return([Map(), alreadyParsedTypes]),
653
- )
654
- .MapErrors((errors) =>
655
- errors.map(
656
- (error) => `${error}\n...When parsing extended types`,
657
- ),
658
- )
659
- .Then(
660
- ([
661
- parsedExtendedRecordTypesMap,
662
- accumulatedAlreadyParsedTypes,
663
- ]) =>
664
- ValueOrErrors.Default.return([
665
- parsedExtendedRecordTypesMap,
666
- accumulatedAlreadyParsedTypes,
667
- ]),
668
- )
669
- : ValueOrErrors.Default.return([Map(), alreadyParsedTypes])
670
- ).Then(
671
- ([parsedExtendedRecordTypesMap, accumulatedAlreadyParsedTypes]) =>
672
- Object.entries(rawType.fields)
673
- .reduce(
674
- (acc, [fieldName, fieldType]) =>
675
- acc.Then(
676
- ([
677
- parsedFieldsMap,
678
- accumulatedAlreadyParsedTypesForFields,
679
- ]) =>
680
- DispatchParsedType.Operations.ParseRawType(
681
- fieldName,
682
- fieldType,
683
- typeNames,
684
- serializedTypes,
685
- accumulatedAlreadyParsedTypesForFields,
686
- injectedPrimitives,
687
- ).Then((parsedField) =>
688
- ValueOrErrors.Default.return([
689
- parsedFieldsMap.set(fieldName, parsedField[0]),
690
- parsedField[1],
691
- ]),
692
- ),
693
- ),
694
- ValueOrErrors.Default.return([
695
- Map(),
696
- accumulatedAlreadyParsedTypes,
697
- ]),
698
- )
699
- .Then(
700
- ([parsedFieldsMap, accumulatedAlreadyParsedTypesForFields]) =>
701
- ValueOrErrors.Default.return(
702
- DispatchParsedType.Default.record(
703
- parsedFieldsMap.merge(
704
- parsedExtendedRecordTypesMap.reduce(
705
- (acc, type) => acc.merge(type.fields),
706
- Map(),
707
- ),
708
- ),
709
- ),
710
- ).Then((parsedRecord) =>
711
- ValueOrErrors.Default.return([
712
- parsedRecord,
713
- parsedExtendedRecordTypesMap.reduce(
714
- (acc, type, name) =>
715
- acc.set(name, ValueOrErrors.Default.return(type)),
716
- accumulatedAlreadyParsedTypesForFields,
717
- ),
718
- ]),
719
- ),
720
- ),
721
- ),
722
- ParseRawFilterType: (rawFilterType, arg) => {
723
- if (typeof rawFilterType != "string") {
724
- return ValueOrErrors.Default.throwOne(`rawType is not a string`);
725
- }
726
- switch (rawFilterType) {
727
- case "contains":
728
- return ValueOrErrors.Default.return(
729
- DispatchParsedType.Default.filterContains(arg),
730
- );
731
- case "equalsTo":
732
- return ValueOrErrors.Default.return(
733
- DispatchParsedType.Default.filterEqualsTo(arg),
734
- );
735
- case "startswith":
736
- return ValueOrErrors.Default.return(
737
- DispatchParsedType.Default.filterStartsWith(arg),
738
- );
739
- case "!=":
740
- return ValueOrErrors.Default.return(
741
- DispatchParsedType.Default.filterNotEqualsTo(arg),
742
- );
743
- case "=":
744
- return ValueOrErrors.Default.return(
745
- DispatchParsedType.Default.filterEqualsTo(arg),
746
- );
747
- case ">=":
748
- return ValueOrErrors.Default.return(
749
- DispatchParsedType.Default.filterGreaterThanOrEqualsTo(arg),
750
- );
751
- case ">":
752
- return ValueOrErrors.Default.return(
753
- DispatchParsedType.Default.filterGreaterThan(arg),
754
- );
755
- case "<=":
756
- return ValueOrErrors.Default.return(
757
- DispatchParsedType.Default.filterSmallerThanOrEqualsTo(arg),
758
- );
759
- case "<":
760
- return ValueOrErrors.Default.return(
761
- DispatchParsedType.Default.filterSmallerThan(arg),
762
- );
763
- case "=null":
764
- return ValueOrErrors.Default.return(
765
- DispatchParsedType.Default.filterIsNull(),
766
- );
767
- case "!=null":
768
- return ValueOrErrors.Default.return(
769
- DispatchParsedType.Default.filterIsNotNull(),
770
- );
771
- default:
772
- return ValueOrErrors.Default.throwOne(
773
- `Unknown filter type: ${rawFilterType}`,
774
- );
775
- }
776
- },
777
- ParseRawType: (
778
- typeName,
779
- rawType,
780
- typeNames,
781
- serializedTypes,
782
- alreadyParsedTypes,
783
- injectedPrimitives,
784
- ) => {
785
- if (
786
- alreadyParsedTypes.has(typeName) &&
787
- !SerializedType.isLookup(rawType, typeNames)
788
- )
789
- return alreadyParsedTypes
790
- .get(typeName)
791
- .Then((parsedType) =>
792
- ValueOrErrors.Default.return([parsedType, alreadyParsedTypes]),
793
- );
794
- const result = (() => {
795
- if (SerializedType.isPrimitive(rawType, injectedPrimitives))
796
- return ValueOrErrors.Default.return([
797
- DispatchParsedType.Default.primitive(
798
- typeof rawType === "string" && STRINGY_TYPES.includes(rawType)
799
- ? "string"
800
- : rawType,
801
- ),
802
- alreadyParsedTypes,
803
- ]);
804
- if (SerializedType.isSingleSelection(rawType))
805
- return DispatchParsedType.Operations.ParseRawType(
806
- `SingleSelection:Element`,
807
- rawType.args[0],
808
- typeNames,
809
- serializedTypes,
810
- alreadyParsedTypes,
811
- injectedPrimitives,
812
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
813
- ValueOrErrors.Default.return([
814
- DispatchParsedType.Default.singleSelection([parsedArg]),
815
- newAlreadyParsedTypes,
816
- ]),
817
- );
818
- if (SerializedType.isMultiSelection(rawType))
819
- return DispatchParsedType.Operations.ParseRawType(
820
- `MultiSelection:Element`,
821
- rawType.args[0],
822
- typeNames,
823
- serializedTypes,
824
- alreadyParsedTypes,
825
- injectedPrimitives,
826
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
827
- ValueOrErrors.Default.return([
828
- DispatchParsedType.Default.multiSelection([parsedArg]),
829
- newAlreadyParsedTypes,
830
- ]),
831
- );
832
- if (SerializedType.isList(rawType))
833
- return DispatchParsedType.Operations.ParseRawType(
834
- `List:Element`,
835
- rawType.args[0],
836
- typeNames,
837
- serializedTypes,
838
- alreadyParsedTypes,
839
- injectedPrimitives,
840
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
841
- ValueOrErrors.Default.return([
842
- DispatchParsedType.Default.list([parsedArg]),
843
- newAlreadyParsedTypes,
844
- ]),
845
- );
846
- if (SerializedType.isTuple(rawType))
847
- return rawType.args
848
- .reduce(
849
- (acc, arg, index) =>
850
- acc.Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) =>
851
- DispatchParsedType.Operations.ParseRawType(
852
- `Tuple:Item ${index + 1}`,
853
- arg,
854
- typeNames,
855
- serializedTypes,
856
- accumulatedAlreadyParsedTypes,
857
- injectedPrimitives,
858
- ).Then((parsedArg) =>
859
- ValueOrErrors.Default.return([
860
- [...parsedArgsArray, parsedArg[0]],
861
- parsedArg[1],
862
- ]),
863
- ),
864
- ),
865
- ValueOrErrors.Default.return([[], alreadyParsedTypes]),
866
- )
867
- .Then(([parsedArgsArray, accumulatedAlreadyParsedTypes]) =>
868
- ValueOrErrors.Default.return([
869
- DispatchParsedType.Default.tuple(parsedArgsArray),
870
- accumulatedAlreadyParsedTypes,
871
- ]),
872
- );
873
- if (SerializedType.isMap(rawType))
874
- return DispatchParsedType.Operations.ParseRawType(
875
- "Map:Key",
876
- rawType.args[0],
877
- typeNames,
878
- serializedTypes,
879
- alreadyParsedTypes,
880
- injectedPrimitives,
881
- ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
882
- DispatchParsedType.Operations.ParseRawType(
883
- "Map:Value",
884
- rawType.args[1],
885
- typeNames,
886
- serializedTypes,
887
- newAlreadyParsedTypes,
888
- injectedPrimitives,
889
- ).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
890
- ValueOrErrors.Default.return([
891
- DispatchParsedType.Default.map([parsedArg0, parsedArg1]),
892
- newAlreadyParsedTypes2,
893
- ]),
894
- ),
895
- );
896
- if (SerializedType.isSum(rawType))
897
- return DispatchParsedType.Operations.ParseRawType(
898
- "Sum:Left",
899
- rawType.args[0],
900
- typeNames,
901
- serializedTypes,
902
- alreadyParsedTypes,
903
- injectedPrimitives,
904
- ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
905
- DispatchParsedType.Operations.ParseRawType(
906
- "Sum:Right",
907
- rawType.args[1],
908
- typeNames,
909
- serializedTypes,
910
- newAlreadyParsedTypes,
911
- injectedPrimitives,
912
- ).Then(([parsedArg1, newAlreadyParsedTypes2]) =>
913
- ValueOrErrors.Default.return([
914
- DispatchParsedType.Default.sum([parsedArg0, parsedArg1]),
915
- newAlreadyParsedTypes2,
916
- ]),
917
- ),
918
- );
919
- if (SerializedType.isRecord(rawType))
920
- return DispatchParsedType.Operations.ParseRecord(
921
- typeName,
922
- rawType,
923
- typeNames,
924
- serializedTypes,
925
- alreadyParsedTypes,
926
- injectedPrimitives,
927
- );
928
- if (SerializedType.isTable(rawType)) {
929
- return DispatchParsedType.Operations.ParseRawType(
930
- "TableArg",
931
- rawType.args[0],
932
- typeNames,
933
- serializedTypes,
934
- alreadyParsedTypes,
935
- injectedPrimitives,
936
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
937
- parsedArg.kind != "lookup"
938
- ? ValueOrErrors.Default.throwOne(
939
- `Error: ${JSON.stringify(parsedArg)} is not a lookup type`,
940
- )
941
- : ValueOrErrors.Default.return([
942
- DispatchParsedType.Default.table(parsedArg),
943
- newAlreadyParsedTypes,
944
- ]),
945
- );
946
- }
947
- if (SerializedType.isLookup(rawType, typeNames)) {
948
- const resolvedType = serializedTypes[rawType];
949
- console.debug(typeName, rawType, resolvedType);
950
- return DispatchParsedType.Operations.ParseRawType(
951
- typeName,
952
- resolvedType,
953
- typeNames,
954
- serializedTypes,
955
- alreadyParsedTypes,
956
- injectedPrimitives,
957
- ).Then(([parsedType, newAlreadyParsedTypes]) =>
958
- ValueOrErrors.Default.return([
959
- DispatchParsedType.Default.lookup(rawType),
960
- newAlreadyParsedTypes.set(
961
- rawType,
962
- ValueOrErrors.Default.return(parsedType),
963
- ),
964
- ]),
965
- );
966
- }
967
- if (SerializedType.isUnit(rawType)) {
968
- return ValueOrErrors.Default.return([
969
- DispatchParsedType.Default.primitive("unit"),
970
- alreadyParsedTypes,
971
- ]);
972
- }
973
- if (SerializedType.isUnion(rawType))
974
- return rawType.args
975
- .reduce(
976
- (acc, unionCase) =>
977
- acc.Then(
978
- ([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
979
- DispatchParsedType.Operations.ParseRawType(
980
- isString(unionCase.fields)
981
- ? unionCase.fields
982
- : `Union:Case ${unionCase.caseName}`,
983
- unionCase.fields == undefined
984
- ? { fields: {} }
985
- : // we allow the record fields to be defined directly in the spec instead of
986
- // inside a fields key
987
- SerializedType.isRecordFields(unionCase.fields)
988
- ? { fields: unionCase.fields }
989
- : unionCase.fields,
990
- typeNames,
991
- serializedTypes,
992
- accumulatedAlreadyParsedTypes,
993
- injectedPrimitives,
994
- ).Then(([parsedType, newAlreadyParsedTypes]) =>
995
- ValueOrErrors.Default.return([
996
- parsedUnionCasesMap.set(unionCase.caseName, parsedType),
997
- newAlreadyParsedTypes,
998
- ]),
999
- ),
1000
- ),
1001
- ValueOrErrors.Default.return([Map(), alreadyParsedTypes]),
1002
- )
1003
- .Then(([parsedUnionCasesMap, accumulatedAlreadyParsedTypes]) =>
1004
- ValueOrErrors.Default.return([
1005
- DispatchParsedType.Default.union(parsedUnionCasesMap),
1006
- accumulatedAlreadyParsedTypes,
1007
- ]),
1008
- );
1009
- if (SerializedType.isOne(rawType)) {
1010
- return DispatchParsedType.Operations.ParseRawType(
1011
- rawType.args[0],
1012
- rawType.args[0],
1013
- typeNames,
1014
- serializedTypes,
1015
- alreadyParsedTypes,
1016
- injectedPrimitives,
1017
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
1018
- parsedArg.kind != "lookup"
1019
- ? ValueOrErrors.Default.throwOne(
1020
- `one content type ${JSON.stringify(parsedArg)} is not a lookup type`,
1021
- )
1022
- : ValueOrErrors.Default.return([
1023
- DispatchParsedType.Default.one(parsedArg),
1024
- newAlreadyParsedTypes,
1025
- ]),
1026
- );
1027
- }
1028
- if (SerializedType.isReadOnly(rawType))
1029
- return DispatchParsedType.Operations.ParseRawType(
1030
- "ReadOnly:Element",
1031
- rawType.args[0],
1032
- typeNames,
1033
- serializedTypes,
1034
- alreadyParsedTypes,
1035
- injectedPrimitives,
1036
- ).Then(([parsedArg, newAlreadyParsedTypes]) =>
1037
- ValueOrErrors.Default.return([
1038
- DispatchParsedType.Default.readOnly(parsedArg),
1039
- newAlreadyParsedTypes,
1040
- ]),
1041
- );
1042
- if (SerializedType.isKeyOf(rawType))
1043
- return DispatchParsedType.Operations.ParseRawKeyOf(
1044
- rawType,
1045
- typeNames,
1046
- serializedTypes,
1047
- alreadyParsedTypes,
1048
- );
1049
- if (SerializedType.isTranslationOverride(rawType))
1050
- return DispatchParsedType.Operations.ParseRawType(
1051
- "TranslationOverride:Language",
1052
- rawType.args[0],
1053
- typeNames,
1054
- serializedTypes,
1055
- alreadyParsedTypes,
1056
- injectedPrimitives,
1057
- ).Then(([parsedArg0, newAlreadyParsedTypes]) =>
1058
- ValueOrErrors.Default.return([
1059
- DispatchParsedType.Default.map([
1060
- DispatchParsedType.Default.singleSelection([parsedArg0]),
1061
- DispatchParsedType.Default.primitive("string"),
1062
- ]),
1063
- newAlreadyParsedTypes,
1064
- ]),
1065
- );
1066
- return ValueOrErrors.Default.throwOne(
1067
- `Unrecognised type "${typeName}" : ${JSON.stringify(rawType)}`,
1068
- );
1069
- })();
1070
- return result.MapErrors((errors) =>
1071
- errors.map((error) => `${error}\n...When parsing type "${typeName}"`),
1072
- );
1073
- },
1074
- ResolveLookupType: (typeName, types) =>
1075
- MapRepo.Operations.tryFindWithError(
1076
- typeName,
1077
- types,
1078
- () => `cannot find lookup type ${typeName} in types`,
1079
- ),
1080
- AsResolvedType: (type, types) =>
1081
- type.kind == "lookup"
1082
- ? DispatchParsedType.Operations.ResolveLookupType(type.name, types)
1083
- : ValueOrErrors.Default.return(type),
1084
- },
1085
- };
1086
- //# sourceMappingURL=state.js.map