@braze/web-sdk
Version:
Braze SDK for web sites and other JS platforms.
71 lines (70 loc) • 2.12 kB
JavaScript
import { logger as E } from "../../shared-lib/index.js";
import Xt from "../models/backend-errors.js";
import { getErrorMessage as si } from "./error-utils.js";
const a = {
O: (t) => {
let e, o;
try {
const r = () => {
E.error("This browser does not have any supported ajax options!");
};
let n = !1;
if ((window.XMLHttpRequest && (n = !0), !n)) return void r();
e = new XMLHttpRequest();
const s = (o) => {
"function" == typeof t.error && t.error(e.status),
"function" == typeof t.tt && t.tt(!1, o);
};
(e.onload = () => {
let o = !1;
if (4 !== e.readyState) return;
o = (e.status >= 200 && e.status < 300) || 304 === e.status;
const r = e.getAllResponseHeaders();
if (o) {
if ("function" == typeof t.W) {
let o;
try {
o = JSON.parse(e.responseText);
} catch (o) {
const n = {
error: "" === e.responseText ? Xt.zu : Xt.Mu,
response: e.responseText,
};
(0, t.W)(n, r);
}
o && t.W(o, r);
}
"function" == typeof t.tt && t.tt(!0, r);
} else s(r);
}),
(e.onerror = () => {
s(e.getAllResponseHeaders());
}),
(e.ontimeout = () => {
s();
}),
(o = JSON.stringify(t.data)),
e.open("POST", t.url, !0),
e.setRequestHeader("Content-type", "application/json"),
e.setRequestHeader("X-Requested-With", "XMLHttpRequest");
const i = t.headers || [];
for (const t of i) e.setRequestHeader(t[0], t[1]);
e.send(o);
} catch (t) {
E.error(`Network request error: ${si(t)}`);
}
},
};
export const readResponseHeaders = (t) => {
const e = {},
o = t.toString().split("\r\n");
if (!o) return e;
let r, n;
for (const t of o)
t &&
((r = t.slice(0, t.indexOf(":")).toLowerCase().trim()),
(n = t.slice(t.indexOf(":") + 1).trim()),
(e[r] = n));
return e;
};
export default a;