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