fileMoves.js 444 B

12345678910111213
  1. import { promises as fs } from 'fs';
  2. async function moveDirectoryAcrossDevicesSafe(sourceDir, targetDir, fsImpl = fs) {
  3. try {
  4. await fsImpl.rename(sourceDir, targetDir);
  5. } catch (e) {
  6. if (e?.code !== 'EXDEV') throw e;
  7. await fsImpl.cp(sourceDir, targetDir, { recursive: true, force: false, errorOnExist: true });
  8. await fsImpl.rm(sourceDir, { recursive: true, force: true });
  9. }
  10. }
  11. export { moveDirectoryAcrossDevicesSafe };