mirror of
https://github.com/sissbruecker/linkding.git
synced 2026-02-28 06:53:12 +08:00
Live reload for dev mode
This commit is contained in:
44
bookmarks/static/live-reload.js
Normal file
44
bookmarks/static/live-reload.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const RELOAD_URL = "/live_reload";
|
||||
|
||||
let eventSource = null;
|
||||
let serverId = null;
|
||||
|
||||
function connect() {
|
||||
console.debug("[live-reload] Connecting to", RELOAD_URL);
|
||||
|
||||
eventSource = new EventSource(RELOAD_URL);
|
||||
|
||||
eventSource.addEventListener("connected", (event) => {
|
||||
const data = JSON.parse(event.data);
|
||||
|
||||
if (serverId && serverId !== data.server_id) {
|
||||
console.log("[live-reload] Server restarted, reloading page");
|
||||
window.location.reload();
|
||||
return;
|
||||
}
|
||||
|
||||
console.debug("[live-reload] Connected, server ID:", data.server_id);
|
||||
serverId = data.server_id;
|
||||
});
|
||||
|
||||
eventSource.addEventListener("file_change", (event) => {
|
||||
const data = JSON.parse(event.data);
|
||||
console.log("[live-reload] File changed:", data);
|
||||
|
||||
if (data.file_path.endsWith(".css") || data.file_path.endsWith(".js")) {
|
||||
console.log("[live-reload] Asset changed, reloading page");
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
|
||||
eventSource.onerror = (error) => {
|
||||
console.debug("[live-reload] Disconnected", error);
|
||||
eventSource.close();
|
||||
eventSource = null;
|
||||
|
||||
// Reconnect after a delay
|
||||
setTimeout(connect, 1000);
|
||||
};
|
||||
}
|
||||
|
||||
connect();
|
||||
Reference in New Issue
Block a user