From e39cb092457408b39ebd02a8683630041766cb65 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Tue, 25 Apr 2023 15:42:57 +0530 Subject: [PATCH] add delete empty folder api --- src/api/fs.ts | 7 ++++++- src/preload.ts | 3 ++- src/services/fs.ts | 11 +++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/api/fs.ts b/src/api/fs.ts index a7255e765..1ec86c88f 100644 --- a/src/api/fs.ts +++ b/src/api/fs.ts @@ -5,4 +5,9 @@ export async function getDirFiles(dirPath: string) { const electronFiles = await Promise.all(files.map(getElectronFile)); return electronFiles; } -export { isFolder, moveFile, readTextFile } from '../services/fs'; +export { + isFolder, + moveFile, + readTextFile, + deleteEmptyFolder, +} from '../services/fs'; diff --git a/src/preload.ts b/src/preload.ts index fc123b84e..86ae976e3 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -45,7 +45,7 @@ import { openDirectory, } from './api/common'; import { fixHotReloadNext12 } from './utils/preload'; -import { isFolder, getDirFiles, moveFile } from './api/fs'; +import { isFolder, getDirFiles, moveFile, deleteEmptyFolder } from './api/fs'; import { convertHEIC, generateImageThumbnail } from './api/imageProcessor'; import { setupLogging } from './utils/logging'; import { @@ -106,4 +106,5 @@ windowObject['ElectronAPIs'] = { registerForegroundEventListener, openDirectory, moveFile, + deleteEmptyFolder, }; diff --git a/src/services/fs.ts b/src/services/fs.ts index d4e6de025..fdbd73c45 100644 --- a/src/services/fs.ts +++ b/src/services/fs.ts @@ -259,3 +259,14 @@ export async function moveFile( } await fs.rename(sourcePath, destinationPath); } + +export async function deleteEmptyFolder(folderPath: string) { + if (!existsSync(folderPath)) { + throw new Error('Folder does not exist'); + } + const files = await fs.readdir(folderPath); + if (files.length > 0) { + throw new Error('Folder is not empty'); + } + await fs.rmdir(folderPath); +}