hmr #1

Merged
SethTrowbridge merged 9 commits from hmr into master 2023-04-01 11:13:22 -04:00
Showing only changes of commit 2d688e71e6 - Show all commits

View File

@ -256,25 +256,36 @@ const SocketsBroadcast =(inData:string)=>{ for (const socket of Sockets){ socket
const FilesChanged:Map<string, string> = new Map(); const FilesChanged:Map<string, string> = new Map();
const ProcessFiles =debounce(async()=> const ProcessFiles =debounce(async()=>
{ {
console.log("Files changed...") console.log("Processing Files...", FilesChanged);
for await (const [file, action] of FilesChanged) for await (const [path, action] of FilesChanged)
{ {
const pathname = file.substring(Deno.cwd().length).replaceAll("\\", "/"); const key = path.substring(Deno.cwd().length).replaceAll("\\", "/");
console.log(pathname, action); console.log(key, action);
if(Transpileable(pathname))
if(action != "remove")
{ {
if(action !== "remove") await TranspileFS(path, key, false);
{ console.log(` ...cached "${key}"`);
await TranspileFS(file, pathname, false); SocketsBroadcast(key);
console.log(` ...cached "${pathname}"`); }
SocketsBroadcast(pathname); else
} {
Transpiled.delete(key)
} }
} }
FilesChanged.clear(); FilesChanged.clear();
}, 1000); }, 1000);
for await (const event of Deno.watchFs(Deno.cwd())) for await (const event of Deno.watchFs(Deno.cwd()))
{ {
event.paths.forEach( path => FilesChanged.set(path, event.kind) ); event.paths.forEach( path =>
ProcessFiles(); {
if(Transpileable(path))
{
FilesChanged.set(path, event.kind);
}
});
if(FilesChanged.size)
{
ProcessFiles();
}
} }