bucklescript-tea
Version:
TEA for Bucklescript
925 lines (880 loc) • 24.1 kB
JavaScript
// Generated by BUCKLESCRIPT, 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 Caml_option = require("bs-platform/lib/js/caml_option.js");
var Web_formdata = require("./web_formdata.js");
var Caml_primitive = require("bs-platform/lib/js/caml_primitive.js");
var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js");
function abort(x) {
return x.abort();
}
function getAllResponseHeaders(x) {
var match = x.getAllResponseHeaders();
if (match !== null) {
if (match === "") {
return /* Error */Block.__(1, [/* NetworkError */1]);
} else {
return /* Ok */Block.__(0, [match]);
}
} else {
return /* Error */Block.__(1, [/* IncompleteResponse */0]);
}
}
function getAllResponseHeadersAsList(x) {
var err = getAllResponseHeaders(x);
if (err.tag) {
return err;
} else {
return /* Ok */Block.__(0, [List.map((function (param) {
if (param.length !== 2) {
throw [
Caml_builtin_exceptions.failure,
"Cannot happen, already checked length"
];
}
var key = param[0];
var value = param[1];
return /* tuple */[
key,
value
];
}), List.filter((function (a) {
return a.length === 2;
}))($$Array.to_list($$Array.map((function (param) {
return param.split(": ", 2);
}), err[0].split("\r\n")))))]);
}
}
function getAllResponseHeadersAsDict(x) {
var height = function (param) {
if (param) {
return param[/* h */4];
} else {
return 0;
}
};
var create = function (l, x, d, r) {
var hl = height(l);
var hr = height(r);
return /* Node */[
/* l */l,
/* v */x,
/* d */d,
/* r */r,
/* h */hl >= hr ? hl + 1 | 0 : hr + 1 | 0
];
};
var singleton = function (x, d) {
return /* Node */[
/* l : Empty */0,
/* v */x,
/* d */d,
/* r : Empty */0,
/* h */1
];
};
var bal = function (l, x, d, r) {
var hl = l ? l[/* h */4] : 0;
var hr = r ? r[/* h */4] : 0;
if (hl > (hr + 2 | 0)) {
if (l) {
var lr = l[/* r */3];
var ld = l[/* d */2];
var lv = l[/* v */1];
var ll = l[/* 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[/* l */0]), lr[/* v */1], lr[/* d */2], create(lr[/* r */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[/* r */3];
var rd = r[/* d */2];
var rv = r[/* v */1];
var rl = r[/* l */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[/* l */0]), rl[/* v */1], rl[/* d */2], create(rl[/* r */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 */l,
/* v */x,
/* d */d,
/* r */r,
/* h */hl >= hr ? hl + 1 | 0 : hr + 1 | 0
];
}
};
var add = function (x, data, m) {
if (m) {
var r = m[/* r */3];
var d = m[/* d */2];
var v = m[/* v */1];
var l = m[/* l */0];
var c = Caml_primitive.caml_string_compare(x, v);
if (c === 0) {
if (d === data) {
return m;
} else {
return /* Node */[
/* l */l,
/* v */x,
/* d */data,
/* r */r,
/* h */m[/* h */4]
];
}
} else if (c < 0) {
var ll = add(x, data, l);
if (l === ll) {
return m;
} else {
return bal(ll, v, d, r);
}
} else {
var rr = add(x, data, r);
if (r === rr) {
return m;
} else {
return bal(l, v, d, rr);
}
}
} else {
return /* Node */[
/* l : Empty */0,
/* v */x,
/* d */data,
/* r : Empty */0,
/* h */1
];
}
};
var min_binding = function (_param) {
while(true) {
var param = _param;
if (param) {
var l = param[/* l */0];
if (l) {
_param = l;
continue ;
} else {
return /* tuple */[
param[/* v */1],
param[/* d */2]
];
}
} else {
throw Caml_builtin_exceptions.not_found;
}
};
};
var remove_min_binding = function (param) {
if (param) {
var l = param[/* l */0];
if (l) {
return bal(remove_min_binding(l), param[/* v */1], param[/* d */2], param[/* r */3]);
} else {
return param[/* r */3];
}
} else {
throw [
Caml_builtin_exceptions.invalid_argument,
"Map.remove_min_elt"
];
}
};
var merge = function (t1, t2) {
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;
}
};
var remove = function (x, m) {
if (m) {
var r = m[/* r */3];
var d = m[/* d */2];
var v = m[/* v */1];
var l = m[/* l */0];
var c = Caml_primitive.caml_string_compare(x, v);
if (c === 0) {
return merge(l, r);
} else if (c < 0) {
var ll = remove(x, l);
if (l === ll) {
return m;
} else {
return bal(ll, v, d, r);
}
} else {
var rr = remove(x, r);
if (r === rr) {
return m;
} else {
return bal(l, v, d, rr);
}
}
} else {
return /* Empty */0;
}
};
var update = function (x, f, m) {
if (m) {
var r = m[/* r */3];
var d = m[/* d */2];
var v = m[/* v */1];
var l = m[/* l */0];
var c = Caml_primitive.caml_string_compare(x, v);
if (c === 0) {
var match = Curry._1(f, Caml_option.some(d));
if (match !== undefined) {
var data = Caml_option.valFromOption(match);
if (d === data) {
return m;
} else {
return /* Node */[
/* l */l,
/* v */x,
/* d */data,
/* r */r,
/* h */m[/* h */4]
];
}
} else {
return merge(l, r);
}
} else if (c < 0) {
var ll = update(x, f, l);
if (l === ll) {
return m;
} else {
return bal(ll, v, d, r);
}
} else {
var rr = update(x, f, r);
if (r === rr) {
return m;
} else {
return bal(l, v, d, rr);
}
}
} else {
var match$1 = Curry._1(f, undefined);
if (match$1 !== undefined) {
return /* Node */[
/* l : Empty */0,
/* v */x,
/* d */Caml_option.valFromOption(match$1),
/* r : Empty */0,
/* h */1
];
} else {
return /* Empty */0;
}
}
};
var iter = function (f, _param) {
while(true) {
var param = _param;
if (param) {
iter(f, param[/* l */0]);
Curry._2(f, param[/* v */1], param[/* d */2]);
_param = param[/* r */3];
continue ;
} else {
return /* () */0;
}
};
};
var map = function (f, param) {
if (param) {
var l$prime = map(f, param[/* l */0]);
var d$prime = Curry._1(f, param[/* d */2]);
var r$prime = map(f, param[/* r */3]);
return /* Node */[
/* l */l$prime,
/* v */param[/* v */1],
/* d */d$prime,
/* r */r$prime,
/* h */param[/* h */4]
];
} else {
return /* Empty */0;
}
};
var mapi = function (f, param) {
if (param) {
var v = param[/* v */1];
var l$prime = mapi(f, param[/* l */0]);
var d$prime = Curry._2(f, v, param[/* d */2]);
var r$prime = mapi(f, param[/* r */3]);
return /* Node */[
/* l */l$prime,
/* v */v,
/* d */d$prime,
/* r */r$prime,
/* h */param[/* h */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[/* v */1], m[/* d */2], fold(f, m[/* l */0], accu));
_m = m[/* r */3];
continue ;
} else {
return accu;
}
};
};
var for_all = function (p, _param) {
while(true) {
var param = _param;
if (param) {
if (Curry._2(p, param[/* v */1], param[/* d */2]) && for_all(p, param[/* l */0])) {
_param = param[/* r */3];
continue ;
} else {
return false;
}
} else {
return true;
}
};
};
var exists = function (p, _param) {
while(true) {
var param = _param;
if (param) {
if (Curry._2(p, param[/* v */1], param[/* d */2]) || exists(p, param[/* l */0])) {
return true;
} else {
_param = param[/* r */3];
continue ;
}
} else {
return false;
}
};
};
var add_min_binding = function (k, x, param) {
if (param) {
return bal(add_min_binding(k, x, param[/* l */0]), param[/* v */1], param[/* d */2], param[/* r */3]);
} else {
return singleton(k, x);
}
};
var add_max_binding = function (k, x, param) {
if (param) {
return bal(param[/* l */0], param[/* v */1], param[/* d */2], add_max_binding(k, x, param[/* r */3]));
} else {
return singleton(k, x);
}
};
var join = function (l, v, d, r) {
if (l) {
if (r) {
var rh = r[/* h */4];
var lh = l[/* h */4];
if (lh > (rh + 2 | 0)) {
return bal(l[/* l */0], l[/* v */1], l[/* d */2], join(l[/* r */3], v, d, r));
} else if (rh > (lh + 2 | 0)) {
return bal(join(l, v, d, r[/* l */0]), r[/* v */1], r[/* d */2], r[/* 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 !== undefined) {
return join(t1, v, Caml_option.valFromOption(d), t2);
} else {
return concat(t1, t2);
}
};
var split = function (x, param) {
if (param) {
var r = param[/* r */3];
var d = param[/* d */2];
var v = param[/* v */1];
var l = param[/* l */0];
var c = Caml_primitive.caml_string_compare(x, v);
if (c === 0) {
return /* tuple */[
l,
Caml_option.some(d),
r
];
} else 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 */[
/* Empty */0,
undefined,
/* Empty */0
];
}
};
var merge$1 = function (f, s1, s2) {
if (s1) {
var v1 = s1[/* v */1];
if (s1[/* h */4] >= height(s2)) {
var match = split(v1, s2);
return concat_or_join(merge$1(f, s1[/* l */0], match[0]), v1, Curry._3(f, v1, Caml_option.some(s1[/* d */2]), match[1]), merge$1(f, s1[/* r */3], match[2]));
}
} else if (!s2) {
return /* Empty */0;
}
if (s2) {
var v2 = s2[/* v */1];
var match$1 = split(v2, s1);
return concat_or_join(merge$1(f, match$1[0], s2[/* l */0]), v2, Curry._3(f, v2, match$1[1], Caml_option.some(s2[/* d */2])), merge$1(f, match$1[2], s2[/* r */3]));
} else {
throw [
Caml_builtin_exceptions.assert_failure,
/* tuple */[
"map.ml",
393,
10
]
];
}
};
var union = function (f, s1, s2) {
if (s1) {
if (s2) {
var d2 = s2[/* d */2];
var v2 = s2[/* v */1];
var d1 = s1[/* d */2];
var v1 = s1[/* v */1];
if (s1[/* h */4] >= s2[/* h */4]) {
var match = split(v1, s2);
var d2$1 = match[1];
var l = union(f, s1[/* l */0], match[0]);
var r = union(f, s1[/* r */3], match[2]);
if (d2$1 !== undefined) {
return concat_or_join(l, v1, Curry._3(f, v1, d1, Caml_option.valFromOption(d2$1)), r);
} else {
return join(l, v1, d1, r);
}
} else {
var match$1 = split(v2, s1);
var d1$1 = match$1[1];
var l$1 = union(f, match$1[0], s2[/* l */0]);
var r$1 = union(f, match$1[2], s2[/* r */3]);
if (d1$1 !== undefined) {
return concat_or_join(l$1, v2, Curry._3(f, v2, Caml_option.valFromOption(d1$1), d2), r$1);
} else {
return join(l$1, v2, d2, r$1);
}
}
} else {
return s1;
}
} else {
return s2;
}
};
var filter = function (p, m) {
if (m) {
var r = m[/* r */3];
var d = m[/* d */2];
var v = m[/* v */1];
var l = m[/* l */0];
var l$prime = filter(p, l);
var pvd = Curry._2(p, v, d);
var r$prime = filter(p, r);
if (pvd) {
if (l === l$prime && r === r$prime) {
return m;
} else {
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[/* d */2];
var v = param[/* v */1];
var match = partition(p, param[/* l */0]);
var lf = match[1];
var lt = match[0];
var pvd = Curry._2(p, v, d);
var match$1 = partition(p, param[/* r */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[/* l */0]) + 1 | 0) + cardinal(param[/* r */3]) | 0;
} else {
return 0;
}
};
var bindings_aux = function (_accu, _param) {
while(true) {
var param = _param;
var accu = _accu;
if (param) {
_param = param[/* l */0];
_accu = /* :: */[
/* tuple */[
param[/* v */1],
param[/* d */2]
],
bindings_aux(accu, param[/* r */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 /* Ok */Block.__(0, [List.fold_left(insert, /* Empty */0, err[0])]);
}
}
function getResponseHeader(key, x) {
return Caml_option.null_to_opt(x.getResponse(key));
}
function open_(method$prime, url, $staropt$star, $staropt$star$1, $staropt$star$2, x) {
var async = $staropt$star !== undefined ? $staropt$star : true;
var user = $staropt$star$1 !== undefined ? $staropt$star$1 : "";
var password = $staropt$star$2 !== undefined ? $staropt$star$2 : "";
return x.open(method$prime, url, async, user, password);
}
function overrideMimeType(mimetype, x) {
return x.overrideMimeType(mimetype);
}
function send(body, x) {
if (typeof body === "number") {
if (body === /* EmptyBody */0) {
return x.send();
} else {
return x.send(null);
}
} else {
switch (body.tag | 0) {
case /* FormListBody */2 :
var form = List.fold_left((function (f, param) {
Web_formdata.append(param[0], param[1], f);
return f;
}), new FormData(), body[0]);
return x.send(form);
case /* StringBody */0 :
case /* FormDataBody */1 :
case /* DocumentBody */3 :
return x.send(body[0]);
}
}
}
function setRequestHeader(header, value, x) {
return x.setRequestHeader(header, value);
}
function set_onreadystatechange(cb, x) {
x.onreadystatechange = cb;
return /* () */0;
}
function get_onreadystatechange(x) {
return x.onreadystatechange;
}
function readyState(x) {
var i = x.readyState;
if (i > 4 || i < 0) {
var s = "Invalid return from 'readystate' of: " + String(i);
throw [
Caml_builtin_exceptions.failure,
s
];
} else {
return i;
}
}
function set_responseType(typ, x) {
if (typeof typ === "number") {
switch (typ) {
case /* StringResponseType */0 :
x.responseType = "";
return /* () */0;
case /* ArrayBufferResponseType */1 :
x.responseType = "arraybuffer";
return /* () */0;
case /* BlobResponseType */2 :
x.responseType = "blob";
return /* () */0;
case /* DocumentResponseType */3 :
x.responseType = "document";
return /* () */0;
case /* JsonResponseType */4 :
x.responseType = "json";
return /* () */0;
case /* TextResponseType */5 :
x.responseType = "text";
return /* () */0;
}
} else {
x.responseType = typ[0];
return /* () */0;
}
}
function get_responseType(x) {
var s = x.responseType;
switch (s) {
case "" :
return /* StringResponseType */0;
case "arraybuffer" :
return /* ArrayBufferResponseType */1;
case "blob" :
return /* BlobResponseType */2;
case "document" :
return /* DocumentResponseType */3;
case "json" :
return /* JsonResponseType */4;
case "text" :
return /* TextResponseType */5;
default:
return /* RawResponseType */[s];
}
}
function get_response(x) {
var match = x.response;
if (match !== null) {
var match$1 = get_responseType(x);
if (typeof match$1 === "number") {
switch (match$1) {
case /* StringResponseType */0 :
return /* StringResponse */Block.__(0, [match]);
case /* ArrayBufferResponseType */1 :
return /* ArrayBufferResponse */Block.__(1, [match]);
case /* BlobResponseType */2 :
return /* BlobResponse */Block.__(2, [match]);
case /* DocumentResponseType */3 :
return /* DocumentResponse */Block.__(3, [match]);
case /* JsonResponseType */4 :
return /* JsonResponse */Block.__(4, [match]);
case /* TextResponseType */5 :
return /* TextResponse */Block.__(5, [match]);
}
} else {
return /* RawResponse */Block.__(6, [
match$1[0],
match
]);
}
} else {
return /* NoResponse */0;
}
}
function get_responseText(x) {
return x.responseText;
}
function get_responseURL(x) {
return x.responseURL;
}
function get_responseXML(x) {
return Caml_option.null_to_opt(x.responseXML);
}
function get_status(x) {
return x.status;
}
function get_statusText(x) {
return x.statusText;
}
function set_timeout(t, x) {
x.timeout = t;
return /* () */0;
}
function get_timeout(x) {
return x.timeout;
}
function set_withCredentials(b, x) {
x.withCredentials = b;
return /* () */0;
}
function get_withCredentials(x) {
return x.withCredentials;
}
function set_onabort(cb, x) {
x.onabort = cb;
return /* () */0;
}
function get_onabort(x) {
return x.onabort;
}
function set_onerror(cb, x) {
x.onerror = cb;
return /* () */0;
}
function get_onerror(x) {
return x.onerror;
}
function set_onload(cb, x) {
x.onload = cb;
return /* () */0;
}
function get_onload(x) {
return x.onload;
}
function set_onloadstart(cb, x) {
x.onloadstart = cb;
return /* () */0;
}
function get_onloadstart(x) {
return x.onloadstart;
}
function set_onprogress(cb, x) {
x.onprogress = cb;
return /* () */0;
}
function get_onprogress(x) {
return x.onprogress;
}
function set_ontimeout(cb, x) {
x.ontimeout = cb;
return /* () */0;
}
function get_ontimeout(x) {
return x.ontimeout;
}
function set_onloadend(cb, x) {
x.onloadend = cb;
return /* () */0;
}
function get_onloadend(x) {
return x.onloadend;
}
exports.abort = abort;
exports.getAllResponseHeaders = getAllResponseHeaders;
exports.getAllResponseHeadersAsList = getAllResponseHeadersAsList;
exports.getAllResponseHeadersAsDict = getAllResponseHeadersAsDict;
exports.getResponseHeader = getResponseHeader;
exports.open_ = open_;
exports.overrideMimeType = overrideMimeType;
exports.send = send;
exports.setRequestHeader = setRequestHeader;
exports.set_onreadystatechange = set_onreadystatechange;
exports.get_onreadystatechange = get_onreadystatechange;
exports.readyState = readyState;
exports.set_responseType = set_responseType;
exports.get_responseType = get_responseType;
exports.get_response = get_response;
exports.get_responseText = get_responseText;
exports.get_responseURL = get_responseURL;
exports.get_responseXML = get_responseXML;
exports.get_status = get_status;
exports.get_statusText = get_statusText;
exports.set_timeout = set_timeout;
exports.get_timeout = get_timeout;
exports.set_withCredentials = set_withCredentials;
exports.get_withCredentials = get_withCredentials;
exports.set_onabort = set_onabort;
exports.get_onabort = get_onabort;
exports.set_onerror = set_onerror;
exports.get_onerror = get_onerror;
exports.set_onload = set_onload;
exports.get_onload = get_onload;
exports.set_onloadstart = set_onloadstart;
exports.get_onloadstart = get_onloadstart;
exports.set_onprogress = set_onprogress;
exports.get_onprogress = get_onprogress;
exports.set_ontimeout = set_ontimeout;
exports.get_ontimeout = get_ontimeout;
exports.set_onloadend = set_onloadend;
exports.get_onloadend = get_onloadend;
/* No side effect */