From 9a260c5277c179fa35313c409d61cfe3dffb9a89 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Fri, 1 Apr 2022 22:19:59 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Refactored=20the=20folder=20size?= =?UTF-8?q?=20calculator=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/file.utils.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/utils/file.utils.ts b/utils/file.utils.ts index 340d949..f25f177 100644 --- a/utils/file.utils.ts +++ b/utils/file.utils.ts @@ -2,6 +2,7 @@ const Walk = require("@root/walk"); import path from "path"; import fs from "fs"; +const { readdir, stat } = require("fs/promises"); import { IExplodedPathResponse, IExtractComicBookCoverErrorResponse, @@ -67,16 +68,16 @@ export const explodePath = (filePath: string): IExplodedPathResponse => { }; export const getSizeOfDirectory = async ( - path: string, + directoryPath: string, extensions: string[] ) => { - const arrayOfFiles = await walkFolder(path, extensions); - let totalSize = 0; + const files = await readdir(directoryPath); + const stats = files.map((file) => stat(path.join(directoryPath, file))); - arrayOfFiles.forEach((file) => { - totalSize += file.fileSize; - }); - return totalSize; + return (await Promise.all(stats)).reduce( + (accumulator, { size }) => accumulator + size, + 0 + ); }; export const isValidImageFileExtension = (fileName: string): boolean => {