I created this function so that when updating my application, I don't need to restart the node server, but I don't update the file I think it could be the accumulation of information, but I'm not sure And I'm having trouble finding all my app's files/folders, isn't there a better way to do this?
*refreshFolders() {
try {
const folders = fs.readdirSync(path.join(__dirname, "..", ".."));
for (const folder of folders) {
fs.readdirSync(path.resolve(__dirname, "..", ".."), { withFileTypes: true })
.filter((type) => {
if (type.isFile()) {
fs.watchFile(path.resolve(__dirname, "..", "..", type.name), (curr, prev) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name)];
utils.logger("info", `${type.name} updating...`);
});
}
if (type.isDirectory()) {
fs.watch(path.resolve(__dirname, "..", "..", type.name), (event_name, file_name) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name, file_name)];
utils.logger("info", `${file_name} updating...`);
});
fs.readdirSync(path.resolve(__dirname, "..", "..", type.name), { withFileTypes: true })
.filter((secondType) => {
if (secondType.isFile()) {
fs.watchFile(path.resolve(__dirname, "..", "..", type.name, secondType.name), (curr, prev) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name, secondType.name)];
utils.logger("info", `${secondType.name} updating...`);
});
}
if (secondType.isDirectory()) {
fs.watch(path.resolve(__dirname, "..", "..", type.name, secondType.name), (second_event_name, second_file_name) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name, secondType.name, second_file_name)];
utils.logger("info", `${second_file_name} updating...`);
});
fs.readdirSync(path.resolve(__dirname, "..", "..", type.name, secondType.name), { withFileTypes: true })
.filter((threeType) => {
if (threeType.isDirectory()) {
fs.watch(path.resolve(__dirname, "..", "..", type.name, secondType.name, threeType.name), (three_event_name, three_file_name) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name, threeType.name, three_file_name)];
utils.logger("info", `${three_file_name} updating...`);
});
}
if (threeType.isFile()) {
fs.watchFile(path.resolve(__dirname, "..", "..", type.name, secondType.name, threeType.name), (curr, prev) => {
delete require.cache[path.resolve(__dirname, "..", "..", type.name, secondType.name, threeType.name)];
utils.logger("info", `${threeType.name} updating...`);
})
}
})
}
})
}
})
}
} catch (error) {
utils.logger("error", error.stack);
}
}*