Files
godoxy/internal/idlewatcher/html/loading.min.js

250 lines
7.0 KiB
JavaScript

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _async_to_generator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
function _ts_generator(thisArg, body) {
var f,
y,
t,
_ = {
label: 0,
sent: function () {
if (t[0] & 1) throw t[1];
return t[1];
},
trys: [],
ops: [],
},
g = Object.create(
(typeof Iterator === "function" ? Iterator : Object).prototype,
),
d = Object.defineProperty;
return (
d(g, "next", { value: verb(0) }),
d(g, "throw", { value: verb(1) }),
d(g, "return", { value: verb(2) }),
typeof Symbol === "function" &&
d(g, Symbol.iterator, {
value: function () {
return this;
},
}),
g
);
function verb(n) {
return function (v) {
return step([n, v]);
};
}
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while ((g && ((g = 0), op[0] && (_ = 0)), _))
try {
if (
((f = 1),
y &&
(t =
op[0] & 2
? y["return"]
: op[0]
? y["throw"] || ((t = y["return"]) && t.call(y), 0)
: y.next) &&
!(t = t.call(y, op[1])).done)
)
return t;
if (((y = 0), t)) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (
!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&
(op[0] === 6 || op[0] === 2)
) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2]) _.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];
y = 0;
} finally {
f = t = 0;
}
if (op[0] & 5) throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
}
var ready = false;
window.onload = function () {
return _async_to_generator(function () {
var consoleEl, loadingDotsEl, eventSource;
function formatTimestamp(timestamp) {
var date = new Date(timestamp);
return date.toLocaleTimeString("en-US", {
hour12: false,
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
fractionalSecondDigits: 3,
});
}
function addConsoleLine(type, message, timestamp, level) {
var validLevels = ["debug", "info", "warn", "error"];
var lvl = validLevels.includes(level)
? level
: type === "error"
? "error"
: "info";
var line = document.createElement("div");
line.className = "console-line ".concat(type, " level-").concat(lvl);
var timestampEl = document.createElement("span");
timestampEl.className = "console-timestamp";
timestampEl.textContent = formatTimestamp(timestamp);
var messageEl = document.createElement("span");
messageEl.className = "console-message";
messageEl.textContent = message;
line.appendChild(timestampEl);
line.appendChild(messageEl);
consoleEl.appendChild(line);
consoleEl.scrollTop = consoleEl.scrollHeight;
}
return _ts_generator(this, function (_state) {
consoleEl = document.getElementById("console");
loadingDotsEl = document.getElementById("loading-dots");
if (!consoleEl || !loadingDotsEl) {
console.error("Required DOM elements not found");
return [2];
}
if (typeof wakeEventsPath === "undefined" || !wakeEventsPath) {
addConsoleLine(
"error",
"Configuration error: wakeEventsPath not defined",
new Date().toISOString(),
);
loadingDotsEl.style.display = "none";
return [2];
}
if (typeof EventSource === "undefined") {
addConsoleLine(
"error",
"Browser does not support Server-Sent Events",
new Date().toISOString(),
);
loadingDotsEl.style.display = "none";
return [2];
}
eventSource = new EventSource(wakeEventsPath);
eventSource.onmessage = function (event) {
var evt;
try {
evt = JSON.parse(event.data);
} catch (unused) {
addConsoleLine(
"error",
"Invalid event data: ".concat(event.data),
new Date().toISOString(),
);
return;
}
var payload = evt.data || {};
var type = evt.action;
var timestamp = evt.timestamp;
if (type === "ready") {
ready = true;
loadingDotsEl.style.display = "none";
addConsoleLine(
type,
"Container is ready, refreshing...",
timestamp,
evt.level,
);
setTimeout(function () {
window.location.reload();
}, 200);
} else if (type === "error" || evt.level === "error") {
var errorMessage =
payload.error || payload.message || "Unknown error";
addConsoleLine(type, errorMessage, timestamp, evt.level);
loadingDotsEl.style.display = "none";
eventSource.close();
} else {
var message = payload.message || "";
addConsoleLine(type, message, timestamp, evt.level);
}
};
eventSource.onerror = function () {
if (ready) {
return;
}
addConsoleLine(
"error",
"Connection lost. Please refresh the page.",
new Date().toISOString(),
);
loadingDotsEl.style.display = "none";
eventSource.close();
};
return [2];
});
})();
};