From eccf8c918820b34bcba3b5f9dc5a25bbeee6b10a Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Thu, 5 May 2022 13:55:48 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20unrar=20full-sized=20images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/uncompression.utils.ts | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/utils/uncompression.utils.ts b/utils/uncompression.utils.ts index cbbf0e5..40c438c 100644 --- a/utils/uncompression.utils.ts +++ b/utils/uncompression.utils.ts @@ -372,27 +372,22 @@ export const uncompressRarArchive = async (filePath: string) => { }); remove(filesInArchive, ({ type }) => type === "Directory"); - const extractionPromises = []; + let extractionPromises = []; // iterate over the files - each(filesInArchive, (file) => { - extractionPromises.push( - new Promise((resolve, reject) => { - const sharpStream = sharp().resize(275); - const coverExtractionStream = archive.stream(file.name); - const resizeStream = coverExtractionStream.pipe(sharpStream); - resizeStream.toFile( - `${targetDirectory}/${path.basename(file.name)}`, - (err, info) => { - resolve( - `${targetDirectory}/${path.basename(file.name)}` - ); - } - ); - }) - ); - }); - return Promise.all(extractionPromises); + each(filesInArchive, (file) => { + extractionPromises.push(new Promise((resolve, reject) => { + const fileExtractionStream = archive.stream(file.name); + const fileWriteStream = createWriteStream( + `${targetDirectory}/${path.basename(file.name)}`) + fileExtractionStream.pipe(fileWriteStream); + fileWriteStream.on("finish", async () => { + resolve(`${targetDirectory}/${path.basename(file.name)}`); + }); + + })); + }) + return Promise.all(extractionPromises); }; export const resizeImageDirectory = async (directoryPath: string) => {