Compare commits
2 Commits
81e10e19dc
...
b20c055c2d
Author | SHA1 | Date | |
---|---|---|---|
b20c055c2d | |||
d9a750f7f0 |
@ -3,32 +3,22 @@ import { contentType } from "jsr:@std/media-types";
|
|||||||
// Parse the port from the command-line arguments, defaulting to 8000
|
// Parse the port from the command-line arguments, defaulting to 8000
|
||||||
const port = parseInt(Deno.args[0] || "8000", 10);
|
const port = parseInt(Deno.args[0] || "8000", 10);
|
||||||
const sockets: WebSocket[] = [];
|
const sockets: WebSocket[] = [];
|
||||||
const connect = `<script>
|
|
||||||
const ws = new WebSocket('ws://localhost:${port}/ws');
|
|
||||||
ws.addEventListener('message', (event) => {
|
|
||||||
if (event.data === 'reload') {
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ws.addEventListener('error', console.error);
|
|
||||||
ws.addEventListener('close', console.warn);
|
|
||||||
</script>`;
|
|
||||||
|
|
||||||
const bundle = await fetch(import.meta.resolve("./bundle.js")).then(r=>r.text());
|
const bundle = await fetch(import.meta.resolve("./bundle.js")).then(r=>r.text());
|
||||||
|
const devinc = await fetch(import.meta.resolve("./src/dev.js")).then(r=>r.text());
|
||||||
|
|
||||||
let html: string;
|
let html: string;
|
||||||
try {
|
try {
|
||||||
html = Deno.readTextFileSync("./index.html").replace("<head>", "<head>"+connect);
|
html = Deno.readTextFileSync("./index.html").replace("</head>", `<script>${devinc}</script></head>`);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
html = `
|
html = `
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
${connect}
|
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<style> * {margin: 0;padding: 0;box-sizing: border-box;}html, body {height: 100%;width: 100%;font-family: Arial, sans-serif;line-height: 1.6;}body {-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}img, video {max-width: 100%;height: auto;}a {text-decoration: none;color: inherit;}ul, ol {list-style: none;}button, input, textarea {font-family: inherit;font-size: inherit;line-height: inherit;border: none;background: none;padding: 0;margin: 0;outline: none;}table {border-collapse: collapse;width: 100%;}</style>
|
<style> * {margin: 0;padding: 0;box-sizing: border-box;}html, body {height: 100%;width: 100%;font-family: Arial, sans-serif;line-height: 1.6;}body {-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}img, video {max-width: 100%;height: auto;}a {text-decoration: none;color: inherit;}ul, ol {list-style: none;}button, input, textarea {font-family: inherit;font-size: inherit;line-height: inherit;border: none;background: none;padding: 0;margin: 0;outline: none;}table {border-collapse: collapse;width: 100%;}</style>
|
||||||
<script>${bundle}</script>
|
<script>${bundle}</script>
|
||||||
|
<script>${devinc}</script>
|
||||||
</head>
|
</head>
|
||||||
<body></body>
|
<body></body>
|
||||||
</html>`;
|
</html>`;
|
||||||
|
32
src/dev.js
Normal file
32
src/dev.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// added in devmode to index.html
|
||||||
|
new WebSocket('ws://'+window.location.host+'/ws').addEventListener('message',e=>e.data==='reload'&&window.location.reload());
|
||||||
|
|
||||||
|
vanX.Store =(obj, key)=>
|
||||||
|
{
|
||||||
|
let checkInit = JSON.stringify(obj);
|
||||||
|
let checkStore = localStorage.getItem(key+"check");
|
||||||
|
localStorage.setItem(key+"check", checkInit);
|
||||||
|
|
||||||
|
let recallJSON;
|
||||||
|
if(checkInit == checkStore)
|
||||||
|
{
|
||||||
|
let recallText = localStorage.getItem(key);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
recallJSON = JSON.parse(recallText) || obj;
|
||||||
|
}
|
||||||
|
catch(e)
|
||||||
|
{
|
||||||
|
recallJSON = obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
recallJSON = obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
const store = vanX.reactive( recallJSON );
|
||||||
|
van.derive(() => localStorage.setItem(key, JSON.stringify(vanX.compact(store))));
|
||||||
|
return store;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user