hmr fixes #25
							
								
								
									
										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": | ||||
|     { | ||||
|         "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/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; | ||||
| 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)??[]; | ||||
|     reloads++; | ||||
| @ -13,6 +14,7 @@ new WebSocket("ws://"+document.location.host).addEventListener('message', (event | ||||
|         }) | ||||
|     ).then(()=>HMR.update()); | ||||
| }); | ||||
| const socketTimer = setInterval(()=>{socket.send("ping")}, 1000); | ||||
| 
 | ||||
| export const FileListen =(inPath:string, inHandler:()=>void)=> | ||||
| { | ||||
|  | ||||
							
								
								
									
										11
									
								
								server.tsx
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								server.tsx
									
									
									
									
									
								
							| @ -89,6 +89,7 @@ function Transpiler(inDevMode:boolean) | ||||
|     : | ||||
|     ()=>false; | ||||
| 
 | ||||
|     let reloads = 0; | ||||
|     const watcher =async()=> | ||||
|     { | ||||
|         const FilesChanged:Map<string, string> = new Map(); | ||||
| @ -99,6 +100,13 @@ function Transpiler(inDevMode:boolean) | ||||
|                 const key = path.substring(Deno.cwd().length).replaceAll("\\", "/"); | ||||
|                 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); | ||||
|                     SocketsBroadcast(key); | ||||
|                 } | ||||
| @ -294,7 +302,8 @@ console.log(`Dev Mode: ${DevMode}`); | ||||
| console.log(`Args seen: `, Flags); | ||||
| 
 | ||||
| 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) | ||||
| { | ||||
|     console.log(Error); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user