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);
        }
      }*