only monitor transpileable files

This commit is contained in:
Seth Trowbridge 2023-04-01 10:27:24 -04:00
parent 85bfaf5386
commit 2d688e71e6

View File

@ -256,25 +256,36 @@ const SocketsBroadcast =(inData:string)=>{ for (const socket of Sockets){ socket
const FilesChanged:Map<string, string> = 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();
}
}