From 945afcf98559551d40cfc6b95a0a39f86de8c034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enis=20Necipo=C4=9Flu?= Date: Tue, 21 Dec 2021 11:49:43 +0300 Subject: [PATCH] Create delete-bin-obj-folders.js --- delete-bin-obj-folders.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 delete-bin-obj-folders.js diff --git a/delete-bin-obj-folders.js b/delete-bin-obj-folders.js new file mode 100644 index 00000000..040ffecb --- /dev/null +++ b/delete-bin-obj-folders.js @@ -0,0 +1,37 @@ +const { resolve } = require("path"); +const { readdir, rmdir } = require("fs").promises; + +async function* removeFolder(dir) { + await rmdir(dir, { recursive: true }); + yield dir; +} + +async function* getBinObj(dir) { + const dirents = await readdir(dir, { withFileTypes: true }); + + for (const dirent of dirents) { + if (!dirent.isDirectory()) continue; + const name = dirent.name; + + if (name === "node_modules") continue; + + const res = resolve(dir, dirent.name); + + if (name === "bin" || name === "obj") { + yield* removeFolder(res); + continue; + } + + yield* getBinObj(res); + } +} + +(async () => { + console.log("\x1b[36m%s\x1b[0m", "Deleting all BIN and OBJ folders..."); + + for await (const dir of getBinObj(".")) { + console.log("\x1b[33m%s\x1b[0m", `Removed: ${dir}`); + } + + console.log("\x1b[36m%s\x1b[0m", "All BIN and OBJ folders are deleted."); +})();