UNPKG

foalts2-cli

Version:

CLI tool for FoalTS

39 lines (38 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rmdir = void 0; // std const fs_1 = require("fs"); const path_1 = require("path"); const util_1 = require("util"); /** * Remove a directory and all its contents, including any subdirectories and files. * * @export * @param {string} path - The path of the directory * @returns {Promise<void>} */ async function rmdir(path) { let contents; try { contents = await util_1.promisify(fs_1.readdir)(path); } catch (error) { if (error.code === 'ENOENT') { return; } throw error; } await Promise.all(contents.map(content => { const subPath = path_1.join(path, content); return util_1.promisify(fs_1.stat)(subPath) .then(stats => { if (stats.isDirectory()) { return rmdir(subPath); } return util_1.promisify(fs_1.unlink)(subPath); }); })); await util_1.promisify(fs_1.rmdir)(path); } exports.rmdir = rmdir;