/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; self.onconnect = function (e) { const port = e.ports[0]; port.onmessage = async function (ev) { const { type, rand } = ev.data; const url = `http://localhost:21555/?type=${type}&rand=${rand}`; try { if (type === "shared-worker-xhr") { const xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onload = () => { port.postMessage({ status: xhr.status === 200 ? "OK" : "FAIL" }); }; xhr.onerror = () => { port.postMessage({ status: "FAIL" }); }; xhr.send(); } else { const res = await fetch(url); if (res.ok) { port.postMessage({ status: "OK" }); } else { port.postMessage({ status: "FAIL" }); } } } catch (ex) { port.postMessage({ status: "FAIL", error: ex.message }); } }; };