Merge pull request 'hmr fixes' (#25) from redo-boot into master
Reviewed-on: #25
This commit is contained in:
commit
4bd02c6d6d
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Launch Program",
|
|
||||||
"type": "node",
|
|
||||||
"program": "${workspaceFolder}/server.tsx",
|
|
||||||
"cwd": "${workspaceFolder}",
|
|
||||||
"runtimeExecutable": "C:\\Users\\Seth\\.deno\\bin\\deno.EXE",
|
|
||||||
"runtimeArgs": [
|
|
||||||
"run",
|
|
||||||
"--no-lock",
|
|
||||||
"--unstable",
|
|
||||||
"--inspect-wait",
|
|
||||||
"--allow-all"
|
|
||||||
],
|
|
||||||
"attachSimplePort": 9229
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
16
deno.lock
16
deno.lock
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "2",
|
|
||||||
"remote": {
|
|
||||||
"http://localhost:4507/lib/iso.tsx": "edf1cf4c539900040c75824eac8472e0ec43098b13af4049bd79ddbd76a5346d",
|
|
||||||
"https://esm.sh/preact@10.13.2/compat": "1cf68e0c8c6c84b60d42f30665403b67229c16ff5206824709b19df60ba9cdc3",
|
|
||||||
"https://esm.sh/stable/preact@10.13.2/deno/compat.js": "3151a948abd84aa75dfc9e57733da7e1a45fff7a25de58c7b6025b923874b508",
|
|
||||||
"https://esm.sh/stable/preact@10.13.2/deno/hooks.js": "c7a8e703bcbc6a05949f329b618c33d5d1ea5fee113ddcea44ff0f527af8556f",
|
|
||||||
"https://esm.sh/stable/preact@10.13.2/deno/preact.mjs": "365fab897381f4f403f859c5d12939084560545567108cc90dae901bbe892578",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/compat/src/index.d.ts": "d02f015638a40e32649151e011cfda7b520d66f7fbd3c12a28fa03de2a5e1421",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/compat/src/suspense-list.d.ts": "b8e274324392157ce476ef3a48ae215c9f7003b08525d140645f19eab20d1948",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/compat/src/suspense.d.ts": "81f5266e0977a94347505d11b8103024211f2b4f3b2eb2aa276a10d8fd169e65",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/hooks/src/index.d.ts": "5c29febb624fc25d71cb0e125848c9b711e233337a08f7eacfade38fd4c14cc3",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/src/index.d.ts": "65398710de6aa0a07412da79784e05e6e96763f51c7c91b77344d2d0af06385c",
|
|
||||||
"https://esm.sh/v116/preact@10.13.2/src/jsx.d.ts": "9ac9b82c199fa7b04748807d750eba1a106c0be52041b8617416f88d6fc0a257"
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,8 +3,6 @@
|
|||||||
"imports":
|
"imports":
|
||||||
{
|
{
|
||||||
"react": "https://esm.sh/stable/preact@10.13.2/compat",
|
"react": "https://esm.sh/stable/preact@10.13.2/compat",
|
||||||
"preact": "https://esm.sh/stable/preact@10.13.2/",
|
|
||||||
"@deep/": "./deep/",
|
|
||||||
"@eno/app": "./app.tsx",
|
"@eno/app": "./app.tsx",
|
||||||
"@eno/iso": "http://localhost:4507/lib/iso.tsx"
|
"@eno/iso": "http://localhost:4507/lib/iso.tsx"
|
||||||
},
|
},
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
import {Fetch} from "./lib/iso.tsx";
|
|
||||||
|
|
||||||
|
|
||||||
const delay =async(inHandler:()=>void, inDelay:number):Promise<void>=>
|
|
||||||
{
|
|
||||||
return new Promise((accept)=>{
|
|
||||||
setTimeout(()=>{
|
|
||||||
accept(inHandler());
|
|
||||||
}, inDelay);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const queue = [1, 2, 3];
|
|
||||||
while(queue.length)
|
|
||||||
{
|
|
||||||
await(delay(()=>{console.log(queue.pop())}, 1000))
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("all done!");
|
|
||||||
|
|
||||||
/*
|
|
||||||
let r1, r2, r3;
|
|
||||||
|
|
||||||
delay(()=>{r1 = Fetch.Request(`https://catfact.ninja/fact`, undefined, 0.2); console.log(r1); }, 10);
|
|
||||||
delay(()=>{r2 = Fetch.Request(`https://catfact.ninja/fact`, undefined, 0.2); console.log(r2); }, 20);
|
|
||||||
delay(()=>{r3 = Fetch.Request(`https://catfact.ninja/fact`, undefined, 0.2); console.log(r3); }, 2000);
|
|
||||||
|
|
||||||
|
|
||||||
await delay(()=>{}, 3000);
|
|
||||||
|
|
||||||
console.log(r1);
|
|
||||||
console.log(r2);
|
|
||||||
console.log(r3);
|
|
||||||
|
|
||||||
*/
|
|
@ -1,7 +1,8 @@
|
|||||||
|
|
||||||
let reloads = 0;
|
let reloads = 0;
|
||||||
const listeners = new Map() as Map<string, Array<(module:unknown)=>void>>;
|
const listeners = new Map() as Map<string, Array<(module:unknown)=>void>>;
|
||||||
new WebSocket("ws://"+document.location.host).addEventListener('message', (event) =>
|
const socket:WebSocket = new WebSocket("ws://"+document.location.host);
|
||||||
|
socket.addEventListener('message', (event) =>
|
||||||
{
|
{
|
||||||
let handlers = listeners.get(event.data)??[];
|
let handlers = listeners.get(event.data)??[];
|
||||||
reloads++;
|
reloads++;
|
||||||
@ -13,6 +14,7 @@ new WebSocket("ws://"+document.location.host).addEventListener('message', (event
|
|||||||
})
|
})
|
||||||
).then(()=>HMR.update());
|
).then(()=>HMR.update());
|
||||||
});
|
});
|
||||||
|
const socketTimer = setInterval(()=>{socket.send("ping")}, 1000);
|
||||||
|
|
||||||
export const FileListen =(inPath:string, inHandler:()=>void)=>
|
export const FileListen =(inPath:string, inHandler:()=>void)=>
|
||||||
{
|
{
|
||||||
|
11
server.tsx
11
server.tsx
@ -89,6 +89,7 @@ function Transpiler(inDevMode:boolean)
|
|||||||
:
|
:
|
||||||
()=>false;
|
()=>false;
|
||||||
|
|
||||||
|
let reloads = 0;
|
||||||
const watcher =async()=>
|
const watcher =async()=>
|
||||||
{
|
{
|
||||||
const FilesChanged:Map<string, string> = new Map();
|
const FilesChanged:Map<string, string> = new Map();
|
||||||
@ -99,6 +100,13 @@ function Transpiler(inDevMode:boolean)
|
|||||||
const key = path.substring(Deno.cwd().length).replaceAll("\\", "/");
|
const key = path.substring(Deno.cwd().length).replaceAll("\\", "/");
|
||||||
if(action != "remove")
|
if(action != "remove")
|
||||||
{
|
{
|
||||||
|
if(Imports?.imports)
|
||||||
|
{
|
||||||
|
reloads++;
|
||||||
|
const importApp = Imports.imports["@eno/app"];
|
||||||
|
const imp = await import(Path.Active+importApp+"?reloads="+reloads);
|
||||||
|
App = imp.default;
|
||||||
|
}
|
||||||
await TranspileURL(Path.Active+key, key, false);
|
await TranspileURL(Path.Active+key, key, false);
|
||||||
SocketsBroadcast(key);
|
SocketsBroadcast(key);
|
||||||
}
|
}
|
||||||
@ -294,7 +302,8 @@ console.log(`Dev Mode: ${DevMode}`);
|
|||||||
console.log(`Args seen: `, Flags);
|
console.log(`Args seen: `, Flags);
|
||||||
|
|
||||||
const {Transpileable, TranspileURL, SocketsHandler} = Transpiler(DevMode);
|
const {Transpileable, TranspileURL, SocketsHandler} = Transpiler(DevMode);
|
||||||
const {Imports, App, TwindInst, Error} = await Configure(DevMode, Path.LibDir);
|
let {Imports, App, TwindInst, Error} = await Configure(DevMode, Path.LibDir);
|
||||||
|
|
||||||
if(Error)
|
if(Error)
|
||||||
{
|
{
|
||||||
console.log(Error);
|
console.log(Error);
|
||||||
|
Loading…
Reference in New Issue
Block a user