import fs from 'fs'; import path from 'path'; /** * Recursively copy a directory tree from src to dest. * Creates destination directories as needed. */ export function copyDir(src: string, dest: string): void { for (const entry of fs.readdirSync(src, { withFileTypes: true })) { const srcPath = path.join(src, entry.name); const destPath = path.join(dest, entry.name); if (entry.isDirectory()) { fs.mkdirSync(destPath, { recursive: true }); copyDir(srcPath, destPath); } else { fs.mkdirSync(path.dirname(destPath), { recursive: true }); fs.copyFileSync(srcPath, destPath); } } }