@kaiko.io/rescript-deser 7.0.0-alpha.1 → 7.0.0

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 (61) hide show
  1. package/README.md +13 -2
  2. package/lib/bs/.compiler.log +2 -2
  3. package/lib/bs/build.ninja +0 -27
  4. package/lib/bs/compiler-info.json +8 -0
  5. package/lib/bs/src/Deser.ast +0 -0
  6. package/lib/bs/src/Deser.cmi +0 -0
  7. package/lib/bs/src/Deser.cmj +0 -0
  8. package/lib/bs/src/Deser.cmt +0 -0
  9. package/lib/bs/{___incremental → src}/Deser.res +19 -29
  10. package/lib/bs/tests/QUnit.ast +0 -0
  11. package/lib/bs/tests/QUnit.cmi +0 -0
  12. package/lib/bs/tests/QUnit.cmj +0 -0
  13. package/lib/bs/tests/QUnit.cmt +0 -0
  14. package/lib/bs/tests/QUnit.res +72 -0
  15. package/lib/bs/tests/index.ast +0 -0
  16. package/lib/bs/tests/index.cmi +0 -0
  17. package/lib/bs/tests/index.cmj +0 -0
  18. package/lib/bs/tests/index.cmt +0 -0
  19. package/lib/bs/{___incremental → tests}/index.res +24 -1
  20. package/lib/es6/src/Deser.js +297 -365
  21. package/lib/es6/tests/index.js +260 -241
  22. package/lib/js/src/Deser.js +293 -361
  23. package/lib/js/tests/index.js +261 -242
  24. package/lib/ocaml/.compiler.log +2 -0
  25. package/lib/ocaml/Deser.ast +0 -0
  26. package/lib/ocaml/Deser.cmi +0 -0
  27. package/lib/ocaml/Deser.cmj +0 -0
  28. package/lib/ocaml/Deser.cmt +0 -0
  29. package/lib/ocaml/Deser.res +341 -0
  30. package/lib/ocaml/QUnit.ast +0 -0
  31. package/lib/ocaml/QUnit.cmi +0 -0
  32. package/lib/ocaml/QUnit.cmj +0 -0
  33. package/lib/ocaml/QUnit.cmt +0 -0
  34. package/lib/ocaml/QUnit.res +72 -0
  35. package/lib/ocaml/index.ast +0 -0
  36. package/lib/ocaml/index.cmi +0 -0
  37. package/lib/ocaml/index.cmj +0 -0
  38. package/lib/ocaml/index.cmt +0 -0
  39. package/lib/ocaml/index.res +212 -0
  40. package/lib/rescript.lock +1 -0
  41. package/package.json +4 -6
  42. package/rescript.json +4 -6
  43. package/src/Deser.res +19 -29
  44. package/tests/QUnit.res +4 -4
  45. package/tests/index.res +24 -1
  46. package/yarn.lock +683 -0
  47. package/lib/bs/.bsbuild +0 -0
  48. package/lib/bs/.bsdeps +0 -9
  49. package/lib/bs/.ninja_log +0 -57
  50. package/lib/bs/.project-files-cache +0 -0
  51. package/lib/bs/.sourcedirs.json +0 -1
  52. package/lib/bs/___incremental/Deser.cmi +0 -0
  53. package/lib/bs/___incremental/Deser.cmj +0 -0
  54. package/lib/bs/___incremental/Deser.cmt +0 -0
  55. package/lib/bs/___incremental/index.cmi +0 -0
  56. package/lib/bs/___incremental/index.cmj +0 -0
  57. package/lib/bs/___incremental/index.cmt +0 -0
  58. package/lib/bs/install.ninja +0 -10
  59. package/lib/bs/src/Deser.d +0 -0
  60. package/lib/bs/tests/QUnit.d +0 -0
  61. package/lib/bs/tests/index.d +0 -1
@@ -1,501 +1,436 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
  'use strict';
3
3
 
4
- var Belt_Array = require("rescript/lib/js/belt_Array.js");
5
- var Core__Dict = require("@rescript/core/lib/js/src/Core__Dict.js");
6
- var Caml_option = require("rescript/lib/js/caml_option.js");
7
- var Core__Array = require("@rescript/core/lib/js/src/Core__Array.js");
8
- var Core__Option = require("@rescript/core/lib/js/src/Core__Option.js");
9
- var Core__Result = require("@rescript/core/lib/js/src/Core__Result.js");
10
- var Caml_exceptions = require("rescript/lib/js/caml_exceptions.js");
11
- var Caml_js_exceptions = require("rescript/lib/js/caml_js_exceptions.js");
4
+ let Belt_Array = require("@rescript/runtime/lib/js/Belt_Array.js");
5
+ let Stdlib_Dict = require("@rescript/runtime/lib/js/Stdlib_Dict.js");
6
+ let Stdlib_Array = require("@rescript/runtime/lib/js/Stdlib_Array.js");
7
+ let Stdlib_Option = require("@rescript/runtime/lib/js/Stdlib_Option.js");
8
+ let Stdlib_Result = require("@rescript/runtime/lib/js/Stdlib_Result.js");
9
+ let Primitive_option = require("@rescript/runtime/lib/js/Primitive_option.js");
10
+ let Primitive_exceptions = require("@rescript/runtime/lib/js/Primitive_exceptions.js");
12
11
 
13
- var FieldValue = {};
12
+ let FieldValue = {};
14
13
 
15
- var $$TypeError = /* @__PURE__ */Caml_exceptions.create("Deser.TypeError");
14
+ let $$TypeError = /* @__PURE__ */Primitive_exceptions.create("Deser.TypeError");
16
15
 
17
16
  function usingString(f) {
18
- return function (value) {
19
- return f(value);
20
- };
17
+ return value => f(value);
21
18
  }
22
19
 
23
20
  function usingInt(f) {
24
- return function (value) {
25
- return f(value);
26
- };
21
+ return value => f(value);
27
22
  }
28
23
 
29
24
  function usingFloat(f) {
30
- return function (value) {
31
- return f(value);
32
- };
25
+ return value => f(value);
33
26
  }
34
27
 
35
28
  function usingBoolean(f) {
36
- return function (value) {
37
- return f(value);
38
- };
29
+ return value => f(value);
39
30
  }
40
31
 
41
32
  function usingArray(f) {
42
- return function (value) {
43
- return f(value);
44
- };
33
+ return value => f(value);
45
34
  }
46
35
 
47
36
  function usingObject(f) {
48
- return function (value) {
49
- return f(value);
50
- };
37
+ return value => f(value);
51
38
  }
52
39
 
53
40
  function variadicInt(hint, fromJs) {
54
41
  return {
55
- TAG: "Morphism",
56
- _0: "Int",
57
- _1: (function (value) {
58
- var internalValue = fromJs(value);
59
- if (internalValue !== undefined) {
60
- return Caml_option.valFromOption(internalValue);
61
- }
62
- throw {
63
- RE_EXN_ID: $$TypeError,
64
- _1: "This Int(" + value.toString() + ") not a valid value here. Hint: " + hint,
65
- Error: new Error()
66
- };
67
- })
68
- };
42
+ TAG: "Morphism",
43
+ _0: "Int",
44
+ _1: value => {
45
+ let internalValue = fromJs(value);
46
+ if (internalValue !== undefined) {
47
+ return Primitive_option.valFromOption(internalValue);
48
+ }
49
+ throw {
50
+ RE_EXN_ID: $$TypeError,
51
+ _1: `This Int(` + value.toString() + `) not a valid value here. Hint: ` + hint,
52
+ Error: new Error()
53
+ };
54
+ }
55
+ };
69
56
  }
70
57
 
71
58
  function variadicString(hint, fromJs) {
72
59
  return {
73
- TAG: "Morphism",
74
- _0: "String",
75
- _1: (function (value) {
76
- var internalValue = fromJs(value);
77
- if (internalValue !== undefined) {
78
- return Caml_option.valFromOption(internalValue);
79
- }
80
- throw {
81
- RE_EXN_ID: $$TypeError,
82
- _1: "This String(\"" + value + "\") not a valid value here. Hint: " + hint,
83
- Error: new Error()
84
- };
85
- })
86
- };
60
+ TAG: "Morphism",
61
+ _0: "String",
62
+ _1: value => {
63
+ let internalValue = fromJs(value);
64
+ if (internalValue !== undefined) {
65
+ return Primitive_option.valFromOption(internalValue);
66
+ }
67
+ throw {
68
+ RE_EXN_ID: $$TypeError,
69
+ _1: `This String("` + value + `") not a valid value here. Hint: ` + hint,
70
+ Error: new Error()
71
+ };
72
+ }
73
+ };
87
74
  }
88
75
 
89
76
  function toString(type_) {
90
77
  if (typeof type_ !== "object") {
91
78
  switch (type_) {
92
79
  case "Any" :
93
- return "Any";
80
+ return "Any";
94
81
  case "String" :
95
- return "String";
82
+ return "String";
96
83
  case "Int" :
97
- return "Integer";
84
+ return "Integer";
98
85
  case "Float" :
99
- return "Float";
86
+ return "Float";
100
87
  case "Boolean" :
101
- return "Boolean";
88
+ return "Boolean";
102
89
  case "Date" :
103
90
  case "Datetime" :
104
- return "Date";
91
+ return "Date";
105
92
  case "Self" :
106
- return "Self (recursive)";
107
-
93
+ return "Self (recursive)";
108
94
  }
109
95
  } else {
110
96
  switch (type_.TAG) {
111
97
  case "Literal" :
112
- return "Literal: " + type_._0;
98
+ return `Literal: ` + type_._0;
113
99
  case "Array" :
114
- return "Array of " + toString(type_._0);
100
+ return "Array of " + toString(type_._0);
115
101
  case "Tuple" :
116
- return "Tuple of (" + type_._0.map(toString).join(", ") + ")";
102
+ return `Tuple of (` + type_._0.map(toString).join(", ") + `)`;
117
103
  case "Object" :
118
- var desc = type_._0.map(function (param) {
119
- return param[0] + ": " + toString(param[1]);
120
- }).join(", ");
121
- return "Object of {" + desc + "}";
104
+ let desc = type_._0.map(param => param[0] + `: ` + toString(param[1])).join(", ");
105
+ return `Object of {` + desc + `}`;
122
106
  case "Optional" :
123
107
  case "OptionalWithDefault" :
124
- return "Null of " + toString(type_._0);
108
+ return "Null of " + toString(type_._0);
125
109
  case "Mapping" :
126
- return "Mapping of " + toString(type_._0);
110
+ return `Mapping of ` + toString(type_._0);
127
111
  case "Deserializer" :
128
- return type_._0.name;
112
+ return type_._0.name;
129
113
  case "Collection" :
130
- return "Collection of " + type_._0.name;
114
+ return "Collection of " + type_._0.name;
131
115
  case "DefaultWhenInvalid" :
132
- return "Protected " + toString(type_._0);
116
+ return `Protected ` + toString(type_._0);
133
117
  case "Morphism" :
134
- return toString(type_._0) + " to apply a morphism";
135
-
118
+ return toString(type_._0) + " to apply a morphism";
136
119
  }
137
120
  }
138
121
  }
139
122
 
140
123
  function _taggedToString(tagged) {
141
- if (!Array.isArray(tagged) && (tagged === null || typeof tagged !== "object") && typeof tagged !== "number" && typeof tagged !== "string" && typeof tagged !== "boolean") {
124
+ if (tagged === null) {
142
125
  return "Null";
143
126
  }
144
127
  if (Array.isArray(tagged)) {
145
- return "Array(" + Core__Option.getOr(JSON.stringify(tagged), "...") + ")";
128
+ return `Array(` + Stdlib_Option.getOr(JSON.stringify(tagged), "...") + `)`;
146
129
  }
147
130
  switch (typeof tagged) {
148
131
  case "boolean" :
149
- if (tagged) {
150
- return "Boolean(true)";
151
- } else {
152
- return "Boolean(false)";
153
- }
132
+ if (tagged) {
133
+ return "Boolean(true)";
134
+ } else {
135
+ return "Boolean(false)";
136
+ }
154
137
  case "string" :
155
- return "String(\"" + tagged + "\")";
138
+ return `String("` + tagged + `")`;
156
139
  case "number" :
157
- return "Number(" + tagged.toString() + ")";
140
+ return `Number(` + tagged.toString() + `)`;
158
141
  case "object" :
159
- return "Object(" + Core__Option.getOr(JSON.stringify(tagged), "...") + ")";
160
-
142
+ return `Object(` + Stdlib_Option.getOr(JSON.stringify(tagged), "...") + `)`;
161
143
  }
162
144
  }
163
145
 
164
146
  function extractValue(values, field, shape, self) {
165
- var value = values[field];
147
+ let value = values[field];
166
148
  if (value !== undefined) {
167
149
  return fromUntagged(value, shape, self);
168
150
  }
169
151
  if (typeof shape === "object") {
170
152
  switch (shape.TAG) {
171
153
  case "OptionalWithDefault" :
172
- return shape._1;
154
+ return shape._1;
173
155
  case "Optional" :
174
156
  case "DefaultWhenInvalid" :
175
- return fromUntagged(null, shape, self);
176
- default:
177
-
157
+ return fromUntagged(null, shape, self);
178
158
  }
179
159
  }
180
160
  throw {
181
- RE_EXN_ID: $$TypeError,
182
- _1: "Missing non-optional field '" + field + "'",
183
- Error: new Error()
184
- };
161
+ RE_EXN_ID: $$TypeError,
162
+ _1: `Missing non-optional field '` + field + `'`,
163
+ Error: new Error()
164
+ };
185
165
  }
186
166
 
187
167
  function fromUntagged(untagged, _shape, self) {
188
- while(true) {
189
- var shape = _shape;
190
- var exit = 0;
168
+ while (true) {
169
+ let shape = _shape;
170
+ let exit = 0;
191
171
  if (typeof shape !== "object") {
192
172
  switch (shape) {
193
173
  case "Any" :
194
- return untagged;
174
+ return untagged;
195
175
  case "String" :
196
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "string") {
197
- return untagged;
198
- }
199
- break;
176
+ if (typeof untagged === "string") {
177
+ return untagged;
178
+ }
179
+ break;
200
180
  case "Int" :
201
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "number") {
202
- return untagged | 0;
203
- }
204
- break;
181
+ if (typeof untagged === "number") {
182
+ return untagged | 0;
183
+ }
184
+ break;
205
185
  case "Float" :
206
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "number") {
207
- return untagged;
208
- }
209
- break;
186
+ if (typeof untagged === "number") {
187
+ return untagged;
188
+ }
189
+ break;
210
190
  case "Boolean" :
211
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "boolean") {
212
- return untagged;
213
- }
214
- break;
191
+ if (typeof untagged === "boolean") {
192
+ return untagged;
193
+ }
194
+ break;
215
195
  case "Date" :
216
196
  case "Datetime" :
217
- exit = 2;
218
- break;
197
+ exit = 2;
198
+ break;
219
199
  case "Self" :
220
- _shape = self;
221
- continue ;
222
-
200
+ _shape = self;
201
+ continue;
223
202
  }
224
203
  } else {
225
204
  switch (shape.TAG) {
226
205
  case "Literal" :
227
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "string") {
228
- var expected = shape._0;
229
- if (untagged === expected) {
230
- return untagged;
231
- }
232
- throw {
233
- RE_EXN_ID: $$TypeError,
234
- _1: "Expecting literal " + expected + ", got " + untagged,
235
- Error: new Error()
236
- };
206
+ if (typeof untagged === "string") {
207
+ let expected = shape._0;
208
+ if (untagged === expected) {
209
+ return untagged;
237
210
  }
238
- break;
211
+ throw {
212
+ RE_EXN_ID: $$TypeError,
213
+ _1: `Expecting literal ` + expected + `, got ` + untagged,
214
+ Error: new Error()
215
+ };
216
+ }
217
+ break;
239
218
  case "Array" :
240
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && Array.isArray(untagged)) {
241
- var shape$1 = shape._0;
242
- return untagged.map((function(shape$1){
243
- return function (item) {
244
- return fromUntagged(item, shape$1, self);
245
- }
246
- }(shape$1)));
247
- }
248
- break;
219
+ if (Array.isArray(untagged)) {
220
+ let shape$1 = shape._0;
221
+ return untagged.map(item => fromUntagged(item, shape$1, self));
222
+ }
223
+ break;
249
224
  case "Tuple" :
250
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && Array.isArray(untagged)) {
251
- var bases = shape._0;
252
- var lenbases = bases.length;
253
- var lenitems = untagged.length;
254
- if (lenbases === lenitems) {
255
- return Belt_Array.zipBy(untagged, bases, (function (i, b) {
256
- return fromUntagged(i, b, self);
257
- }));
258
- }
259
- throw {
225
+ if (Array.isArray(untagged)) {
226
+ let bases = shape._0;
227
+ let lenbases = bases.length;
228
+ let lenitems = untagged.length;
229
+ if (lenbases === lenitems) {
230
+ return Belt_Array.zipBy(untagged, bases, (i, b) => fromUntagged(i, b, self));
231
+ }
232
+ throw {
233
+ RE_EXN_ID: $$TypeError,
234
+ _1: `Expecting ` + lenbases.toString() + ` items, got ` + lenitems.toString(),
235
+ Error: new Error()
236
+ };
237
+ }
238
+ break;
239
+ case "Object" :
240
+ if (typeof untagged === "object" && untagged !== null && !Array.isArray(untagged)) {
241
+ return Object.fromEntries(shape._0.map(param => {
242
+ let field = param[0];
243
+ let value;
244
+ try {
245
+ value = extractValue(untagged, field, param[1], self);
246
+ } catch (raw_msg) {
247
+ let msg = Primitive_exceptions.internalToException(raw_msg);
248
+ if (msg.RE_EXN_ID === $$TypeError) {
249
+ throw {
260
250
  RE_EXN_ID: $$TypeError,
261
- _1: "Expecting " + lenbases.toString() + " items, got " + lenitems.toString(),
251
+ _1: `Field "` + field + `": ` + msg._1,
262
252
  Error: new Error()
263
253
  };
264
- }
265
- break;
266
- case "Object" :
267
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "object" && !Array.isArray(untagged)) {
268
- return Object.fromEntries(shape._0.map(function (param) {
269
- var field = param[0];
270
- var value;
271
- try {
272
- value = extractValue(untagged, field, param[1], self);
273
- }
274
- catch (raw_msg){
275
- var msg = Caml_js_exceptions.internalToOCamlException(raw_msg);
276
- if (msg.RE_EXN_ID === $$TypeError) {
277
- throw {
278
- RE_EXN_ID: $$TypeError,
279
- _1: "Field \"" + field + "\": " + msg._1,
280
- Error: new Error()
281
- };
282
- }
283
- throw msg;
284
- }
285
- return [
286
- field,
287
- value
288
- ];
289
- }));
290
- }
291
- break;
254
+ }
255
+ throw msg;
256
+ }
257
+ return [
258
+ field,
259
+ value
260
+ ];
261
+ }));
262
+ }
263
+ break;
292
264
  case "Optional" :
293
- if (!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") {
294
- return undefined;
295
- }
296
- _shape = shape._0;
297
- continue ;
265
+ if (untagged === null) {
266
+ return undefined;
267
+ }
268
+ _shape = shape._0;
269
+ continue;
298
270
  case "OptionalWithDefault" :
299
- if (!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") {
300
- return shape._1;
301
- }
302
- _shape = shape._0;
303
- continue ;
271
+ if (untagged === null) {
272
+ return shape._1;
273
+ }
274
+ _shape = shape._0;
275
+ continue;
304
276
  case "Mapping" :
305
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && typeof untagged === "object" && !Array.isArray(untagged)) {
306
- var f = shape._0;
307
- return Core__Dict.mapValues(untagged, (function(f){
308
- return function (v) {
309
- return fromUntagged(v, f, self);
310
- }
311
- }(f)));
312
- }
313
- break;
277
+ if (typeof untagged === "object" && untagged !== null && !Array.isArray(untagged)) {
278
+ let f = shape._0;
279
+ return Stdlib_Dict.mapValues(untagged, v => fromUntagged(v, f, self));
280
+ }
281
+ break;
314
282
  case "Deserializer" :
315
- var res = shape._0.fromJSON(untagged);
316
- if (res.TAG === "Ok") {
317
- return res._0;
318
- }
319
- throw {
320
- RE_EXN_ID: $$TypeError,
321
- _1: res._0,
322
- Error: new Error()
323
- };
283
+ let res = shape._0.fromJSON(untagged);
284
+ if (res.TAG === "Ok") {
285
+ return res._0;
286
+ }
287
+ throw {
288
+ RE_EXN_ID: $$TypeError,
289
+ _1: res._0,
290
+ Error: new Error()
291
+ };
324
292
  case "Collection" :
325
- if (!(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean") && Array.isArray(untagged)) {
326
- return Core__Array.filterMap(untagged.map(shape._0.fromJSON), (function (x) {
327
- if (x.TAG === "Ok") {
328
- return Caml_option.some(x._0);
329
- }
330
- console.warn("Deser", "Could not deserialize value in the collection", x._0);
331
- })).map(function (prim) {
332
- return prim;
333
- });
334
- }
335
- break;
336
- case "DefaultWhenInvalid" :
337
- try {
338
- return fromUntagged(untagged, shape._0, self);
339
- }
340
- catch (raw_msg){
341
- var msg = Caml_js_exceptions.internalToOCamlException(raw_msg);
342
- if (msg.RE_EXN_ID === $$TypeError) {
343
- console.warn("Detected and ignore (with default): ", msg._1);
344
- return shape._1;
293
+ if (Array.isArray(untagged)) {
294
+ return Stdlib_Array.filterMap(untagged.map(shape._0.fromJSON), x => {
295
+ if (x.TAG === "Ok") {
296
+ return Primitive_option.some(x._0);
345
297
  }
346
- throw msg;
298
+ console.warn("Deser", "Could not deserialize value in the collection", x._0);
299
+ }).map(prim => prim);
300
+ }
301
+ break;
302
+ case "DefaultWhenInvalid" :
303
+ try {
304
+ return fromUntagged(untagged, shape._0, self);
305
+ } catch (raw_msg) {
306
+ let msg = Primitive_exceptions.internalToException(raw_msg);
307
+ if (msg.RE_EXN_ID === $$TypeError) {
308
+ console.warn("Detected and ignore (with default): ", msg._1);
309
+ return shape._1;
347
310
  }
311
+ throw msg;
312
+ }
348
313
  case "Morphism" :
349
- return shape._1(fromUntagged(untagged, shape._0, self));
350
-
314
+ return shape._1(fromUntagged(untagged, shape._0, self));
351
315
  }
352
316
  }
353
- if (exit === 2 && !(!Array.isArray(untagged) && (untagged === null || typeof untagged !== "object") && typeof untagged !== "number" && typeof untagged !== "string" && typeof untagged !== "boolean")) {
317
+ if (exit === 2) {
354
318
  switch (typeof untagged) {
355
319
  case "string" :
356
- var r = new Date(untagged);
357
- if (isNaN(r.getDate())) {
358
- throw {
359
- RE_EXN_ID: $$TypeError,
360
- _1: "Invalid date " + untagged,
361
- Error: new Error()
362
- };
363
- }
364
- return r;
320
+ let r = new Date(untagged);
321
+ if (Number.isNaN(r.getDate())) {
322
+ throw {
323
+ RE_EXN_ID: $$TypeError,
324
+ _1: `Invalid date ` + untagged,
325
+ Error: new Error()
326
+ };
327
+ }
328
+ return r;
365
329
  case "number" :
366
- var r$1 = new Date(untagged);
367
- if (isNaN(r$1.getDate())) {
368
- throw {
369
- RE_EXN_ID: $$TypeError,
370
- _1: "Invalid date " + untagged.toString(),
371
- Error: new Error()
372
- };
373
- }
374
- return r$1;
375
- default:
376
-
330
+ let r$1 = new Date(untagged);
331
+ if (Number.isNaN(r$1.getDate())) {
332
+ throw {
333
+ RE_EXN_ID: $$TypeError,
334
+ _1: `Invalid date ` + untagged.toString(),
335
+ Error: new Error()
336
+ };
337
+ }
338
+ return r$1;
377
339
  }
378
340
  }
379
341
  throw {
380
- RE_EXN_ID: $$TypeError,
381
- _1: "Expected " + toString(shape) + ", but got " + _taggedToString(untagged) + " instead",
382
- Error: new Error()
383
- };
342
+ RE_EXN_ID: $$TypeError,
343
+ _1: `Expected ` + toString(shape) + `, but got ` + _taggedToString(untagged) + ` instead`,
344
+ Error: new Error()
345
+ };
384
346
  };
385
347
  }
386
348
 
387
349
  function checkFieldsSanity(name, _fields, _optional) {
388
- while(true) {
389
- var optional = _optional;
390
- var fields = _fields;
391
- var exit = 0;
350
+ while (true) {
351
+ let optional = _optional;
352
+ let fields = _fields;
353
+ let exit = 0;
392
354
  if (typeof fields !== "object") {
393
355
  switch (fields) {
394
356
  case "Self" :
395
- if (optional) {
396
- return {
397
- TAG: "Ok",
398
- _0: undefined
399
- };
400
- } else {
401
- return {
402
- TAG: "Error",
403
- _0: name + ": Trivial infinite recursion 'let fields = Self'"
404
- };
405
- }
357
+ if (optional) {
358
+ return {
359
+ TAG: "Ok",
360
+ _0: undefined
361
+ };
362
+ } else {
363
+ return {
364
+ TAG: "Error",
365
+ _0: name + `: Trivial infinite recursion 'let fields = Self'`
366
+ };
367
+ }
406
368
  default:
407
369
  return {
408
- TAG: "Ok",
409
- _0: undefined
410
- };
370
+ TAG: "Ok",
371
+ _0: undefined
372
+ };
411
373
  }
412
374
  } else {
413
375
  switch (fields.TAG) {
414
376
  case "Tuple" :
415
- return Core__Result.map(Core__Array.reduce(fields._0.map((function(optional){
416
- return function (field, index) {
417
- return function () {
418
- return checkFieldsSanity(name + "[" + index.toString() + "]", field, optional);
419
- };
420
- }
421
- }(optional))), {
422
- TAG: "Ok",
423
- _0: []
424
- }, (function (res, nextitem) {
425
- return Core__Result.flatMap(res, (function (arr) {
426
- return Core__Result.map(nextitem(), (function (i) {
427
- return arr.concat([i]);
428
- }));
429
- }));
430
- })), (function (param) {
431
-
432
- }));
377
+ return Stdlib_Result.map(Stdlib_Array.reduce(fields._0.map((field, index) => (() => checkFieldsSanity(name + `[` + index.toString() + `]`, field, optional))), {
378
+ TAG: "Ok",
379
+ _0: []
380
+ }, (res, nextitem) => Stdlib_Result.flatMap(res, arr => Stdlib_Result.map(nextitem(), i => arr.concat([i])))), param => {});
433
381
  case "Object" :
434
- return Core__Result.map(Core__Array.reduce(fields._0.map((function(optional){
435
- return function (param) {
436
- var field = param[1];
437
- var fieldName = param[0];
438
- return function () {
439
- return checkFieldsSanity(name + "::" + fieldName, field, optional);
440
- };
441
- }
442
- }(optional))), {
443
- TAG: "Ok",
444
- _0: []
445
- }, (function (res, nextitem) {
446
- return Core__Result.flatMap(res, (function (arr) {
447
- return Core__Result.map(nextitem(), (function (i) {
448
- return arr.concat([i]);
449
- }));
450
- }));
451
- })), (function (param) {
452
-
453
- }));
382
+ return Stdlib_Result.map(Stdlib_Array.reduce(fields._0.map(param => {
383
+ let field = param[1];
384
+ let fieldName = param[0];
385
+ return () => checkFieldsSanity(name + `::` + fieldName, field, optional);
386
+ }), {
387
+ TAG: "Ok",
388
+ _0: []
389
+ }, (res, nextitem) => Stdlib_Result.flatMap(res, arr => Stdlib_Result.map(nextitem(), i => arr.concat([i])))), param => {});
454
390
  case "Array" :
455
391
  case "Mapping" :
456
- _optional = true;
457
- _fields = fields._0;
458
- continue ;
392
+ _optional = true;
393
+ _fields = fields._0;
394
+ continue;
459
395
  case "Deserializer" :
460
396
  case "Collection" :
461
- exit = 2;
462
- break;
397
+ exit = 2;
398
+ break;
463
399
  case "Optional" :
464
400
  case "OptionalWithDefault" :
465
401
  case "DefaultWhenInvalid" :
466
- exit = 1;
467
- break;
402
+ exit = 1;
403
+ break;
468
404
  default:
469
405
  return {
470
- TAG: "Ok",
471
- _0: undefined
472
- };
406
+ TAG: "Ok",
407
+ _0: undefined
408
+ };
473
409
  }
474
410
  }
475
411
  switch (exit) {
476
412
  case 1 :
477
- _optional = true;
478
- _fields = fields._0;
479
- continue ;
413
+ _optional = true;
414
+ _fields = fields._0;
415
+ continue;
480
416
  case 2 :
481
- var msg = fields._0.checkFieldsSanity();
482
- if (msg.TAG === "Ok") {
483
- return {
484
- TAG: "Ok",
485
- _0: undefined
486
- };
487
- } else {
488
- return {
489
- TAG: "Error",
490
- _0: name + "/ " + msg._0
491
- };
492
- }
493
-
417
+ let msg = fields._0.checkFieldsSanity();
418
+ if (msg.TAG === "Ok") {
419
+ return {
420
+ TAG: "Ok",
421
+ _0: undefined
422
+ };
423
+ } else {
424
+ return {
425
+ TAG: "Error",
426
+ _0: name + `/ ` + msg._0
427
+ };
428
+ }
494
429
  }
495
430
  };
496
431
  }
497
432
 
498
- var Field = {
433
+ let Field = {
499
434
  usingString: usingString,
500
435
  usingInt: usingInt,
501
436
  usingFloat: usingFloat,
@@ -512,36 +447,33 @@ var Field = {
512
447
  };
513
448
 
514
449
  function MakeDeserializer(S) {
515
- var fields = S.fields;
516
- var name = "Deserializer " + "Deser" + ", " + "File \"Deser.res\", line 328, characters 39-47";
517
- var checkFieldsSanity$1 = function () {
518
- return checkFieldsSanity(name, fields, false);
519
- };
520
- var fromJSON = function (json) {
521
- var res;
450
+ let fields = S.fields;
451
+ let name = `Deserializer ` + "Deser" + `, ` + "File \"Deser.res\", line 318, characters 39-47";
452
+ let checkFieldsSanity$1 = () => checkFieldsSanity(name, fields, false);
453
+ let fromJSON = json => {
454
+ let res;
522
455
  try {
523
456
  res = fromUntagged(json, fields, fields);
524
- }
525
- catch (raw_e){
526
- var e = Caml_js_exceptions.internalToOCamlException(raw_e);
457
+ } catch (raw_e) {
458
+ let e = Primitive_exceptions.internalToException(raw_e);
527
459
  if (e.RE_EXN_ID === $$TypeError) {
528
460
  return {
529
- TAG: "Error",
530
- _0: e._1
531
- };
461
+ TAG: "Error",
462
+ _0: e._1
463
+ };
532
464
  }
533
465
  throw e;
534
466
  }
535
467
  return {
536
- TAG: "Ok",
537
- _0: res
538
- };
468
+ TAG: "Ok",
469
+ _0: res
470
+ };
539
471
  };
540
472
  return {
541
- name: name,
542
- fromJSON: fromJSON,
543
- checkFieldsSanity: checkFieldsSanity$1
544
- };
473
+ name: name,
474
+ fromJSON: fromJSON,
475
+ checkFieldsSanity: checkFieldsSanity$1
476
+ };
545
477
  }
546
478
 
547
479
  exports.FieldValue = FieldValue;