From 6e932c3759e976c19aa6581b4e9ec7b84321bc9a Mon Sep 17 00:00:00 2001 From: xtrullor73 Date: Sun, 21 Apr 2024 22:42:41 -0700 Subject: [PATCH] feat(utils): add directory file fetching functionality --- src/utils/directoryFileFetcher.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/utils/directoryFileFetcher.js b/src/utils/directoryFileFetcher.js index 47291d2..7b0e2f1 100644 --- a/src/utils/directoryFileFetcher.js +++ b/src/utils/directoryFileFetcher.js @@ -1,18 +1,25 @@ import fs from 'fs/promises'; import path from 'path'; -export const enumerateFilesInDirectory = async (folderPath, callback) => { - try { - const entries = await fs.readdir(folderPath, { withFileTypes: true }); +export default async function directoryFileFetcher(folderPath) { + async function enumerateFilesInDirectory(dirPath) { + let fileList = []; + const entries = await fs.readdir(dirPath, { withFileTypes: true }); for (const entry of entries) { - const fullPath = path.join(folderPath, entry.name); + const fullPath = path.join(dirPath, entry.name); if (entry.isDirectory()) { - await enumerateFilesInDirectory(fullPath, callback); + fileList = fileList.concat(await enumerateFilesInDirectory(fullPath)); } else { - callback(fullPath); + fileList.push(fullPath); } } - } catch (e) { - console.error(`Error enumerating files in directory ${folderPath}: ${e}`); + return fileList; } -}; + + try { + return await enumerateFilesInDirectory(folderPath); // return array of files + } catch (e) { + console.error(`Error enumerating files in directory ${folderPath}:`, e); + throw e; + } +}