show error message when there is compilation error
This commit is contained in:
parent
24f6d8fc9a
commit
f759c58a59
@ -14,6 +14,31 @@ function setupLiveReload(): void {
|
|||||||
window.location.reload();
|
window.location.reload();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (event.type === "file-updated-failed") {
|
||||||
|
const h1 = document.getElementById("overlay-text")
|
||||||
|
if (h1) {
|
||||||
|
h1.innerHTML = "compilation failed"
|
||||||
|
h1.style.color = 'red'
|
||||||
|
h1.style.margin = ''
|
||||||
|
}
|
||||||
|
const div = document.getElementById("overlay")
|
||||||
|
if (div) {
|
||||||
|
const content = JSON.stringify(event.data, undefined, 2)
|
||||||
|
const pre = document.createElement("pre");
|
||||||
|
pre.id = "error-text"
|
||||||
|
pre.style.margin = "";
|
||||||
|
pre.textContent = content;
|
||||||
|
div.style.backgroundColor = "rgba(0,0,0,0.8)";
|
||||||
|
div.style.flexDirection = 'column'
|
||||||
|
div.appendChild(pre);
|
||||||
|
}
|
||||||
|
console.error(event.data.error)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (event.type === "file-updated") {
|
||||||
|
window.location.reload();
|
||||||
|
return;
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -31,14 +56,17 @@ setupLiveReload();
|
|||||||
|
|
||||||
function showReloadOverlay(): void {
|
function showReloadOverlay(): void {
|
||||||
const d = document.createElement("div");
|
const d = document.createElement("div");
|
||||||
|
d.id = "overlay"
|
||||||
d.style.position = "absolute";
|
d.style.position = "absolute";
|
||||||
d.style.width = "100%";
|
d.style.width = "100%";
|
||||||
d.style.height = "100%";
|
d.style.height = "100%";
|
||||||
d.style.color = "white";
|
d.style.color = "white";
|
||||||
d.style.backgroundColor = "rgba(0,0,0,0.5)";
|
d.style.backgroundColor = "rgba(0,0,0,0.5)";
|
||||||
d.style.display = "flex";
|
d.style.display = "flex";
|
||||||
|
d.style.zIndex = String(Number.MAX_SAFE_INTEGER)
|
||||||
d.style.justifyContent = "center";
|
d.style.justifyContent = "center";
|
||||||
const h = document.createElement("h1");
|
const h = document.createElement("h1");
|
||||||
|
h.id = "overlay-text"
|
||||||
h.style.margin = "auto";
|
h.style.margin = "auto";
|
||||||
h.innerHTML = "reloading...";
|
h.innerHTML = "reloading...";
|
||||||
d.appendChild(h);
|
d.appendChild(h);
|
||||||
|
@ -38,7 +38,6 @@ export async function serve(opts: {
|
|||||||
|
|
||||||
app.use(PATHS.APP, express.static(opts.folder));
|
app.use(PATHS.APP, express.static(opts.folder));
|
||||||
const server = https.createServer(httpServerOptions, app);
|
const server = https.createServer(httpServerOptions, app);
|
||||||
server.listen(opts.port);
|
|
||||||
logger.info(`serving ${opts.folder} on ${opts.port}`);
|
logger.info(`serving ${opts.folder} on ${opts.port}`);
|
||||||
logger.info(` ${PATHS.APP}: application`);
|
logger.info(` ${PATHS.APP}: application`);
|
||||||
logger.info(` ${PATHS.EXAMPLE}: examples`);
|
logger.info(` ${PATHS.EXAMPLE}: examples`);
|
||||||
@ -74,21 +73,28 @@ export async function serve(opts: {
|
|||||||
logger.info(`watching ${watchingFolder} for change`);
|
logger.info(`watching ${watchingFolder} for change`);
|
||||||
|
|
||||||
chokidar.watch(watchingFolder).on("change", (path, stats) => {
|
chokidar.watch(watchingFolder).on("change", (path, stats) => {
|
||||||
logger.trace(`changed ${path}`);
|
logger.info(`changed ${path}`);
|
||||||
|
|
||||||
sendToAllClients({ type: "file-updated-start", data: { path } });
|
|
||||||
if (opts.onUpdate) {
|
if (opts.onUpdate) {
|
||||||
|
sendToAllClients({ type: "file-updated-start", data: { path } });
|
||||||
opts.onUpdate().then((result) => {
|
opts.onUpdate().then((result) => {
|
||||||
sendToAllClients({
|
sendToAllClients({
|
||||||
type: "file-updated-done",
|
type: "file-updated-done",
|
||||||
data: { path, result },
|
data: { path, result },
|
||||||
});
|
});
|
||||||
|
}).catch((error) => {
|
||||||
|
sendToAllClients({
|
||||||
|
type: "file-updated-failed",
|
||||||
|
data: { path, error },
|
||||||
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
sendToAllClients({ type: "file-change-done", data: { path } });
|
sendToAllClients({ type: "file-change", data: { path } });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (opts.onUpdate) opts.onUpdate()
|
||||||
|
|
||||||
app.get(PATHS.EXAMPLE, function (req: any, res: any) {
|
app.get(PATHS.EXAMPLE, function (req: any, res: any) {
|
||||||
res.set("Content-Type", "text/html");
|
res.set("Content-Type", "text/html");
|
||||||
res.send(
|
res.send(
|
||||||
@ -107,5 +113,7 @@ export async function serve(opts: {
|
|||||||
app.get(PATHS.NOTIFY, function (req: any, res: any) {
|
app.get(PATHS.NOTIFY, function (req: any, res: any) {
|
||||||
res.send("ok");
|
res.send("ok");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
server.listen(opts.port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user