diff options
author | Sebastian <sebasjm@gmail.com> | 2022-12-06 09:21:17 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2022-12-06 09:21:17 -0300 |
commit | e382b022030db96b8282337b304ec5e599a5f405 (patch) | |
tree | 6ba9afb72a1b3e5ce35f37a987d74286b0e45c92 /packages/web-util/src/index.browser.ts | |
parent | 219e48f35196e54361dc17d6ca7de6e095c46eeb (diff) | |
download | wallet-core-e382b022030db96b8282337b304ec5e599a5f405.tar.gz wallet-core-e382b022030db96b8282337b304ec5e599a5f405.tar.bz2 wallet-core-e382b022030db96b8282337b304ec5e599a5f405.zip |
web-util: utils for developing webapps
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" |