diff options
Diffstat (limited to 'packages/web-util/src/index.browser.ts')
-rw-r--r-- | packages/web-util/src/index.browser.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/web-util/src/index.browser.ts b/packages/web-util/src/index.browser.ts new file mode 100644 index 000000000..514a2ec42 --- /dev/null +++ b/packages/web-util/src/index.browser.ts @@ -0,0 +1,38 @@ + +//`ws://localhost:8003/socket` +export function setupLiveReload(wsURL: string | undefined) { + if (!wsURL) return; + const ws = new WebSocket(wsURL); + ws.addEventListener('message', (message) => { + const event = JSON.parse(message.data); + if (event.type === "LOG") { + console.log(event.message); + } + if (event.type === "RELOAD") { + window.location.reload(); + } + if (event.type === "UPDATE") { + const c = document.getElementById("container") + if (c) { + document.body.removeChild(c); + } + const d = document.createElement("div"); + d.setAttribute("id", "container"); + d.setAttribute("class", "app-container"); + document.body.appendChild(d); + const s = document.createElement("script"); + s.setAttribute("id", "code"); + s.setAttribute("type", "application/javascript"); + s.textContent = atob(event.content); + document.body.appendChild(s); + } + }); + ws.onerror = (error) => { + console.error(error); + }; + ws.onclose = (e) => { + setTimeout(setupLiveReload, 500); + }; +} + +export { renderStories, parseGroupImport } from "./stories.js" |