@kaiko.io/rescript-deser 4.0.0-rc.3 → 4.0.0-rc.5

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/lib/bs/.bsbuild CHANGED
Binary file
package/lib/bs/.bsdeps CHANGED
@@ -1,7 +1,8 @@
1
- 11.0.0-rc.6
2
- /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/@kaiko.io/rescript-deser
3
- 1 -bs-package-output es6:lib/es6:.js4Automatic
4
- rescript.json 0x1.94b3a6a1d2ba4p+30
5
- src/ 0x1.957e56214e505p+30
1
+ 11.0.0-rc.7
2
+ /home/manu/src/kaiko/rescript-deser
3
+ 0
4
+ rescript.json 0x1.95f132e38e01fp+30
5
+ tests 0x1.93fb8b23e3f01p+30
6
+ src/ 0x1.95f132e38e01fp+30
6
7
  ===
7
- /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/rescript/linux/rescript.exe 0x1.9578a22fcfdf4p+30
8
+ /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/rescript.exe 0x1.95f128136353bp+30
@@ -1,2 +1,2 @@
1
- #Start(1700763106505)
2
- #Done(1700763106531)
1
+ #Start(1702644950015)
2
+ #Done(1702644950052)
package/lib/bs/.ninja_log CHANGED
@@ -1,6 +1,19 @@
1
1
  # ninja log v6
2
- 0 7 1700763106509919117 src/JSON.ast 3df97f11bfe4e9b4
3
- 7 9 1700763106513252576 src/JSON.d 54f2190af6eab30f
4
- 9 26 1700763106529919867 src/JSON.cmj f5326fd4af8f39e2
5
- 9 26 1700763106529919867 src/JSON.cmi f5326fd4af8f39e2
6
- 9 26 1700763106529919867 ../es6/src/JSON.js f5326fd4af8f39e2
2
+ 0 6 1702644950019435248 tests/QUnit.ast 7223a540e3832541
3
+ 1 6 1702644950019435248 tests/index.ast c5f8a64ed4e3d886
4
+ 0 7 1702644950019435248 src/JSON.ast e5463df0847655c1
5
+ 6 8 1702644950022768668 tests/QUnit.d 4a2631c992d93ce7
6
+ 6 9 1702644950022768668 tests/index.d 5a4db9cdecd186b3
7
+ 8 10 1702644950022768668 src/JSON.d cd2d6773c781340f
8
+ 9 15 1702644950029435508 tests/QUnit.cmj 2795770c04d7b464
9
+ 9 15 1702644950029435508 tests/QUnit.cmi 2795770c04d7b464
10
+ 9 15 1702644950029435508 ../es6/tests/QUnit.js 2795770c04d7b464
11
+ 9 15 1702644950029435508 ../js/tests/QUnit.js 2795770c04d7b464
12
+ 10 27 1702644950039435767 src/JSON.cmj 7dad91a190b50ccb
13
+ 10 27 1702644950039435767 src/JSON.cmi 7dad91a190b50ccb
14
+ 10 27 1702644950039435767 ../es6/src/JSON.js 7dad91a190b50ccb
15
+ 10 27 1702644950039435767 ../js/src/JSON.js 7dad91a190b50ccb
16
+ 27 37 1702644950049436026 tests/index.cmj df4ef497c56ee724
17
+ 27 37 1702644950049436026 tests/index.cmi df4ef497c56ee724
18
+ 27 37 1702644950049436026 ../es6/tests/index.js df4ef497c56ee724
19
+ 27 37 1702644950049436026 ../js/tests/index.js df4ef497c56ee724
@@ -0,0 +1 @@
1
+ { "dirs" : [ "tests" , "src/" ] , "pkgs" : [ [ "@kaiko.io/rescript-prelude" , "/home/manu/src/kaiko/rescript-deser/node_modules/@kaiko.io/rescript-prelude" ] ] , "generated" : [] }
@@ -1,14 +1,27 @@
1
1
  rescript = 1
2
- g_finger := /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/@kaiko.io/rescript-deser/node_modules/@kaiko.io/rescript-prelude/lib/ocaml/install.stamp
2
+ g_finger := /home/manu/src/kaiko/rescript-deser/node_modules/@kaiko.io/rescript-prelude/lib/ocaml/install.stamp
3
3
  rule astj
4
- command = /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/rescript/linux/bsc.exe -w a -bs-v 11.0.0-rc.6 -bs-jsx 4 -bs-jsx-mode automatic -absname -bs-ast -o $out $i
4
+ command = /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/bsc.exe -warn-error +8+11+26+27+33+56 -bs-v 11.0.0-rc.7 -uncurried -absname -bs-ast -o $out $i
5
+ o tests/index.ast : astj ../../tests/index.res
6
+ rule deps_dev
7
+ command = /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/bsb_helper.exe -g -hash 84aecc33f8594375b23a1a137b057f93 $in
8
+ restat = 1
9
+ o tests/index.d : deps_dev tests/index.ast
10
+ rule mij_dev
11
+ command = /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/bsc.exe -I tests -I src/ -I /home/manu/src/kaiko/rescript-deser/node_modules/@kaiko.io/rescript-prelude/lib/ocaml -warn-error +8+11+26+27+33+56 -uncurried -bs-package-name @kaiko.io/rescript-deser -bs-package-output commonjs:lib/js/$in_d:.js -bs-package-output es6:lib/es6/$in_d:.js -bs-v $g_finger $i
12
+ dyndep = 1
13
+ restat = 1
14
+ o tests/index.cmj tests/index.cmi ../es6/tests/index.js ../js/tests/index.js : mij_dev tests/index.ast
15
+ o tests/QUnit.ast : astj ../../tests/QUnit.res
16
+ o tests/QUnit.d : deps_dev tests/QUnit.ast
17
+ o tests/QUnit.cmj tests/QUnit.cmi ../es6/tests/QUnit.js ../js/tests/QUnit.js : mij_dev tests/QUnit.ast
5
18
  o src/JSON.ast : astj ../../src/JSON.res
6
19
  rule deps
7
- command = /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/rescript/linux/bsb_helper.exe -hash 7f20b6808a5e3c49da192de14dbbf393 $in
20
+ command = /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/bsb_helper.exe -hash 84aecc33f8594375b23a1a137b057f93 $in
8
21
  restat = 1
9
22
  o src/JSON.d : deps src/JSON.ast
10
23
  rule mij
11
- command = /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/rescript/linux/bsc.exe -I src/ -I /home/manu/src/merchise/web/photocuba/src/frontend/node_modules/@kaiko.io/rescript-deser/node_modules/@kaiko.io/rescript-prelude/lib/ocaml -w a -bs-package-name @kaiko.io/rescript-deser -bs-package-output es6:lib/es6/$in_d:.js -bs-v $g_finger $i
24
+ command = /home/manu/src/kaiko/rescript-deser/node_modules/rescript/linux/bsc.exe -I src/ -I /home/manu/src/kaiko/rescript-deser/node_modules/@kaiko.io/rescript-prelude/lib/ocaml -warn-error +8+11+26+27+33+56 -uncurried -bs-package-name @kaiko.io/rescript-deser -bs-package-output commonjs:lib/js/$in_d:.js -bs-package-output es6:lib/es6/$in_d:.js -bs-v $g_finger $i
12
25
  dyndep = 1
13
26
  restat = 1
14
- o src/JSON.cmj src/JSON.cmi ../es6/src/JSON.js : mij src/JSON.ast
27
+ o src/JSON.cmj src/JSON.cmi ../es6/src/JSON.js ../js/src/JSON.js : mij src/JSON.ast
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ tests/index.cmj : src/JSON.cmj src/JSON.cmi tests/QUnit.cmj tests/QUnit.cmi
@@ -110,11 +110,11 @@ function toString(type_) {
110
110
  case "Array" :
111
111
  return "Array of " + toString(type_._0);
112
112
  case "Tuple" :
113
- return "Tuple of (" + Prelude.$$Array.map(type_._0, toString).join(", ") + ")";
113
+ return "Tuple of (" + type_._0.map(toString).join(", ") + ")";
114
114
  case "Object" :
115
- var desc = Prelude.$$Array.map(type_._0, (function (param) {
116
- return param[0] + ": " + toString(param[1]);
117
- })).join(", ");
115
+ var desc = type_._0.map(function (param) {
116
+ return param[0] + ": " + toString(param[1]);
117
+ }).join(", ");
118
118
  return "Object of {" + desc + "}";
119
119
  case "Optional" :
120
120
  case "OptionalWithDefault" :
@@ -306,7 +306,7 @@ function fromUntagged(untagged, _shape, self) {
306
306
  } else {
307
307
  if (match.TAG === "JSONArray") {
308
308
  var shape$1 = shape._0;
309
- return Prelude.$$Array.map(match._0, (function(shape$1){
309
+ return match._0.map((function(shape$1){
310
310
  return function (item) {
311
311
  return fromUntagged(item, shape$1, self);
312
312
  }
@@ -344,7 +344,7 @@ function fromUntagged(untagged, _shape, self) {
344
344
  } else {
345
345
  if (match.TAG === "JSONObject") {
346
346
  var values = match._0;
347
- return Curry._1(Prelude.Dict.fromArray, Prelude.$$Array.map(shape._0, (function(values){
347
+ return Curry._1(Prelude.Dict.fromArray, shape._0.map((function(values){
348
348
  return function (param) {
349
349
  var field = param[0];
350
350
  var value;
@@ -426,9 +426,13 @@ function fromUntagged(untagged, _shape, self) {
426
426
  exit = 1;
427
427
  } else {
428
428
  if (match.TAG === "JSONArray") {
429
- return Prelude.$$Array.map(Prelude.$$Array.keepSome(Prelude.$$Array.map(Prelude.$$Array.map(match._0, shape._0.fromJSON), Prelude.Result.warn)), (function (prim) {
430
- return prim;
431
- }));
429
+ return Prelude.$$Array.keepSome(match._0.map((function(shape){
430
+ return function (param) {
431
+ return Curry._1(shape._0.fromJSON, param);
432
+ }
433
+ }(shape))).map(Prelude.Result.warn)).map(function (prim) {
434
+ return prim;
435
+ });
432
436
  }
433
437
  exit = 1;
434
438
  }
@@ -518,7 +522,7 @@ function checkFieldsSanity(name, _fields, _optional) {
518
522
  } else {
519
523
  switch (fields.TAG) {
520
524
  case "Tuple" :
521
- return Curry._2(Prelude.ManyResults.map, Prelude.ManyResults.bailU(Prelude.$$Array.mapWithIndex(fields._0, (function(optional){
525
+ return Curry._2(Prelude.ManyResults.map, Prelude.ManyResults.bailU(fields._0.map((function(optional){
522
526
  return function (field, index) {
523
527
  return function () {
524
528
  return checkFieldsSanity(name + "[" + String(index) + "]", field, optional);
@@ -528,7 +532,7 @@ function checkFieldsSanity(name, _fields, _optional) {
528
532
 
529
533
  }));
530
534
  case "Object" :
531
- return Curry._2(Prelude.ManyResults.map, Prelude.ManyResults.bailU(Prelude.$$Array.map(fields._0, (function(optional){
535
+ return Curry._2(Prelude.ManyResults.map, Prelude.ManyResults.bailU(fields._0.map((function(optional){
532
536
  return function (param) {
533
537
  var field = param[1];
534
538
  var fieldName = param[0];
@@ -0,0 +1,2 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
@@ -0,0 +1,284 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as $$JSON from "../src/JSON.js";
4
+ import * as Curry from "rescript/lib/es6/curry.js";
5
+ import * as Qunit from "qunit";
6
+ import * as Prelude from "@kaiko.io/rescript-prelude/lib/es6/src/Prelude.js";
7
+
8
+ var fields = {
9
+ TAG: "Object",
10
+ _0: [
11
+ [
12
+ "note",
13
+ "String"
14
+ ],
15
+ [
16
+ "date",
17
+ "Date"
18
+ ],
19
+ [
20
+ "extra",
21
+ {
22
+ TAG: "Optional",
23
+ _0: "String"
24
+ }
25
+ ]
26
+ ]
27
+ };
28
+
29
+ var Deserializer = $$JSON.MakeDeserializer({
30
+ fields: fields
31
+ });
32
+
33
+ var Appointment = {
34
+ Deserializer: Deserializer
35
+ };
36
+
37
+ Qunit.module("Basic deserializer", (function (param) {
38
+ var valid = [
39
+ [
40
+ {"note": "Bicentennial doctor's appointment", "date": "2100-01-01"},
41
+ {
42
+ note: "Bicentennial doctor's appointment",
43
+ date: new Date("2100-01-01"),
44
+ extra: undefined
45
+ }
46
+ ],
47
+ [
48
+ {
49
+ "note": "Bicentennial doctor's appointment",
50
+ "date": "2100-01-01",
51
+ "extra": "Don't take your stop-aging pills the night before the appointment",
52
+ },
53
+ {
54
+ note: "Bicentennial doctor's appointment",
55
+ date: new Date("2100-01-01"),
56
+ extra: "Don't take your stop-aging pills the night before the appointment"
57
+ }
58
+ ]
59
+ ];
60
+ Qunit.test("Correctly deserializes data", (function (qunit) {
61
+ qunit.expect(valid.length);
62
+ Curry._2(Prelude.$$Array.forEach, valid, (function (param) {
63
+ var data = param[0];
64
+ console.log("Running sample", data);
65
+ var result = Deserializer.fromJSON(data);
66
+ if (result.TAG === "Ok") {
67
+ qunit.deepEqual(result._0, param[1], "result == expected");
68
+ return ;
69
+ }
70
+ console.error(result._0);
71
+ }));
72
+ }));
73
+ var invalid = [[
74
+ "Missing non-optional field",
75
+ {"extra": "Bicentennial doctor's appointment", "date": "2100-01-01"}
76
+ ]];
77
+ Qunit.test("Correctly catches invalid data", (function (qunit) {
78
+ qunit.expect(invalid.length);
79
+ Curry._2(Prelude.$$Array.forEach, invalid, (function (param) {
80
+ var data = param[1];
81
+ console.log("Running sample", param[0], data);
82
+ var result = Deserializer.fromJSON(data);
83
+ if (result.TAG === "Ok") {
84
+ console.error("Invalid being accepted: ", result._0);
85
+ return ;
86
+ }
87
+ console.log("Correctly detected:", result._0);
88
+ qunit.ok(true, true);
89
+ }));
90
+ }));
91
+ }));
92
+
93
+ Qunit.module("Recursive deserializer", (function (param) {
94
+ var fields = {
95
+ TAG: "Object",
96
+ _0: [
97
+ [
98
+ "data",
99
+ "Any"
100
+ ],
101
+ [
102
+ "children",
103
+ {
104
+ TAG: "Array",
105
+ _0: "Self"
106
+ }
107
+ ]
108
+ ]
109
+ };
110
+ var DeserializerImpl = $$JSON.MakeDeserializer({
111
+ fields: fields
112
+ });
113
+ var checkFieldsSanity = DeserializerImpl.checkFieldsSanity;
114
+ var fromJSON = function (data) {
115
+ return Curry._2(Prelude.Result.map, DeserializerImpl.fromJSON(data), (function (prim) {
116
+ return prim;
117
+ }));
118
+ };
119
+ var valid = [[
120
+ {"data": "A", "children": [{"data": "A1", "children": []}, {"data": "B", "children": [{"data": "C", "children": []}, {"data": "D", "children": []}]}]},
121
+ {
122
+ data: "A",
123
+ children: [
124
+ {
125
+ data: "A1",
126
+ children: []
127
+ },
128
+ {
129
+ data: "B",
130
+ children: [
131
+ {
132
+ data: "C",
133
+ children: []
134
+ },
135
+ {
136
+ data: "D",
137
+ children: []
138
+ }
139
+ ]
140
+ }
141
+ ]
142
+ }
143
+ ]];
144
+ Qunit.test("Trivial recursion detection: Ok", (function (qunit) {
145
+ qunit.expect(1);
146
+ qunit.deepEqual(checkFieldsSanity(), {
147
+ TAG: "Ok",
148
+ _0: undefined
149
+ }, "Ok");
150
+ }));
151
+ Qunit.test("Infinite list", (function (qunit) {
152
+ var fields = {
153
+ TAG: "Object",
154
+ _0: [
155
+ [
156
+ "head",
157
+ "String"
158
+ ],
159
+ [
160
+ "tail",
161
+ "Self"
162
+ ]
163
+ ]
164
+ };
165
+ var InfiniteList = $$JSON.MakeDeserializer({
166
+ fields: fields
167
+ });
168
+ qunit.expect(1);
169
+ qunit.deepEqual(Curry._1(Prelude.Result.isError, InfiniteList.checkFieldsSanity()), true, "Ok");
170
+ }));
171
+ Qunit.test("Finite list", (function (qunit) {
172
+ var fields = {
173
+ TAG: "Object",
174
+ _0: [
175
+ [
176
+ "head",
177
+ "String"
178
+ ],
179
+ [
180
+ "tail",
181
+ {
182
+ TAG: "Optional",
183
+ _0: "Self"
184
+ }
185
+ ]
186
+ ]
187
+ };
188
+ var List = $$JSON.MakeDeserializer({
189
+ fields: fields
190
+ });
191
+ qunit.expect(1);
192
+ qunit.deepEqual(List.checkFieldsSanity(), {
193
+ TAG: "Ok",
194
+ _0: undefined
195
+ }, "Ok");
196
+ }));
197
+ Qunit.test("Correctly deserializes recursive data", (function (qunit) {
198
+ qunit.expect(valid.length);
199
+ Curry._2(Prelude.$$Array.forEach, valid, (function (param) {
200
+ var data = param[0];
201
+ console.log("Running sample", data);
202
+ var result = fromJSON(data);
203
+ if (result.TAG === "Ok") {
204
+ qunit.deepEqual(result._0, param[1], "result == expected");
205
+ return ;
206
+ }
207
+ console.error(result._0);
208
+ }));
209
+ }));
210
+ Qunit.test("Recursion in sub-deserializer", (function (qunit) {
211
+ var fields = {
212
+ TAG: "Object",
213
+ _0: [
214
+ [
215
+ "head",
216
+ "String"
217
+ ],
218
+ [
219
+ "tail",
220
+ {
221
+ TAG: "Optional",
222
+ _0: "Self"
223
+ }
224
+ ]
225
+ ]
226
+ };
227
+ var List = $$JSON.MakeDeserializer({
228
+ fields: fields
229
+ });
230
+ var fields$1 = {
231
+ TAG: "Object",
232
+ _0: [
233
+ [
234
+ "records",
235
+ {
236
+ TAG: "Deserializer",
237
+ _0: List
238
+ }
239
+ ],
240
+ [
241
+ "next",
242
+ {
243
+ TAG: "Optional",
244
+ _0: "Self"
245
+ }
246
+ ]
247
+ ]
248
+ };
249
+ var Ledger = $$JSON.MakeDeserializer({
250
+ fields: fields$1
251
+ });
252
+ var data = {"records": {"head": "A", "tail": {"head": "B"}},
253
+ "next": {"records": {"head": "A", "tail": {"head": "B"}}}};
254
+ var expected = {
255
+ records: {
256
+ head: "A",
257
+ tail: {
258
+ head: "B",
259
+ tail: undefined
260
+ }
261
+ },
262
+ next: {
263
+ records: {
264
+ head: "A",
265
+ tail: {
266
+ head: "B",
267
+ tail: undefined
268
+ }
269
+ },
270
+ next: undefined
271
+ }
272
+ };
273
+ qunit.expect(1);
274
+ qunit.deepEqual(Ledger.fromJSON(data), {
275
+ TAG: "Ok",
276
+ _0: expected
277
+ }, "nice ledger");
278
+ }));
279
+ }));
280
+
281
+ export {
282
+ Appointment ,
283
+ }
284
+ /* Deserializer Not a pure module */