import path from 'path';
import { promises as fs } from 'fs';

export default async function removeDir(dirPath: string, onlyContent: boolean) {
  const dirEntries = await fs.readdir(dirPath, { withFileTypes: true });
  await Promise.all(
    dirEntries.map(async (dirEntry) => {
      const fullPath = path.join(dirPath, dirEntry.name);
      return dirEntry.isDirectory()
        ? await removeDir(fullPath, false)
        : await fs.unlink(fullPath);
    }),
  );
  if (!onlyContent) {
    await fs.rmdir(dirPath);
  }
}
