🛫 Added debounce to chokidar event listeners

This commit is contained in:
2022-04-14 14:11:36 -07:00
parent d9f6991aef
commit ff2e4531f0

View File

@@ -5,6 +5,7 @@ import path from "path";
import fs from "fs"; import fs from "fs";
import { IExtractionOptions, IFolderData } from "threetwo-ui-typings"; import { IExtractionOptions, IFolderData } from "threetwo-ui-typings";
import { SocketIOMixin } from "../mixins/socket.io.mixin"; import { SocketIOMixin } from "../mixins/socket.io.mixin";
import { debounce } from "lodash";
export const io = SocketIOMixin(); export const io = SocketIOMixin();
export default class ApiService extends Service { export default class ApiService extends Service {
@@ -123,9 +124,10 @@ export default class ApiService extends Service {
// Filewatcher // Filewatcher
const fileWatcher = chokidar.watch( const fileWatcher = chokidar.watch(
path.resolve("/comics"), path.resolve("./comics"),
{ {
ignored: (filePath) => path.extname(filePath) === '.dctmp', ignored: (filePath) =>
path.extname(filePath) === ".dctmp",
persistent: true, persistent: true,
usePolling: true, usePolling: true,
interval: 5000, interval: 5000,
@@ -175,11 +177,15 @@ export default class ApiService extends Service {
}); });
}; };
fileWatcher fileWatcher
.once("add", async (path, stats) => { .once(
"add",
debounce((path, stats) => {
console.log("Watcher detected new files."); console.log("Watcher detected new files.");
console.log( console.log(
`File ${path} has been added with stats: ${JSON.stringify( `File ${path} has been added with stats: ${JSON.stringify(
stats, null, 2 stats,
null,
2
)}` )}`
); );
@@ -207,17 +213,41 @@ export default class ApiService extends Service {
result: path, result: path,
}); });
}); });
}) }, 500)
.once("change", (path, stats) => )
.once(
"change",
debounce(
(path, stats) =>
console.log( console.log(
`File ${path} has been changed. Stats: ${JSON.stringify(stats, null, 2)}` `File ${path} has been changed. Stats: ${JSON.stringify(
stats,
null,
2
)}`
),
500
) )
) )
.once("unlink", (path) => .once(
console.log(`File ${path} has been removed`) "unlink",
debounce(
(path) =>
console.log(
`File ${path} has been removed`
),
500
)
)
.once(
"addDir",
debounce(
(path) =>
console.log(
`Directory ${path} has been added`
),
500
) )
.once("addDir", (path) =>
console.log(`Directory ${path} has been added`)
); );
}); });
}, },