diff --git a/lib/js/src/tea.js b/lib/js/src/tea.js index 24d97bc..172eac9 100644 --- a/lib/js/src/tea.js +++ b/lib/js/src/tea.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; diff --git a/lib/js/src/tea_animationframe.js b/lib/js/src/tea_animationframe.js index 8f46a43..d0a3e70 100644 --- a/lib/js/src/tea_animationframe.js +++ b/lib/js/src/tea_animationframe.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); diff --git a/lib/js/src/tea_app.js b/lib/js/src/tea_app.js index c55931d..284b41c 100644 --- a/lib/js/src/tea_app.js +++ b/lib/js/src/tea_app.js @@ -1,12 +1,12 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Web = require("./web.js"); -var List = require("bs-platform/lib/js/list.js"); var Vdom = require("./vdom.js"); var Curry = require("bs-platform/lib/js/curry.js"); var Tea_cmd = require("./tea_cmd.js"); var Tea_sub = require("./tea_sub.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js"); function programStateWrapper(initModel, pump, shutdown) { @@ -34,7 +34,7 @@ function programStateWrapper(initModel, pump, shutdown) { var msgs = match$1[0]; if (msgs) { pending[0] = /* None */0; - return List.iter(handler, List.rev(msgs)); + return Belt_List.forEach(Belt_List.reverse(msgs), handler); } else { pending[0] = /* None */0; return /* () */0; diff --git a/lib/js/src/tea_cmd.js b/lib/js/src/tea_cmd.js index ec98c0a..0418df9 100644 --- a/lib/js/src/tea_cmd.js +++ b/lib/js/src/tea_cmd.js @@ -1,10 +1,10 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var Vdom = require("./vdom.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); function batch(cmds) { return /* Batch */Block.__(1, [cmds]); @@ -32,9 +32,9 @@ function run(callbacks, param) { } else { switch (param.tag | 0) { case 1 : - return List.fold_left((function (_, cmd) { + return Belt_List.reduceU(param[0], /* () */0, (function (_, cmd) { return run(callbacks, cmd); - }), /* () */0, param[0]); + })); case 0 : case 2 : return Curry._1(param[0], callbacks); diff --git a/lib/js/src/tea_ex.js b/lib/js/src/tea_ex.js index 9fc6cb5..0b24aef 100644 --- a/lib/js/src/tea_ex.js +++ b/lib/js/src/tea_ex.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); diff --git a/lib/js/src/tea_html.js b/lib/js/src/tea_html.js index fc43eae..9c5f45c 100644 --- a/lib/js/src/tea_html.js +++ b/lib/js/src/tea_html.js @@ -1,11 +1,11 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var Vdom = require("./vdom.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); var $$String = require("bs-platform/lib/js/string.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); function text(str) { return /* Text */Block.__(1, [str]); @@ -613,11 +613,11 @@ function class$prime(name) { } function classList(classes) { - var name = $$String.concat(" ", List.map((function (param) { + var name = $$String.concat(" ", Belt_List.map(Belt_List.keep(classes, (function (param) { + return param[1]; + })), (function (param) { return param[0]; - }), List.filter((function (param) { - return param[1]; - }))(classes))); + }))); return /* RawProp */Block.__(0, [ "className", name diff --git a/lib/js/src/tea_html_cmds.js b/lib/js/src/tea_html_cmds.js index da237a6..61d045e 100644 --- a/lib/js/src/tea_html_cmds.js +++ b/lib/js/src/tea_html_cmds.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); diff --git a/lib/js/src/tea_http.js b/lib/js/src/tea_http.js index b44813b..1984a50 100644 --- a/lib/js/src/tea_http.js +++ b/lib/js/src/tea_http.js @@ -1,13 +1,12 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); var Tea_json = require("./tea_json.js"); -var Caml_primitive = require("bs-platform/lib/js/caml_primitive.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); +var Belt_MapString = require("bs-platform/lib/js/belt_MapString.js"); var Web_xmlhttprequest = require("./web_xmlhttprequest.js"); -var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js"); function string_of_error(param) { if (typeof param === "number") { @@ -83,482 +82,6 @@ function getString(url) { function send(resultToMessage, param) { var maybeEvents = param[1]; var request = param[0]; - var height = function (param) { - if (param) { - return param[4]; - } else { - return 0; - } - }; - var create = function (l, x, d, r) { - var hl = height(l); - var hr = height(r); - return /* Node */[ - l, - x, - d, - r, - hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; - }; - var singleton = function (x, d) { - return /* Node */[ - /* Empty */0, - x, - d, - /* Empty */0, - 1 - ]; - }; - var bal = function (l, x, d, r) { - var hl = l ? l[4] : 0; - var hr = r ? r[4] : 0; - if (hl > (hr + 2 | 0)) { - if (l) { - var lr = l[3]; - var ld = l[2]; - var lv = l[1]; - var ll = l[0]; - if (height(ll) >= height(lr)) { - return create(ll, lv, ld, create(lr, x, d, r)); - } else if (lr) { - return create(create(ll, lv, ld, lr[0]), lr[1], lr[2], create(lr[3], x, d, r)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else if (hr > (hl + 2 | 0)) { - if (r) { - var rr = r[3]; - var rd = r[2]; - var rv = r[1]; - var rl = r[0]; - if (height(rr) >= height(rl)) { - return create(create(l, x, d, rl), rv, rd, rr); - } else if (rl) { - return create(create(l, x, d, rl[0]), rl[1], rl[2], create(rl[3], rv, rd, rr)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - return /* Node */[ - l, - x, - d, - r, - hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; - } - }; - var add = function (x, data, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(add(x, data, l), v, d, r); - } else { - return bal(l, v, d, add(x, data, r)); - } - } else { - return /* Node */[ - l, - x, - data, - r, - param[4] - ]; - } - } else { - return /* Node */[ - /* Empty */0, - x, - data, - /* Empty */0, - 1 - ]; - } - }; - var min_binding = function (_param) { - while(true) { - var param = _param; - if (param) { - var l = param[0]; - if (l) { - _param = l; - continue ; - - } else { - return /* tuple */[ - param[1], - param[2] - ]; - } - } else { - throw Caml_builtin_exceptions.not_found; - } - }; - }; - var remove_min_binding = function (param) { - if (param) { - var l = param[0]; - if (l) { - return bal(remove_min_binding(l), param[1], param[2], param[3]); - } else { - return param[3]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.remove_min_elt" - ]; - } - }; - var remove = function (x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(remove(x, l), v, d, r); - } else { - return bal(l, v, d, remove(x, r)); - } - } else { - var t1 = l; - var t2 = r; - if (t1) { - if (t2) { - var match = min_binding(t2); - return bal(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } - } - } else { - return /* Empty */0; - } - }; - var iter = function (f, _param) { - while(true) { - var param = _param; - if (param) { - iter(f, param[0]); - Curry._2(f, param[1], param[2]); - _param = param[3]; - continue ; - - } else { - return /* () */0; - } - }; - }; - var map = function (f, param) { - if (param) { - var l$prime = map(f, param[0]); - var d$prime = Curry._1(f, param[2]); - var r$prime = map(f, param[3]); - return /* Node */[ - l$prime, - param[1], - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } - }; - var mapi = function (f, param) { - if (param) { - var v = param[1]; - var l$prime = mapi(f, param[0]); - var d$prime = Curry._2(f, v, param[2]); - var r$prime = mapi(f, param[3]); - return /* Node */[ - l$prime, - v, - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } - }; - var fold = function (f, _m, _accu) { - while(true) { - var accu = _accu; - var m = _m; - if (m) { - _accu = Curry._3(f, m[1], m[2], fold(f, m[0], accu)); - _m = m[3]; - continue ; - - } else { - return accu; - } - }; - }; - var for_all = function (p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - if (for_all(p, param[0])) { - _param = param[3]; - continue ; - - } else { - return /* false */0; - } - } else { - return /* false */0; - } - } else { - return /* true */1; - } - }; - }; - var exists = function (p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - return /* true */1; - } else if (exists(p, param[0])) { - return /* true */1; - } else { - _param = param[3]; - continue ; - - } - } else { - return /* false */0; - } - }; - }; - var add_min_binding = function (k, v, param) { - if (param) { - return bal(add_min_binding(k, v, param[0]), param[1], param[2], param[3]); - } else { - return singleton(k, v); - } - }; - var add_max_binding = function (k, v, param) { - if (param) { - return bal(param[0], param[1], param[2], add_max_binding(k, v, param[3])); - } else { - return singleton(k, v); - } - }; - var join = function (l, v, d, r) { - if (l) { - if (r) { - var rh = r[4]; - var lh = l[4]; - if (lh > (rh + 2 | 0)) { - return bal(l[0], l[1], l[2], join(l[3], v, d, r)); - } else if (rh > (lh + 2 | 0)) { - return bal(join(l, v, d, r[0]), r[1], r[2], r[3]); - } else { - return create(l, v, d, r); - } - } else { - return add_max_binding(v, d, l); - } - } else { - return add_min_binding(v, d, r); - } - }; - var concat = function (t1, t2) { - if (t1) { - if (t2) { - var match = min_binding(t2); - return join(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } - }; - var concat_or_join = function (t1, v, d, t2) { - if (d) { - return join(t1, v, d[0], t2); - } else { - return concat(t1, t2); - } - }; - var split = function (x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - var match = split(x, l); - return /* tuple */[ - match[0], - match[1], - join(match[2], v, d, r) - ]; - } else { - var match$1 = split(x, r); - return /* tuple */[ - join(l, v, d, match$1[0]), - match$1[1], - match$1[2] - ]; - } - } else { - return /* tuple */[ - l, - /* Some */[d], - r - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* None */0, - /* Empty */0 - ]; - } - }; - var merge = function (f, s1, s2) { - var exit = 0; - if (s1) { - var v1 = s1[1]; - if (s1[4] >= height(s2)) { - var match = split(v1, s2); - return concat_or_join(merge(f, s1[0], match[0]), v1, Curry._3(f, v1, /* Some */[s1[2]], match[1]), merge(f, s1[3], match[2])); - } else { - exit = 1; - } - } else if (s2) { - exit = 1; - } else { - return /* Empty */0; - } - if (exit === 1) { - if (s2) { - var v2 = s2[1]; - var match$1 = split(v2, s1); - return concat_or_join(merge(f, match$1[0], s2[0]), v2, Curry._3(f, v2, match$1[1], /* Some */[s2[2]]), merge(f, match$1[2], s2[3])); - } else { - throw [ - Caml_builtin_exceptions.assert_failure, - [ - "map.ml", - 270, - 10 - ] - ]; - } - } - - }; - var filter = function (p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var l$prime = filter(p, param[0]); - var pvd = Curry._2(p, v, d); - var r$prime = filter(p, param[3]); - if (pvd) { - return join(l$prime, v, d, r$prime); - } else { - return concat(l$prime, r$prime); - } - } else { - return /* Empty */0; - } - }; - var partition = function (p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var match = partition(p, param[0]); - var lf = match[1]; - var lt = match[0]; - var pvd = Curry._2(p, v, d); - var match$1 = partition(p, param[3]); - var rf = match$1[1]; - var rt = match$1[0]; - if (pvd) { - return /* tuple */[ - join(lt, v, d, rt), - concat(lf, rf) - ]; - } else { - return /* tuple */[ - concat(lt, rt), - join(lf, v, d, rf) - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* Empty */0 - ]; - } - }; - var cardinal = function (param) { - if (param) { - return (cardinal(param[0]) + 1 | 0) + cardinal(param[3]) | 0; - } else { - return 0; - } - }; - var bindings_aux = function (_accu, _param) { - while(true) { - var param = _param; - var accu = _accu; - if (param) { - _param = param[0]; - _accu = /* :: */[ - /* tuple */[ - param[1], - param[2] - ], - bindings_aux(accu, param[3]) - ]; - continue ; - - } else { - return accu; - } - }; - }; var expect = request[/* expect */4]; var responseToResult = expect[1]; var typ = expect[0]; @@ -583,10 +106,12 @@ function send(resultToMessage, param) { } }; mayCB((function (param) { - return xhr.onreadystatechange = param; + xhr.onreadystatechange = param; + return /* () */0; }), match[/* onreadystatechange */0]); mayCB((function (param) { - return xhr.onprogress = param; + xhr.onprogress = param; + return /* () */0; }), match[/* onprogress */1]); } var partial_arg = /* Error */Block.__(1, [/* NetworkError */1]); @@ -607,7 +132,7 @@ function send(resultToMessage, param) { var cb$3 = function () { var match = Web_xmlhttprequest.getAllResponseHeadersAsDict(xhr); var headers; - headers = match.tag ? /* Empty */0 : match[0]; + headers = match.tag ? Belt_MapString.empty : match[0]; var response_000 = /* url */xhr.responseURL; var response_001 = /* status : record */[ /* code */xhr.status, @@ -656,7 +181,7 @@ function send(resultToMessage, param) { var setHeader = function (param) { return Web_xmlhttprequest.setRequestHeader(param[0], param[1], xhr); }; - List.iter(setHeader, headers); + Belt_List.forEach(headers, setHeader); Web_xmlhttprequest.set_responseType(typ, xhr); if (timeout) { xhr.timeout = timeout[0]; diff --git a/lib/js/src/tea_json.js b/lib/js/src/tea_json.js index 9b52ff5..6f7339b 100644 --- a/lib/js/src/tea_json.js +++ b/lib/js/src/tea_json.js @@ -1,698 +1,19 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var $$Array = require("bs-platform/lib/js/array.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); var Js_exn = require("bs-platform/lib/js/js_exn.js"); var Web_json = require("./web_json.js"); -var Caml_array = require("bs-platform/lib/js/caml_array.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); +var Belt_Array = require("bs-platform/lib/js/belt_Array.js"); var Pervasives = require("bs-platform/lib/js/pervasives.js"); var Tea_result = require("./tea_result.js"); -var Caml_primitive = require("bs-platform/lib/js/caml_primitive.js"); +var Belt_MapString = require("bs-platform/lib/js/belt_MapString.js"); var Caml_exceptions = require("bs-platform/lib/js/caml_exceptions.js"); var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js"); -function height(param) { - if (param) { - return param[4]; - } else { - return 0; - } -} - -function create(l, x, d, r) { - var hl = height(l); - var hr = height(r); - return /* Node */[ - l, - x, - d, - r, - hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; -} - -function singleton(x, d) { - return /* Node */[ - /* Empty */0, - x, - d, - /* Empty */0, - 1 - ]; -} - -function bal(l, x, d, r) { - var hl = l ? l[4] : 0; - var hr = r ? r[4] : 0; - if (hl > (hr + 2 | 0)) { - if (l) { - var lr = l[3]; - var ld = l[2]; - var lv = l[1]; - var ll = l[0]; - if (height(ll) >= height(lr)) { - return create(ll, lv, ld, create(lr, x, d, r)); - } else if (lr) { - return create(create(ll, lv, ld, lr[0]), lr[1], lr[2], create(lr[3], x, d, r)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else if (hr > (hl + 2 | 0)) { - if (r) { - var rr = r[3]; - var rd = r[2]; - var rv = r[1]; - var rl = r[0]; - if (height(rr) >= height(rl)) { - return create(create(l, x, d, rl), rv, rd, rr); - } else if (rl) { - return create(create(l, x, d, rl[0]), rl[1], rl[2], create(rl[3], rv, rd, rr)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - return /* Node */[ - l, - x, - d, - r, - hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; - } -} - -function is_empty(param) { - if (param) { - return /* false */0; - } else { - return /* true */1; - } -} - -function add(x, data, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(add(x, data, l), v, d, r); - } else { - return bal(l, v, d, add(x, data, r)); - } - } else { - return /* Node */[ - l, - x, - data, - r, - param[4] - ]; - } - } else { - return /* Node */[ - /* Empty */0, - x, - data, - /* Empty */0, - 1 - ]; - } -} - -function find(x, _param) { - while(true) { - var param = _param; - if (param) { - var c = Caml_primitive.caml_string_compare(x, param[1]); - if (c) { - _param = c < 0 ? param[0] : param[3]; - continue ; - - } else { - return param[2]; - } - } else { - throw Caml_builtin_exceptions.not_found; - } - }; -} - -function mem(x, _param) { - while(true) { - var param = _param; - if (param) { - var c = Caml_primitive.caml_string_compare(x, param[1]); - if (c) { - _param = c < 0 ? param[0] : param[3]; - continue ; - - } else { - return /* true */1; - } - } else { - return /* false */0; - } - }; -} - -function min_binding(_param) { - while(true) { - var param = _param; - if (param) { - var l = param[0]; - if (l) { - _param = l; - continue ; - - } else { - return /* tuple */[ - param[1], - param[2] - ]; - } - } else { - throw Caml_builtin_exceptions.not_found; - } - }; -} - -function max_binding(_param) { - while(true) { - var param = _param; - if (param) { - var r = param[3]; - if (r) { - _param = r; - continue ; - - } else { - return /* tuple */[ - param[1], - param[2] - ]; - } - } else { - throw Caml_builtin_exceptions.not_found; - } - }; -} - -function remove_min_binding(param) { - if (param) { - var l = param[0]; - if (l) { - return bal(remove_min_binding(l), param[1], param[2], param[3]); - } else { - return param[3]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.remove_min_elt" - ]; - } -} - -function remove(x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(remove(x, l), v, d, r); - } else { - return bal(l, v, d, remove(x, r)); - } - } else { - var t1 = l; - var t2 = r; - if (t1) { - if (t2) { - var match = min_binding(t2); - return bal(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } - } - } else { - return /* Empty */0; - } -} - -function iter(f, _param) { - while(true) { - var param = _param; - if (param) { - iter(f, param[0]); - Curry._2(f, param[1], param[2]); - _param = param[3]; - continue ; - - } else { - return /* () */0; - } - }; -} - -function map(f, param) { - if (param) { - var l$prime = map(f, param[0]); - var d$prime = Curry._1(f, param[2]); - var r$prime = map(f, param[3]); - return /* Node */[ - l$prime, - param[1], - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } -} - -function mapi(f, param) { - if (param) { - var v = param[1]; - var l$prime = mapi(f, param[0]); - var d$prime = Curry._2(f, v, param[2]); - var r$prime = mapi(f, param[3]); - return /* Node */[ - l$prime, - v, - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } -} - -function fold(f, _m, _accu) { - while(true) { - var accu = _accu; - var m = _m; - if (m) { - _accu = Curry._3(f, m[1], m[2], fold(f, m[0], accu)); - _m = m[3]; - continue ; - - } else { - return accu; - } - }; -} - -function for_all(p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - if (for_all(p, param[0])) { - _param = param[3]; - continue ; - - } else { - return /* false */0; - } - } else { - return /* false */0; - } - } else { - return /* true */1; - } - }; -} - -function exists(p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - return /* true */1; - } else if (exists(p, param[0])) { - return /* true */1; - } else { - _param = param[3]; - continue ; - - } - } else { - return /* false */0; - } - }; -} - -function add_min_binding(k, v, param) { - if (param) { - return bal(add_min_binding(k, v, param[0]), param[1], param[2], param[3]); - } else { - return singleton(k, v); - } -} - -function add_max_binding(k, v, param) { - if (param) { - return bal(param[0], param[1], param[2], add_max_binding(k, v, param[3])); - } else { - return singleton(k, v); - } -} - -function join(l, v, d, r) { - if (l) { - if (r) { - var rh = r[4]; - var lh = l[4]; - if (lh > (rh + 2 | 0)) { - return bal(l[0], l[1], l[2], join(l[3], v, d, r)); - } else if (rh > (lh + 2 | 0)) { - return bal(join(l, v, d, r[0]), r[1], r[2], r[3]); - } else { - return create(l, v, d, r); - } - } else { - return add_max_binding(v, d, l); - } - } else { - return add_min_binding(v, d, r); - } -} - -function concat(t1, t2) { - if (t1) { - if (t2) { - var match = min_binding(t2); - return join(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } -} - -function concat_or_join(t1, v, d, t2) { - if (d) { - return join(t1, v, d[0], t2); - } else { - return concat(t1, t2); - } -} - -function split(x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - var match = split(x, l); - return /* tuple */[ - match[0], - match[1], - join(match[2], v, d, r) - ]; - } else { - var match$1 = split(x, r); - return /* tuple */[ - join(l, v, d, match$1[0]), - match$1[1], - match$1[2] - ]; - } - } else { - return /* tuple */[ - l, - /* Some */[d], - r - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* None */0, - /* Empty */0 - ]; - } -} - -function merge(f, s1, s2) { - var exit = 0; - if (s1) { - var v1 = s1[1]; - if (s1[4] >= height(s2)) { - var match = split(v1, s2); - return concat_or_join(merge(f, s1[0], match[0]), v1, Curry._3(f, v1, /* Some */[s1[2]], match[1]), merge(f, s1[3], match[2])); - } else { - exit = 1; - } - } else if (s2) { - exit = 1; - } else { - return /* Empty */0; - } - if (exit === 1) { - if (s2) { - var v2 = s2[1]; - var match$1 = split(v2, s1); - return concat_or_join(merge(f, match$1[0], s2[0]), v2, Curry._3(f, v2, match$1[1], /* Some */[s2[2]]), merge(f, match$1[2], s2[3])); - } else { - throw [ - Caml_builtin_exceptions.assert_failure, - [ - "map.ml", - 270, - 10 - ] - ]; - } - } - -} - -function filter(p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var l$prime = filter(p, param[0]); - var pvd = Curry._2(p, v, d); - var r$prime = filter(p, param[3]); - if (pvd) { - return join(l$prime, v, d, r$prime); - } else { - return concat(l$prime, r$prime); - } - } else { - return /* Empty */0; - } -} - -function partition(p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var match = partition(p, param[0]); - var lf = match[1]; - var lt = match[0]; - var pvd = Curry._2(p, v, d); - var match$1 = partition(p, param[3]); - var rf = match$1[1]; - var rt = match$1[0]; - if (pvd) { - return /* tuple */[ - join(lt, v, d, rt), - concat(lf, rf) - ]; - } else { - return /* tuple */[ - concat(lt, rt), - join(lf, v, d, rf) - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* Empty */0 - ]; - } -} - -function cons_enum(_m, _e) { - while(true) { - var e = _e; - var m = _m; - if (m) { - _e = /* More */[ - m[1], - m[2], - m[3], - e - ]; - _m = m[0]; - continue ; - - } else { - return e; - } - }; -} - -function compare(cmp, m1, m2) { - var _e1 = cons_enum(m1, /* End */0); - var _e2 = cons_enum(m2, /* End */0); - while(true) { - var e2 = _e2; - var e1 = _e1; - if (e1) { - if (e2) { - var c = Caml_primitive.caml_string_compare(e1[0], e2[0]); - if (c !== 0) { - return c; - } else { - var c$1 = Curry._2(cmp, e1[1], e2[1]); - if (c$1 !== 0) { - return c$1; - } else { - _e2 = cons_enum(e2[2], e2[3]); - _e1 = cons_enum(e1[2], e1[3]); - continue ; - - } - } - } else { - return 1; - } - } else if (e2) { - return -1; - } else { - return 0; - } - }; -} - -function equal(cmp, m1, m2) { - var _e1 = cons_enum(m1, /* End */0); - var _e2 = cons_enum(m2, /* End */0); - while(true) { - var e2 = _e2; - var e1 = _e1; - if (e1) { - if (e2) { - if (Caml_primitive.caml_string_compare(e1[0], e2[0])) { - return /* false */0; - } else if (Curry._2(cmp, e1[1], e2[1])) { - _e2 = cons_enum(e2[2], e2[3]); - _e1 = cons_enum(e1[2], e1[3]); - continue ; - - } else { - return /* false */0; - } - } else { - return /* false */0; - } - } else if (e2) { - return /* false */0; - } else { - return /* true */1; - } - }; -} - -function cardinal(param) { - if (param) { - return (cardinal(param[0]) + 1 | 0) + cardinal(param[3]) | 0; - } else { - return 0; - } -} - -function bindings_aux(_accu, _param) { - while(true) { - var param = _param; - var accu = _accu; - if (param) { - _param = param[0]; - _accu = /* :: */[ - /* tuple */[ - param[1], - param[2] - ], - bindings_aux(accu, param[3]) - ]; - continue ; - - } else { - return accu; - } - }; -} - -function bindings(s) { - return bindings_aux(/* [] */0, s); -} - -var ObjectDict = [ - /* Empty */0, - is_empty, - mem, - add, - singleton, - remove, - merge, - compare, - equal, - iter, - fold, - for_all, - exists, - filter, - partition, - cardinal, - bindings, - min_binding, - max_binding, - min_binding, - split, - find, - map, - mapi -]; - var ParseFail = Caml_exceptions.create("Tea_json.Decoder.ParseFail"); var string = /* Decoder */[(function (value) { @@ -784,7 +105,7 @@ function list(param) { } }; try { - return /* Ok */Block.__(0, [List.map(parse, $$Array.to_list(match[0]))]); + return /* Ok */Block.__(0, [Belt_List.map(Belt_List.fromArray(match[0]), parse)]); } catch (raw_exn){ var exn = Js_exn.internalToOCamlException(raw_exn); @@ -819,7 +140,7 @@ function array(param) { } }; try { - return /* Ok */Block.__(0, [$$Array.map(parse, match[0])]); + return /* Ok */Block.__(0, [Belt_Array.map(match[0], parse)]); } catch (raw_exn){ var exn = Js_exn.internalToOCamlException(raw_exn); @@ -844,7 +165,7 @@ function keyValuePairs(param) { } else if (match.tag === 2) { var o = match[0]; var keys = Object.keys(o); - var parse = function (k, l) { + var parse = function (l, k) { var match = o[k]; if (match !== undefined) { var match$1 = Curry._1(decoder, match); @@ -870,7 +191,7 @@ function keyValuePairs(param) { } }; try { - return /* Ok */Block.__(0, [$$Array.fold_right(parse, keys, /* [] */0)]); + return /* Ok */Block.__(0, [Belt_Array.reduceReverse(keys, /* [] */0, parse)]); } catch (raw_exn){ var exn = Js_exn.internalToOCamlException(raw_exn); @@ -895,7 +216,7 @@ function dict(param) { } else if (match.tag === 2) { var o = match[0]; var keys = Object.keys(o); - var parse = function (k, d) { + var parse = function (d, k) { var match = o[k]; if (match !== undefined) { var match$1 = Curry._1(decoder, match); @@ -905,7 +226,7 @@ function dict(param) { match$1[0] ]; } else { - return add(k, match$1[0], d); + return Belt_MapString.set(d, k, match$1[0]); } } else { throw [ @@ -915,7 +236,7 @@ function dict(param) { } }; try { - return /* Ok */Block.__(0, [$$Array.fold_right(parse, keys, /* Empty */0)]); + return /* Ok */Block.__(0, [Belt_Array.reduceReverse(keys, Belt_MapString.empty, parse)]); } catch (raw_exn){ var exn = Js_exn.internalToOCamlException(raw_exn); @@ -956,7 +277,9 @@ function field(key, param) { } function at(fields, dec) { - return List.fold_right(field, fields, dec); + return Belt_List.reduceReverseU(fields, dec, (function (d, k) { + return field(k, d); + })); } function index(idx, param) { @@ -968,9 +291,9 @@ function index(idx, param) { } else if (match.tag === 3) { var a = match[0]; if (idx < 0 || idx > a.length) { - return /* Error */Block.__(1, ["Array index out of range: " + idx]); + return /* Error */Block.__(1, ["Array index out of range: " + String(idx)]); } else { - return Curry._1(decoder, Caml_array.caml_array_get(a, idx)); + return Curry._1(decoder, a[idx]); } } else { return /* Error */Block.__(1, ["Non-array value"]); @@ -1019,7 +342,7 @@ function oneOf(decoders) { })]; } -function map$1(mapper, param) { +function map(mapper, param) { var decoder1 = param[0]; return /* Decoder */[(function (value) { var match = Curry._1(decoder1, value); @@ -1038,9 +361,7 @@ function map2(mapper, param, param$1) { var match = Curry._1(decoder1, value); var match$1 = Curry._1(decoder2, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { + if (match.tag || match$1.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._2(mapper, match[0], match$1[0])]); @@ -1069,11 +390,7 @@ function map3(mapper, param, param$1, param$2) { var match$1 = Curry._1(decoder2, value); var match$2 = Curry._1(decoder3, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { + if (match.tag || match$1.tag || match$2.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._3(mapper, match[0], match$1[0], match$2[0])]); @@ -1104,13 +421,7 @@ function map4(mapper, param, param$1, param$2, param$3) { var match$2 = Curry._1(decoder3, value); var match$3 = Curry._1(decoder4, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { - exit = 1; - } else if (match$3.tag) { + if (match.tag || match$1.tag || match$2.tag || match$3.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._4(mapper, match[0], match$1[0], match$2[0], match$3[0])]); @@ -1143,15 +454,7 @@ function map5(mapper, param, param$1, param$2, param$3, param$4) { var match$3 = Curry._1(decoder4, value); var match$4 = Curry._1(decoder5, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { - exit = 1; - } else if (match$3.tag) { - exit = 1; - } else if (match$4.tag) { + if (match.tag || match$1.tag || match$2.tag || match$3.tag || match$4.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._5(mapper, match[0], match$1[0], match$2[0], match$3[0], match$4[0])]); @@ -1186,17 +489,7 @@ function map6(mapper, param, param$1, param$2, param$3, param$4, param$5) { var match$4 = Curry._1(decoder5, value); var match$5 = Curry._1(decoder6, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { - exit = 1; - } else if (match$3.tag) { - exit = 1; - } else if (match$4.tag) { - exit = 1; - } else if (match$5.tag) { + if (match.tag || match$1.tag || match$2.tag || match$3.tag || match$4.tag || match$5.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._6(mapper, match[0], match$1[0], match$2[0], match$3[0], match$4[0], match$5[0])]); @@ -1233,19 +526,7 @@ function map7(mapper, param, param$1, param$2, param$3, param$4, param$5, param$ var match$5 = Curry._1(decoder6, value); var match$6 = Curry._1(decoder7, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { - exit = 1; - } else if (match$3.tag) { - exit = 1; - } else if (match$4.tag) { - exit = 1; - } else if (match$5.tag) { - exit = 1; - } else if (match$6.tag) { + if (match.tag || match$1.tag || match$2.tag || match$3.tag || match$4.tag || match$5.tag || match$6.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._7(mapper, match[0], match$1[0], match$2[0], match$3[0], match$4[0], match$5[0], match$6[0])]); @@ -1284,21 +565,7 @@ function map8(mapper, param, param$1, param$2, param$3, param$4, param$5, param$ var match$6 = Curry._1(decoder7, value); var match$7 = Curry._1(decoder8, value); var exit = 0; - if (match.tag) { - exit = 1; - } else if (match$1.tag) { - exit = 1; - } else if (match$2.tag) { - exit = 1; - } else if (match$3.tag) { - exit = 1; - } else if (match$4.tag) { - exit = 1; - } else if (match$5.tag) { - exit = 1; - } else if (match$6.tag) { - exit = 1; - } else if (match$7.tag) { + if (match.tag || match$1.tag || match$2.tag || match$3.tag || match$4.tag || match$5.tag || match$6.tag || match$7.tag) { exit = 1; } else { return /* Ok */Block.__(0, [Curry._8(mapper, match[0], match$1[0], match$2[0], match$3[0], match$4[0], match$5[0], match$6[0], match$7[0])]); @@ -1357,7 +624,7 @@ function nullable(decoder) { return oneOf(/* :: */[ $$null(/* None */0), /* :: */[ - map$1((function (v) { + map((function (v) { return /* Some */[v]; }), decoder), /* [] */0 @@ -1404,7 +671,7 @@ function decodeString(decoder, string) { } var Decoder = /* module */[ - /* ObjectDict */ObjectDict, + /* ObjectDict */0, /* ParseFail */ParseFail, /* string */string, /* int */$$int, @@ -1420,7 +687,7 @@ var Decoder = /* module */[ /* index */index, /* maybe */maybe, /* oneOf */oneOf, - /* map */map$1, + /* map */map, /* map2 */map2, /* map3 */map3, /* map4 */map4, @@ -1468,7 +735,7 @@ function object_(v) { o[param[0]] = param[1]; return o; }; - return List.fold_left(aux, { }, v); + return Belt_List.reduce(v, { }, aux); } function array$1(v) { diff --git a/lib/js/src/tea_mouse.js b/lib/js/src/tea_mouse.js index 0228b36..64b3245 100644 --- a/lib/js/src/tea_mouse.js +++ b/lib/js/src/tea_mouse.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Vdom = require("./vdom.js"); diff --git a/lib/js/src/tea_navigation.js b/lib/js/src/tea_navigation.js index 42b0e95..7c507d5 100644 --- a/lib/js/src/tea_navigation.js +++ b/lib/js/src/tea_navigation.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); diff --git a/lib/js/src/tea_program.js b/lib/js/src/tea_program.js index f88b52e..7f4dc0c 100644 --- a/lib/js/src/tea_program.js +++ b/lib/js/src/tea_program.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); diff --git a/lib/js/src/tea_random.js b/lib/js/src/tea_random.js index 23906b3..47f3c2e 100644 --- a/lib/js/src/tea_random.js +++ b/lib/js/src/tea_random.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); @@ -8,6 +8,10 @@ var Pervasives = require("bs-platform/lib/js/pervasives.js"); Random.self_init(/* () */0); +var minFloat = Number.MIN_VALUE; + +var maxFloat = Number.MAX_VALUE; + var bool = /* Generator */[(function (state) { return Random.State[/* bool */9](state); })]; @@ -151,10 +155,6 @@ var minInt = Pervasives.min_int; var maxInt = Pervasives.max_int; -var minFloat = Pervasives.min_float; - -var maxFloat = Pervasives.max_float; - exports.minInt = minInt; exports.maxInt = maxInt; exports.minFloat = minFloat; diff --git a/lib/js/src/tea_result.js b/lib/js/src/tea_result.js index cc09796..3d17f78 100644 --- a/lib/js/src/tea_result.js +++ b/lib/js/src/tea_result.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); @@ -42,14 +42,10 @@ function last_of(_param) { if (param) { var tl = param[1]; var last = param[0]; - if (tl) { - if (last.tag) { - return last; - } else { - _param = tl; - continue ; - - } + if (tl && !last.tag) { + _param = tl; + continue ; + } else { return last; } diff --git a/lib/js/src/tea_sub.js b/lib/js/src/tea_sub.js index 0d8ed6c..22827fc 100644 --- a/lib/js/src/tea_sub.js +++ b/lib/js/src/tea_sub.js @@ -1,9 +1,9 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); function batch(subs) { return /* Batch */Block.__(0, [subs]); @@ -50,11 +50,11 @@ function run(oldCallbacks, newCallbacks, oldSub, newSub) { case 0 : var subs = param[0]; if (subs) { - return List.iter((function(callbacks){ + return Belt_List.forEach(subs, (function(callbacks){ return function (param) { return enable(callbacks, param); } - }(callbacks)), subs); + }(callbacks))); } else { return /* () */0; } @@ -82,11 +82,11 @@ function run(oldCallbacks, newCallbacks, oldSub, newSub) { case 0 : var subs = param[0]; if (subs) { - return List.iter((function(callbacks){ + return Belt_List.forEach(subs, (function(callbacks){ return function (param) { return disable(callbacks, param); } - }(callbacks)), subs); + }(callbacks))); } else { return /* () */0; } @@ -119,9 +119,7 @@ function run(oldCallbacks, newCallbacks, oldSub, newSub) { } else { switch (oldSub.tag | 0) { case 0 : - if (typeof newSub === "number") { - exit = 1; - } else if (newSub.tag) { + if (typeof newSub === "number" || newSub.tag) { exit = 1; } else { var aux = function (_oldList, _newList) { @@ -160,29 +158,21 @@ function run(oldCallbacks, newCallbacks, oldSub, newSub) { } break; case 1 : - if (typeof newSub === "number") { + if (typeof newSub === "number" || !(newSub.tag === 1 && oldSub[0] === newSub[0])) { exit = 1; - } else if (newSub.tag === 1) { - if (oldSub[0] === newSub[0]) { - newSub[2][0] = oldSub[2][0]; - return newSub; - } else { - exit = 1; - } } else { - exit = 1; + newSub[2][0] = oldSub[2][0]; + return newSub; } break; case 2 : - if (typeof newSub === "number") { + if (typeof newSub === "number" || newSub.tag !== 2) { exit = 1; - } else if (newSub.tag === 2) { + } else { var olderCallbacks = Curry._1(oldSub[0], oldCallbacks); var newerCallbacks = Curry._1(newSub[0], newCallbacks); run(olderCallbacks, newerCallbacks, oldSub[1], newSub[1]); return newSub; - } else { - exit = 1; } break; diff --git a/lib/js/src/tea_svg.js b/lib/js/src/tea_svg.js index a24631d..266fc84 100644 --- a/lib/js/src/tea_svg.js +++ b/lib/js/src/tea_svg.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Vdom = require("./vdom.js"); diff --git a/lib/js/src/tea_svg_attributes.js b/lib/js/src/tea_svg_attributes.js index 002be87..ed9212a 100644 --- a/lib/js/src/tea_svg_attributes.js +++ b/lib/js/src/tea_svg_attributes.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); diff --git a/lib/js/src/tea_svg_events.js b/lib/js/src/tea_svg_events.js index 3adeee6..8767a68 100644 --- a/lib/js/src/tea_svg_events.js +++ b/lib/js/src/tea_svg_events.js @@ -1,2 +1,2 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */ diff --git a/lib/js/src/tea_task.js b/lib/js/src/tea_task.js index b5cd0e9..406c1e7 100644 --- a/lib/js/src/tea_task.js +++ b/lib/js/src/tea_task.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); @@ -261,7 +261,7 @@ function testing() { })]); doTest(/* Ok */Block.__(0, [4]), a1); var a2 = andThen((function (n) { - var value = "" + n; + var value = String(n); return /* Task */[(function (cb) { return Curry._1(cb, /* Ok */Block.__(0, [value])); })]; @@ -283,7 +283,9 @@ function testing() { return Curry._1(cb, /* Ok */Block.__(0, [3])); })]); doTest(/* Ok */Block.__(0, [12]), m2); - var m3 = map(Pervasives.string_of_int, /* Task */[(function (cb) { + var m3 = map((function (prim) { + return String(prim); + }), /* Task */[(function (cb) { return Curry._1(cb, /* Ok */Block.__(0, [9])); })]); doTest(/* Ok */Block.__(0, ["9"]), m3); @@ -337,7 +339,9 @@ function testing() { })]); doTest(/* Error */Block.__(1, [42]), e1); var n0 = sequence(/* :: */[ - mapError(Pervasives.string_of_int, /* Task */[(function (cb) { + mapError((function (prim) { + return String(prim); + }), /* Task */[(function (cb) { return Curry._1(cb, /* Error */Block.__(1, [42])); })]), /* :: */[ @@ -349,7 +353,9 @@ function testing() { ]); doTest(/* Error */Block.__(1, ["42"]), n0); var n1 = sequence(/* :: */[ - mapError(Pervasives.string_of_int, /* Task */[(function (cb) { + mapError((function (prim) { + return String(prim); + }), /* Task */[(function (cb) { return Curry._1(cb, /* Ok */Block.__(0, [1])); })]), /* :: */[ @@ -361,7 +367,9 @@ function testing() { ]); doTest(/* Error */Block.__(1, ["3.14"]), n1); var n2 = sequence(/* :: */[ - mapError(Pervasives.string_of_int, /* Task */[(function (cb) { + mapError((function (prim) { + return String(prim); + }), /* Task */[(function (cb) { return Curry._1(cb, /* Ok */Block.__(0, [1])); })]), /* :: */[ diff --git a/lib/js/src/tea_time.js b/lib/js/src/tea_time.js index 621f78e..4d12699 100644 --- a/lib/js/src/tea_time.js +++ b/lib/js/src/tea_time.js @@ -1,4 +1,4 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; var Block = require("bs-platform/lib/js/block.js"); diff --git a/lib/js/src/vdom.js b/lib/js/src/vdom.js index ea7e38a..8becdb9 100644 --- a/lib/js/src/vdom.js +++ b/lib/js/src/vdom.js @@ -1,13 +1,12 @@ -// Generated by BUCKLESCRIPT VERSION 2.2.2, PLEASE EDIT WITH CARE +// Generated by BUCKLESCRIPT VERSION 2.2.3, PLEASE EDIT WITH CARE 'use strict'; -var List = require("bs-platform/lib/js/list.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); var $$String = require("bs-platform/lib/js/string.js"); var Caml_obj = require("bs-platform/lib/js/caml_obj.js"); var Web_node = require("./web_node.js"); -var Caml_array = require("bs-platform/lib/js/caml_array.js"); +var Belt_List = require("bs-platform/lib/js/belt_List.js"); var Web_document = require("./web_document.js"); var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js"); @@ -122,7 +121,7 @@ function renderToHtmlString(_param) { /* :: */[ tagName, /* :: */[ - $$String.concat("", List.map((function (p) { + $$String.concat("", Belt_List.mapU(param[4], (function (p) { var param = p; if (typeof param === "number") { return ""; @@ -185,7 +184,7 @@ function renderToHtmlString(_param) { return $$String.concat("", /* :: */[ " style=\"", /* :: */[ - $$String.concat(";", List.map((function (param) { + $$String.concat(";", Belt_List.mapU(param[0], (function (param) { return $$String.concat("", /* :: */[ param[0], /* :: */[ @@ -199,7 +198,7 @@ function renderToHtmlString(_param) { ] ] ]); - }), param[0])), + }))), /* :: */[ "\"", /* [] */0 @@ -209,11 +208,11 @@ function renderToHtmlString(_param) { } } - }), param[4])), + }))), /* :: */[ ">", /* :: */[ - $$String.concat("", List.map(renderToHtmlString, param[5])), + $$String.concat("", Belt_List.mapU(param[5], renderToHtmlString)), /* :: */[ "= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; - }; - var singleton = function (x, d) { - return /* Node */[ - /* Empty */0, - x, - d, - /* Empty */0, - 1 - ]; - }; - var bal = function (l, x, d, r) { - var hl = l ? l[4] : 0; - var hr = r ? r[4] : 0; - if (hl > (hr + 2 | 0)) { - if (l) { - var lr = l[3]; - var ld = l[2]; - var lv = l[1]; - var ll = l[0]; - if (height(ll) >= height(lr)) { - return create(ll, lv, ld, create(lr, x, d, r)); - } else if (lr) { - return create(create(ll, lv, ld, lr[0]), lr[1], lr[2], create(lr[3], x, d, r)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else if (hr > (hl + 2 | 0)) { - if (r) { - var rr = r[3]; - var rd = r[2]; - var rv = r[1]; - var rl = r[0]; - if (height(rr) >= height(rl)) { - return create(create(l, x, d, rl), rv, rd, rr); - } else if (rl) { - return create(create(l, x, d, rl[0]), rl[1], rl[2], create(rl[3], rv, rd, rr)); - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.bal" - ]; - } - } else { - return /* Node */[ - l, - x, - d, - r, - hl >= hr ? hl + 1 | 0 : hr + 1 | 0 - ]; - } - }; - var add = function (x, data, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(add(x, data, l), v, d, r); - } else { - return bal(l, v, d, add(x, data, r)); - } - } else { - return /* Node */[ - l, - x, - data, - r, - param[4] - ]; - } - } else { - return /* Node */[ - /* Empty */0, - x, - data, - /* Empty */0, - 1 - ]; - } - }; - var min_binding = function (_param) { - while(true) { - var param = _param; - if (param) { - var l = param[0]; - if (l) { - _param = l; - continue ; - - } else { - return /* tuple */[ - param[1], - param[2] - ]; - } - } else { - throw Caml_builtin_exceptions.not_found; - } - }; - }; - var remove_min_binding = function (param) { - if (param) { - var l = param[0]; - if (l) { - return bal(remove_min_binding(l), param[1], param[2], param[3]); - } else { - return param[3]; - } - } else { - throw [ - Caml_builtin_exceptions.invalid_argument, - "Map.remove_min_elt" - ]; - } - }; - var remove = function (x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - return bal(remove(x, l), v, d, r); - } else { - return bal(l, v, d, remove(x, r)); - } - } else { - var t1 = l; - var t2 = r; - if (t1) { - if (t2) { - var match = min_binding(t2); - return bal(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } - } - } else { - return /* Empty */0; - } - }; - var iter = function (f, _param) { - while(true) { - var param = _param; - if (param) { - iter(f, param[0]); - Curry._2(f, param[1], param[2]); - _param = param[3]; - continue ; - - } else { - return /* () */0; - } - }; - }; - var map = function (f, param) { - if (param) { - var l$prime = map(f, param[0]); - var d$prime = Curry._1(f, param[2]); - var r$prime = map(f, param[3]); - return /* Node */[ - l$prime, - param[1], - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } - }; - var mapi = function (f, param) { - if (param) { - var v = param[1]; - var l$prime = mapi(f, param[0]); - var d$prime = Curry._2(f, v, param[2]); - var r$prime = mapi(f, param[3]); - return /* Node */[ - l$prime, - v, - d$prime, - r$prime, - param[4] - ]; - } else { - return /* Empty */0; - } - }; - var fold = function (f, _m, _accu) { - while(true) { - var accu = _accu; - var m = _m; - if (m) { - _accu = Curry._3(f, m[1], m[2], fold(f, m[0], accu)); - _m = m[3]; - continue ; - - } else { - return accu; - } - }; - }; - var for_all = function (p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - if (for_all(p, param[0])) { - _param = param[3]; - continue ; - - } else { - return /* false */0; - } - } else { - return /* false */0; - } - } else { - return /* true */1; - } - }; - }; - var exists = function (p, _param) { - while(true) { - var param = _param; - if (param) { - if (Curry._2(p, param[1], param[2])) { - return /* true */1; - } else if (exists(p, param[0])) { - return /* true */1; - } else { - _param = param[3]; - continue ; - - } - } else { - return /* false */0; - } - }; - }; - var add_min_binding = function (k, v, param) { - if (param) { - return bal(add_min_binding(k, v, param[0]), param[1], param[2], param[3]); - } else { - return singleton(k, v); - } - }; - var add_max_binding = function (k, v, param) { - if (param) { - return bal(param[0], param[1], param[2], add_max_binding(k, v, param[3])); - } else { - return singleton(k, v); - } - }; - var join = function (l, v, d, r) { - if (l) { - if (r) { - var rh = r[4]; - var lh = l[4]; - if (lh > (rh + 2 | 0)) { - return bal(l[0], l[1], l[2], join(l[3], v, d, r)); - } else if (rh > (lh + 2 | 0)) { - return bal(join(l, v, d, r[0]), r[1], r[2], r[3]); - } else { - return create(l, v, d, r); - } - } else { - return add_max_binding(v, d, l); - } - } else { - return add_min_binding(v, d, r); - } - }; - var concat = function (t1, t2) { - if (t1) { - if (t2) { - var match = min_binding(t2); - return join(t1, match[0], match[1], remove_min_binding(t2)); - } else { - return t1; - } - } else { - return t2; - } - }; - var concat_or_join = function (t1, v, d, t2) { - if (d) { - return join(t1, v, d[0], t2); - } else { - return concat(t1, t2); - } - }; - var split = function (x, param) { - if (param) { - var r = param[3]; - var d = param[2]; - var v = param[1]; - var l = param[0]; - var c = Caml_primitive.caml_string_compare(x, v); - if (c) { - if (c < 0) { - var match = split(x, l); - return /* tuple */[ - match[0], - match[1], - join(match[2], v, d, r) - ]; - } else { - var match$1 = split(x, r); - return /* tuple */[ - join(l, v, d, match$1[0]), - match$1[1], - match$1[2] - ]; - } - } else { - return /* tuple */[ - l, - /* Some */[d], - r - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* None */0, - /* Empty */0 - ]; - } - }; - var merge = function (f, s1, s2) { - var exit = 0; - if (s1) { - var v1 = s1[1]; - if (s1[4] >= height(s2)) { - var match = split(v1, s2); - return concat_or_join(merge(f, s1[0], match[0]), v1, Curry._3(f, v1, /* Some */[s1[2]], match[1]), merge(f, s1[3], match[2])); - } else { - exit = 1; - } - } else if (s2) { - exit = 1; - } else { - return /* Empty */0; - } - if (exit === 1) { - if (s2) { - var v2 = s2[1]; - var match$1 = split(v2, s1); - return concat_or_join(merge(f, match$1[0], s2[0]), v2, Curry._3(f, v2, match$1[1], /* Some */[s2[2]]), merge(f, match$1[2], s2[3])); - } else { - throw [ - Caml_builtin_exceptions.assert_failure, - [ - "map.ml", - 270, - 10 - ] - ]; - } - } - - }; - var filter = function (p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var l$prime = filter(p, param[0]); - var pvd = Curry._2(p, v, d); - var r$prime = filter(p, param[3]); - if (pvd) { - return join(l$prime, v, d, r$prime); - } else { - return concat(l$prime, r$prime); - } - } else { - return /* Empty */0; - } - }; - var partition = function (p, param) { - if (param) { - var d = param[2]; - var v = param[1]; - var match = partition(p, param[0]); - var lf = match[1]; - var lt = match[0]; - var pvd = Curry._2(p, v, d); - var match$1 = partition(p, param[3]); - var rf = match$1[1]; - var rt = match$1[0]; - if (pvd) { - return /* tuple */[ - join(lt, v, d, rt), - concat(lf, rf) - ]; - } else { - return /* tuple */[ - concat(lt, rt), - join(lf, v, d, rf) - ]; - } - } else { - return /* tuple */[ - /* Empty */0, - /* Empty */0 - ]; - } - }; - var cardinal = function (param) { - if (param) { - return (cardinal(param[0]) + 1 | 0) + cardinal(param[3]) | 0; - } else { - return 0; - } - }; - var bindings_aux = function (_accu, _param) { - while(true) { - var param = _param; - var accu = _accu; - if (param) { - _param = param[0]; - _accu = /* :: */[ - /* tuple */[ - param[1], - param[2] - ], - bindings_aux(accu, param[3]) - ]; - continue ; - - } else { - return accu; - } - }; - }; var err = getAllResponseHeadersAsList(x); if (err.tag) { return err; } else { var insert = function (d, param) { - return add(param[0], param[1], d); + return Belt_MapString.set(d, param[0], param[1]); }; - return /* Ok */Block.__(0, [List.fold_left(insert, /* Empty */0, err[0])]); + return /* Ok */Block.__(0, [Belt_List.reduce(err[0], Belt_MapString.empty, insert)]); } } @@ -559,10 +82,10 @@ function overrideMimeType(mimetype, x) { function send(body, x) { if (typeof body === "number") { - if (body) { - return x.send(null); - } else { + if (body === 0) { return x.send(); + } else { + return x.send(null); } } else { switch (body.tag | 0) { @@ -571,10 +94,10 @@ function send(body, x) { case 1 : return x.send(body[0]); case 2 : - var form = List.fold_left((function (f, param) { + var form = Belt_List.reduce(body[0], new FormData(), (function (f, param) { Web_formdata.append(param[0], param[1], f); return f; - }), new FormData(), body[0]); + })); return x.send(form); case 3 : return x.send(body[0]); @@ -588,7 +111,8 @@ function setRequestHeader(header, value, x) { } function set_onreadystatechange(cb, x) { - return x.onreadystatechange = cb; + x.onreadystatechange = cb; + return /* () */0; } function get_onreadystatechange(x) { @@ -598,7 +122,7 @@ function get_onreadystatechange(x) { function readyState(x) { var i = x.readystate; if (i > 4 || i < 0) { - var s = "Invalid return from 'readystate' of: " + i; + var s = "Invalid return from 'readystate' of: " + String(i); throw [ Caml_builtin_exceptions.failure, s @@ -612,21 +136,28 @@ function set_responseType(typ, x) { if (typeof typ === "number") { switch (typ) { case 0 : - return x.responseType = ""; + x.responseType = ""; + return /* () */0; case 1 : - return x.responseType = "arraybuffer"; + x.responseType = "arraybuffer"; + return /* () */0; case 2 : - return x.responseType = "blob"; + x.responseType = "blob"; + return /* () */0; case 3 : - return x.responseType = "document"; + x.responseType = "document"; + return /* () */0; case 4 : - return x.responseType = "json"; + x.responseType = "json"; + return /* () */0; case 5 : - return x.responseType = "text"; + x.responseType = "text"; + return /* () */0; } } else { - return x.responseType = typ[0]; + x.responseType = typ[0]; + return /* () */0; } } @@ -702,7 +233,8 @@ function get_statusText(x) { } function set_timeout(t, x) { - return x.timeout = t; + x.timeout = t; + return /* () */0; } function get_timeout(x) { @@ -710,7 +242,8 @@ function get_timeout(x) { } function set_withCredentials(b, x) { - return x.withCredentials = b; + x.withCredentials = b; + return /* () */0; } function get_withCredentials(x) { @@ -718,7 +251,8 @@ function get_withCredentials(x) { } function set_onabort(cb, x) { - return x.onabort = cb; + x.onabort = cb; + return /* () */0; } function get_onabort(x) { @@ -726,7 +260,8 @@ function get_onabort(x) { } function set_onerror(cb, x) { - return x.onerror = cb; + x.onerror = cb; + return /* () */0; } function get_onerror(x) { @@ -734,7 +269,8 @@ function get_onerror(x) { } function set_onload(cb, x) { - return x.onload = cb; + x.onload = cb; + return /* () */0; } function get_onload(x) { @@ -742,7 +278,8 @@ function get_onload(x) { } function set_onloadstart(cb, x) { - return x.onloadstart = cb; + x.onloadstart = cb; + return /* () */0; } function get_onloadstart(x) { @@ -750,7 +287,8 @@ function get_onloadstart(x) { } function set_onprogress(cb, x) { - return x.onprogress = cb; + x.onprogress = cb; + return /* () */0; } function get_onprogress(x) { @@ -758,7 +296,8 @@ function get_onprogress(x) { } function set_ontimeout(cb, x) { - return x.ontimeout = cb; + x.ontimeout = cb; + return /* () */0; } function get_ontimeout(x) { @@ -766,7 +305,8 @@ function get_ontimeout(x) { } function set_onloadend(cb, x) { - return x.onloadend = cb; + x.onloadend = cb; + return /* () */0; } function get_onloadend(x) { diff --git a/package.json b/package.json index f9a355d..b0ddf1b 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ "bs-platform": "^2.2.2" }, "devDependencies": { - "browserify": "^14.0.0", - "bs-platform": "^2.2.2", - "npm-run-all": "4.0.2", - "watchify": "3.9.0" + "browserify": "^16.1.1", + "bs-platform": "^2.2.3", + "npm-run-all": "^4.1.2", + "watchify": "^3.11.0" } } diff --git a/src/tea_app.ml b/src/tea_app.ml index db50c65..9dd3ebb 100644 --- a/src/tea_app.ml +++ b/src/tea_app.ml @@ -110,7 +110,7 @@ let programStateWrapper initModel pump shutdown = | Some [] -> pending := None | Some msgs -> let () = pending := None in - List.iter handler (List.rev msgs) + Belt.List.forEach (Belt.List.reverse msgs) handler ) | Some msgs -> pending := Some (msg :: msgs) in let finalizedCBs : 'msg Vdom.applicationCallbacks = { @@ -194,7 +194,7 @@ let programLoop update view subscriptions initModel initCmd = function (* let () = Js.log (Vdom.createVNodeIntoElement callbacks !lastVdom parentNode) in *) (* We own the passed in node, clear it out TODO: Clear it out properly *) (* let () = Js.log ("Blah", Web.Node.firstChild parentNode, Js.Null.test (Web.Node.firstChild parentNode), false, true) in *) - let clearPnode () = while (Js.Array.length (Web.Node.childNodes parentNode)) > 0 do + let clearPnode () = while (Belt.Array.length (Web.Node.childNodes parentNode)) > 0 do match Js.Null.toOption (Web.Node.firstChild parentNode) with | None -> () | Some firstChild -> let _removedChild = Web.Node.removeChild parentNode firstChild in () diff --git a/src/tea_cmd.ml b/src/tea_cmd.ml index fe93fb6..7cb0373 100644 --- a/src/tea_cmd.ml +++ b/src/tea_cmd.ml @@ -35,7 +35,7 @@ let rec run callbacks = function | NoCmd -> () | Tagger tagger -> tagger callbacks - | Batch cmds -> List.fold_left (fun () cmd -> run callbacks cmd) () cmds + | Batch cmds -> Belt.List.reduceU cmds () (fun [@bs] () cmd -> run callbacks cmd) | EnqueueCall cb -> (* let () = Js.log ("Cmd.run", "enqueue", cb) in *) cb callbacks diff --git a/src/tea_html.ml b/src/tea_html.ml index 26bb402..3238c4d 100644 --- a/src/tea_html.ml +++ b/src/tea_html.ml @@ -224,8 +224,8 @@ let class' name = prop "className" name let classList classes = classes - |> List.filter (fun (_fst, snd) -> snd) - |> List.map (fun (fst, _snd) -> fst) + |. Belt.List.keep (fun (_fst, snd) -> snd) + |. Belt.List.map (fun (fst, _snd) -> fst) |> String.concat " " |> class' diff --git a/src/tea_http.ml b/src/tea_http.ml index d0b90e1..2c81416 100644 --- a/src/tea_http.ml +++ b/src/tea_http.ml @@ -12,7 +12,7 @@ type responseBody = Web.XMLHttpRequest.responseBody type response = { url : string ; status : response_status - ; headers : string Map.Make(String).t + ; headers : string Belt.Map.String.t ; body : responseBody } @@ -93,7 +93,7 @@ let getString url = let send resultToMessage (Request (request, maybeEvents)) = - let module StringMap = Map.Make(String) in + let module StringMap = Belt.Map.String in let {method'; headers; url; body; expect; timeout; withCredentials } = request in let (Expect (typ, responseToResult)) = expect in Tea_cmd.call (fun callbacks -> @@ -141,7 +141,7 @@ let send resultToMessage (Request (request, maybeEvents)) = with _ -> enqResError (BadUrl url) () in let () = let setHeader (Header (k, v)) = Web.XMLHttpRequest.setRequestHeader k v xhr in - let () = List.iter setHeader headers in + let () = Belt.List.forEach headers setHeader in let () = Web.XMLHttpRequest.set_responseType typ xhr in let () = match timeout with diff --git a/src/tea_json.ml b/src/tea_json.ml index f6ca0b8..6d8c2af 100644 --- a/src/tea_json.ml +++ b/src/tea_json.ml @@ -3,7 +3,7 @@ module Decoder = struct type error = String.t - module ObjectDict = Map.Make(String) + module ObjectDict = Belt.Map.String type ('input, 'result) t = Decoder of ('input -> ('result, error) Tea_result.t) @@ -85,7 +85,7 @@ module Decoder = struct | Tea_result.Ok r -> r | Tea_result.Error e -> raise (ParseFail e) ) in - try Tea_result.Ok (Array.to_list a |> List.map parse) + try Tea_result.Ok (Belt.List.fromArray a |. Belt.List.map parse) with ParseFail e -> Tea_result.Error ("list -> " ^ e) ) | _ -> Tea_result.Error "Non-list value" @@ -102,7 +102,7 @@ module Decoder = struct | Tea_result.Ok r -> r | Tea_result.Error e -> raise (ParseFail e) ) in - try Tea_result.Ok (Array.map parse a) + try Tea_result.Ok (Belt.Array.map a parse) with ParseFail e -> Tea_result.Error ("array -> " ^ e) ) | _ -> Tea_result.Error "Non-array value" @@ -115,7 +115,7 @@ module Decoder = struct match classify value with | JSONObject o -> ( let keys = Js.Dict.keys o in - let parse k l = + let parse l k = ( match Js.Dict.get o k with | None -> raise (ParseFail ("Key is undefined: " ^ k)) | Some v -> @@ -123,7 +123,7 @@ module Decoder = struct | Tea_result.Ok r -> (k, r) :: l | Tea_result.Error e -> raise (ParseFail e) ) in - try Tea_result.Ok (Array.fold_right parse keys []) + try Tea_result.Ok (Belt.Array.reduceReverse keys [] parse) with ParseFail e -> Tea_result.Error ("Invalid keyValuePair parsing: " ^ e) ) | _ -> Tea_result.Error "Non-keyValuePair value" @@ -136,16 +136,16 @@ module Decoder = struct match classify value with | JSONObject o -> ( let keys = Js.Dict.keys o in - let parse k d = + let parse d k = ( match Js.Dict.get o k with | None -> raise (ParseFail ("Key is undefined: " ^ k)) | Some v -> match decoder v with - | Tea_result.Ok r -> ObjectDict.add k r d + | Tea_result.Ok r -> ObjectDict.set d k r | Tea_result.Error e -> raise (ParseFail e) ) in let emptyDict = ObjectDict.empty in - try Tea_result.Ok (Array.fold_right parse keys emptyDict) + try Tea_result.Ok (Belt.Array.reduceReverse keys emptyDict parse) with ParseFail e -> Tea_result.Error ("Invalid dict parsing: " ^ e) ) | _ -> Tea_result.Error "Non-dict value" @@ -168,7 +168,7 @@ module Decoder = struct ) let at fields dec = - List.fold_right field fields dec + Belt.List.reduceReverseU fields dec (fun [@bs] d k -> field k d) let index idx (Decoder decoder) = Decoder @@ -176,9 +176,9 @@ module Decoder = struct let open Web.Json in match classify value with | JSONArray a -> - if idx < 0 || idx > (Array.length a) + if idx < 0 || idx > (Belt.Array.length a) then Tea_result.Error ("Array index out of range: " ^ (string_of_int idx)) - else decoder a.(idx) + else decoder (Belt.Array.getUnsafe a idx) | _ -> Tea_result.Error "Non-array value" ) @@ -540,7 +540,7 @@ module Encoder = struct let aux o (k, v) = let () = Js.Dict.set o k v in o in - let o = List.fold_left aux (Js.Dict.empty ()) v in + let o = Belt.List.reduce v (Js.Dict.empty ()) aux in Json.of_type Json.Object o let array (v : 't array) = Json.of_type Json.Array v diff --git a/src/tea_sub.ml b/src/tea_sub.ml index 8d84ba7..0bdd4dc 100644 --- a/src/tea_sub.ml +++ b/src/tea_sub.ml @@ -38,7 +38,7 @@ let rec run : type msgOld msgNew . msgOld Vdom.applicationCallbacks ref -> msgNe let rec enable : type msg . msg Vdom.applicationCallbacks ref -> msg t -> unit = fun callbacks -> function | NoSub -> () | Batch [] -> () - | Batch subs -> List.iter (enable callbacks) subs + | Batch subs -> Belt.List.forEach subs (enable callbacks) | Mapper (mapper, sub) -> let subCallbacks = mapper callbacks in enable subCallbacks sub @@ -47,7 +47,7 @@ let rec run : type msgOld msgNew . msgOld Vdom.applicationCallbacks ref -> msgNe let rec disable : type msg . msg Vdom.applicationCallbacks ref -> msg t -> unit = fun callbacks -> function | NoSub -> () | Batch [] -> () - | Batch subs -> List.iter (disable callbacks) subs + | Batch subs -> Belt.List.forEach subs (disable callbacks) | Mapper (mapper, sub) -> let subCallbacks = mapper callbacks in disable subCallbacks sub diff --git a/src/tea_task.ml b/src/tea_task.ml index 24fd929..51ee539 100644 --- a/src/tea_task.ml +++ b/src/tea_task.ml @@ -141,7 +141,7 @@ let map6 func task1 task2 task3 task4 task5 task6 = let rec sequence = function | [] -> succeed [] | task :: remainingTasks -> - map2 (fun l r -> l :: r (* TODO: Replace with `List.cons` when updated to version 4.03 *)) task (sequence remainingTasks) + map2 (fun l r -> Belt.List.add r l) task (sequence remainingTasks) diff --git a/src/vdom.ml b/src/vdom.ml index 65289ff..aa861eb 100644 --- a/src/vdom.ml +++ b/src/vdom.ml @@ -115,16 +115,16 @@ let rec renderToHtmlString = function | Attribute (_namespace, k, v) -> String.concat "" [" "; k; "=\""; v; "\""] | Data (k, v) -> String.concat "" [" data-"; k; "=\""; v; "\""] | Event (_, _, _) -> "" - | Style s -> String.concat "" [" style=\""; String.concat ";" (List.map (fun (k, v) -> String.concat "" [k;":";v;";"]) s); "\""] + | Style s -> String.concat "" [" style=\""; String.concat ";" (Belt.List.mapU s (fun [@bs] (k, v) -> String.concat "" [k;":";v;";"])); "\""] in String.concat "" [ "<" ; namespace ; if namespace = "" then "" else ":" ; tagName - ; String.concat "" (List.map (fun p -> renderProp p) props) + ; String.concat "" (Belt.List.mapU props (fun [@bs] p -> renderProp p)) ; ">" - ; String.concat "" (List.map (fun v -> renderToHtmlString v) vdoms) + ; String.concat "" (Belt.List.mapU vdoms (fun [@bs] v -> renderToHtmlString v)) ; "" @@ -202,7 +202,7 @@ let patchVNodesOnElems_PropertiesApply_Add callbacks elem _idx = function | Attribute (namespace, k, v) -> Web.Node.setAttributeNsOptional elem namespace k v | Data (k, v) -> Js.log ("TODO: Add Data Unhandled", k, v); failwith "TODO: Add Data Unhandled" | Event (name, handlerType, cache) -> cache := eventHandler_Register callbacks elem name handlerType - | Style s -> List.fold_left (fun () (k, v) -> Web.Node.setStyleProperty elem k (Js.Null.return v)) () s + | Style s -> Belt.List.reduceU s () (fun [@bs] () (k, v) -> Web.Node.setStyleProperty elem k (Js.Null.return v)) let patchVNodesOnElems_PropertiesApply_Remove _callbacks elem _idx = function @@ -211,7 +211,7 @@ let patchVNodesOnElems_PropertiesApply_Remove _callbacks elem _idx = function | Attribute (namespace, k, _v) -> Web.Node.removeAttributeNsOptional elem namespace k | Data (k, v) -> Js.log ("TODO: Remove Data Unhandled", k, v); failwith "TODO: Remove Data Unhandled" | Event (name, _, cache) -> cache := eventHandler_Unregister elem name !cache - | Style s -> List.fold_left (fun () (k, _v) -> Web.Node.setStyleProperty elem k Js.Null.empty) () s + | Style s -> Belt.List.reduceU s () (fun [@bs] () (k, _v) -> Web.Node.setStyleProperty elem k Js.Null.empty) let patchVNodesOnElems_PropertiesApply_RemoveAdd callbacks elem idx oldProp newProp = let () = patchVNodesOnElems_PropertiesApply_Remove callbacks elem idx oldProp in @@ -232,7 +232,7 @@ let patchVNodesOnElems_PropertiesApply_Mutate _callbacks elem _idx oldProp = fun (* let () = Js.log ("Mutating Style", elem, oldProp, _newProp) in *) match [@ocaml.warning "-4"] oldProp with | Style oldS -> - List.fold_left2 (fun () (ok, ov) (nk, nv) -> + Belt.List.reduce2U oldS s () (fun [@bs] () (ok, ov) (nk, nv) -> if ok = nk then if ov = nv then () @@ -241,7 +241,7 @@ let patchVNodesOnElems_PropertiesApply_Mutate _callbacks elem _idx oldProp = fun else let () = Web.Node.setStyleProperty elem ok Js.Null.empty in Web.Node.setStyleProperty elem nk (Js.Null.return nv) - ) () oldS s + ) | _ -> failwith "Passed a non-Style to a new Style as a Mutations while the old Style is not actually a style!" let rec patchVNodesOnElems_PropertiesApply callbacks elem idx oldProperties newProperties = @@ -309,12 +309,12 @@ let genEmptyProps length = | len -> aux (noProp :: lst) (len - 1) in aux [] length -let mapEmptyProps props = List.map (fun _ -> noProp) props +let mapEmptyProps props = Belt.List.mapU props (fun [@bs] _ -> noProp) let rec patchVNodesOnElems_ReplaceNode callbacks elem elems idx = function [@ocaml.warning "-4"] | (Node (newNamespace, newTagName, _newKey, _newUnique, newProperties, newChildren)) -> - let oldChild = elems.(idx) in + let oldChild = Belt.Array.getUnsafe elems idx in let newChild = Web.Document.createElementNsOptional newNamespace newTagName in let [@ocaml.warning "-8"] true = patchVNodesOnElems_Properties callbacks newChild (mapEmptyProps newProperties) newProperties in let childChildren = Web.Node.childNodes newChild in @@ -348,11 +348,11 @@ and patchVNodesOnElems_MutateNode callbacks elem elems idx oldNode newNode = (Node (_newNamespace, newTagName, _newKey, newUnique, newProperties, newChildren) as newNode)) -> (* We are being ordered to mutate the node, the key's are already handled *) if oldUnique <> newUnique || oldTagName <> newTagName then - (* let () = Js.log ("Node test", "unique swap", elem, elems.(idx), newNode) in *) + (* let () = Js.log ("Node test", "unique swap", elem, Belt.Array.getUnsafe elems idx, newNode) in *) patchVNodesOnElems_ReplaceNode callbacks elem elems idx newNode else (* Same node type, just mutate things *) - (* let () = Js.log ("Node test", "non-unique mutate", elem, elems.(idx), newNode) in *) - let child = elems.(idx) in + (* let () = Js.log ("Node test", "non-unique mutate", elem, Belt.Array.getUnsafe elems idx, newNode) in *) + let child = Belt.Array.getUnsafe elems idx in let childChildren = Web.Node.childNodes child in let () = if patchVNodesOnElems_Properties callbacks child oldProperties newProperties then () else (* Properties mutation failed, full swap and log *) @@ -378,13 +378,13 @@ and patchVNodesOnElems callbacks elem elems idx oldVNodes newVNodes = let _attachedChild = Web.Node.appendChild elem newChild in patchVNodesOnElems callbacks elem elems (idx + 1) [] newRest | _oldVnode :: oldRest, [] -> - let child = elems.(idx) in + let child = Belt.Array.getUnsafe elems idx in let _removedChild = Web.Node.removeChild elem child in patchVNodesOnElems callbacks elem elems idx oldRest [] (* Not changing idx so we can delete the rest too *) | CommentNode oldS :: oldRest, CommentNode newS :: newRest when oldS = newS -> patchVNodesOnElems callbacks elem elems (idx+1) oldRest newRest | Text oldText :: oldRest, Text newText :: newRest -> let () = if oldText = newText then () else - let child = elems.(idx) in + let child = Belt.Array.getUnsafe elems idx in Web.Node.set_nodeValue child newText in patchVNodesOnElems callbacks elem elems (idx+1) oldRest newRest | LazyGen (oldKey, _oldGen, oldCache) :: oldRest, LazyGen (newKey, newGen, newCache) :: newRest -> @@ -396,30 +396,30 @@ and patchVNodesOnElems callbacks elem elems idx oldVNodes newVNodes = ( match oldRest, newRest with | LazyGen (olderKey, _olderGen, _olderCache) :: olderRest, LazyGen (newerKey, _newerGen, _newerCache) :: newerRest when olderKey = newKey && oldKey = newerKey -> - (* let () = Js.log ("Lazy older newer swap", olderKey, oldKey, newKey, newerKey, elem, elems.(idx)) in *) + (* let () = Js.log ("Lazy older newer swap", olderKey, oldKey, newKey, newerKey, elem, Belt.Array.getUnsafe elems idx) in *) (* TODO: Test this branch, it is untested thus far *) - let firstChild = elems.(idx) in - let secondChild = elems.(idx+1) in + let firstChild = Belt.Array.getUnsafe elems idx in + let secondChild = Belt.Array.getUnsafe elems (idx+1) in let _removedChild = Web.Node.removeChild elem secondChild in let _attachedChild = Web.Node.insertBefore elem secondChild firstChild in patchVNodesOnElems callbacks elem elems (idx+2) olderRest newerRest | LazyGen (olderKey, _olderGen, olderCache) :: olderRest, _ when olderKey = newKey -> - (* let () = Js.log ("Lazy older match", olderKey, oldKey, newKey, elem, elems.(idx)) in *) - let oldChild = elems.(idx) in + (* let () = Js.log ("Lazy older match", olderKey, oldKey, newKey, elem, Belt.Array.getUnsafe elems idx) in *) + let oldChild = Belt.Array.getUnsafe elems idx in let _removedChild = Web.Node.removeChild elem oldChild in let oldVdom = !olderCache in let () = newCache := oldVdom in (* Don't forget to pass the cache along... *) patchVNodesOnElems callbacks elem elems (idx+1) olderRest newRest | _, LazyGen (newerKey, _newerGen, _newerCache) :: _newerRest when newerKey = oldKey -> - (* let () = Js.log ("Lazy newer match", "parse", oldKey, newKey, newerKey, elem, elems.(idx)) in *) - let oldChild = elems.(idx) in + (* let () = Js.log ("Lazy newer match", "parse", oldKey, newKey, newerKey, elem, Belt.Array.getUnsafe elems idx) in *) + let oldChild = Belt.Array.getUnsafe elems idx in let newVdom = newGen () in let () = newCache := newVdom in (* Don't forget to pass the cache along... *) let newChild = patchVNodesOnElems_CreateElement callbacks newVdom in let _attachedChild = Web.Node.insertBefore elem newChild oldChild in patchVNodesOnElems callbacks elem elems (idx+1) oldVNodes newRest | _ -> - (* let () = Js.log ("Lazy nomatch", oldKey, newKey, elem, elems.(idx)) in *) + (* let () = Js.log ("Lazy nomatch", oldKey, newKey, elem, Belt.Array.getUnsafe elems idx) in *) let oldVdom = !oldCache in let newVdom = newGen () in let () = newCache := newVdom in (* Don't forget to pass the cache along... *) @@ -428,7 +428,7 @@ and patchVNodesOnElems callbacks elem elems idx oldVNodes newVNodes = | (Node (oldNamespace, oldTagName, oldKey, _oldUnique, _oldProperties, _oldChildren) as oldNode) :: oldRest, (Node (newNamespace, newTagName, newKey, _newUnique, _newProperties, _newChildren) as newNode) :: newRest -> if oldKey = newKey && oldKey <> "" then (* Do nothing, they are keyed identically *) - (* let () = Js.log ("Node test", "match", elem, elems.(idx), newNode) in *) + (* let () = Js.log ("Node test", "match", elem, Belt.Array.getUnsafe elems idx, newNode) in *) patchVNodesOnElems callbacks elem elems (idx+1) oldRest newRest else if oldKey = "" || newKey = "" then let () = patchVNodesOnElems_MutateNode callbacks elem elems idx oldNode newNode in @@ -439,23 +439,23 @@ and patchVNodesOnElems callbacks elem elems idx oldVNodes newVNodes = Node (newerNamespace, newerTagName, newerKey, _newerUnique, _newerProperties, _newerChildren) :: newerRest when olderNamespace = newNamespace && olderTagName = newTagName && olderKey = newKey && oldNamespace = newerNamespace && oldTagName = newerTagName && oldKey = newerKey -> - (* let () = Js.log ("Node test", "older newer swap", elem, elems.(idx), newNode) in *) + (* let () = Js.log ("Node test", "older newer swap", elem, Belt.Array.getUnsafe elems idx, newNode) in *) (* TODO: Test this branch, it is untested thus far *) - let firstChild = elems.(idx) in - let secondChild = elems.(idx+1) in + let firstChild = Belt.Array.getUnsafe elems idx in + let secondChild = Belt.Array.getUnsafe elems (idx+1) in let _removedChild = Web.Node.removeChild elem secondChild in let _attachedChild = Web.Node.insertBefore elem secondChild firstChild in patchVNodesOnElems callbacks elem elems (idx+2) olderRest newerRest | Node (olderNamespace, olderTagName, olderKey, _olderUnique, _olderProperties, _olderChildren) :: olderRest, _ when olderNamespace = newNamespace && olderTagName = newTagName && olderKey = newKey -> - (* let () = Js.log ("Node test", "older match", elem, elems.(idx), newNode) in *) - let oldChild = elems.(idx) in + (* let () = Js.log ("Node test", "older match", elem, Belt.Array.getUnsafe elems idx, newNode) in *) + let oldChild = Belt.Array.getUnsafe elems idx in let _removedChild = Web.Node.removeChild elem oldChild in patchVNodesOnElems callbacks elem elems (idx+1) olderRest newRest | _, Node (newerNamespace, newerTagName, newerKey, _newerUnique, _newerProperties, _newerChildren) :: _newerRest when oldNamespace = newerNamespace && oldTagName = newerTagName && oldKey = newerKey -> - (* let () = Js.log ("Node test", "newer match", elem, elems.(idx), newNode) in *) - let oldChild = elems.(idx) in + (* let () = Js.log ("Node test", "newer match", elem, Belt.Array.getUnsafe elems idx, newNode) in *) + let oldChild = Belt.Array.getUnsafe elems idx in let newChild = patchVNodesOnElems_CreateElement callbacks newNode in let _attachedChild = Web.Node.insertBefore elem newChild oldChild in patchVNodesOnElems callbacks elem elems (idx+1) oldVNodes newRest @@ -464,7 +464,7 @@ and patchVNodesOnElems callbacks elem elems idx oldVNodes newVNodes = patchVNodesOnElems callbacks elem elems (idx+1) oldRest newRest ) | _oldVnode :: oldRest, newNode :: newRest -> - let oldChild = elems.(idx) in + let oldChild = Belt.Array.getUnsafe elems idx in let newChild = patchVNodesOnElems_CreateElement callbacks newNode in let _attachedChild = Web.Node.insertBefore elem newChild oldChild in let _removedChild = Web.Node.removeChild elem oldChild in diff --git a/src/web_xmlhttprequest.ml b/src/web_xmlhttprequest.ml index 9ff6dc0..3d3f327 100644 --- a/src/web_xmlhttprequest.ml +++ b/src/web_xmlhttprequest.ml @@ -86,10 +86,10 @@ let getAllResponseHeadersAsList x = | Ok s -> Ok ( s |> Js.String.split "\r\n" - |> Array.map (Js.String.splitAtMost ": " ~limit:2) - |> Array.to_list - |> List.filter (fun a -> Array.length a == 2) - |> List.map + |. Belt.Array.map (Js.String.splitAtMost ": " ~limit:2) + |> Belt.List.fromArray + |. Belt.List.keep (fun a -> Belt.Array.length a == 2) + |. Belt.List.map ( function | [|key; value|] -> (key, value) | _ -> failwith "Cannot happen, already checked length" @@ -97,12 +97,12 @@ let getAllResponseHeadersAsList x = ) let getAllResponseHeadersAsDict x = - let module StringMap = Map.Make(String) in + let module StringMap = Belt.Map.String in match getAllResponseHeadersAsList x with | Tea_result.Error _ as err -> err | Tea_result.Ok l -> - let insert d (k, v) = StringMap.add k v d in - Tea_result.Ok (List.fold_left insert StringMap.empty l) + let insert d (k, v) = StringMap.set d k v in + Tea_result.Ok (Belt.List.reduce l StringMap.empty insert) let getResponseHeader key x = Js.Null.toOption (x##getResponse key) @@ -119,10 +119,11 @@ let send body x = | FormDataBody f -> x##send__formdata f | FormListBody l -> let form = - List.fold_left - (fun f (key, value) -> let () = Web_formdata.append key value f in f) + Belt.List.reduce + l (Web_formdata.create ()) - l in + (fun f (key, value) -> let () = Web_formdata.append key value f in f) + in x##send__formdata form | DocumentBody d -> x##send__document d (* | BlobBody b -> x##send_blob b *) diff --git a/test/test_client_attribute_removal.ml b/test/test_client_attribute_removal.ml index 917fb2b..a23701a 100644 --- a/test/test_client_attribute_removal.ml +++ b/test/test_client_attribute_removal.ml @@ -39,7 +39,7 @@ let render_languages selected languages = | Some l -> language == l | None -> false in - let rendered = List.map (fun l -> lang l (is_selected selected l)) languages in + let rendered = Belt.List.mapU languages (fun [@bs] l -> lang l (is_selected selected l)) in ul [] rendered let update state = function