🔧 Promise hell

This commit is contained in:
Rishi Ghan
2022-04-28 15:20:58 -07:00
parent d28b904bf7
commit 33d44c7e11

View File

@@ -32,7 +32,7 @@ SOFTWARE.
*/ */
import { createReadStream, createWriteStream, existsSync } from "fs"; import { createReadStream, createWriteStream, existsSync } from "fs";
import { isEmpty, isNil, isUndefined, remove, each } from "lodash"; import { isEmpty, isNil, isUndefined, remove, each, map } from "lodash";
import * as p7zip from "p7zip-threetwo"; import * as p7zip from "p7zip-threetwo";
import path from "path"; import path from "path";
import sharp from "sharp"; import sharp from "sharp";
@@ -344,10 +344,18 @@ export const uncompressZipArchive = async (filePath: string) => {
const { fileNameWithoutExtension, extension } = const { fileNameWithoutExtension, extension } =
getFileConstituents(filePath); getFileConstituents(filePath);
const targetDirectory = `${USERDATA_DIRECTORY}/expanded/${fileNameWithoutExtension}`; const targetDirectory = `${USERDATA_DIRECTORY}/expanded/${fileNameWithoutExtension}`;
const resizedImagesDirectory = `${USERDATA_DIRECTORY}/expanded/resized/${fileNameWithoutExtension}`
await createDirectory(directoryOptions, targetDirectory); await createDirectory(directoryOptions, targetDirectory);
await p7zip.extract(filePath, targetDirectory, [], "", false); await p7zip.extract(filePath, targetDirectory, [], "", false);
const files = await walkFolder(targetDirectory, [ const foo = await resizeImageDirectory(targetDirectory, resizedImagesDirectory)
console.log(foo);
return [];
};
export const uncompressRarArchive = async (filePath: string) => { };
export const resizeImageDirectory = async (directoryPath: string, resizedImagesDirectory: string) => {
const files = await walkFolder(directoryPath, [
".jpg", ".jpg",
".jpeg", ".jpeg",
".JPG", ".JPG",
@@ -355,18 +363,26 @@ export const uncompressZipArchive = async (filePath: string) => {
".png", ".png",
".bmp", ".bmp",
]); ]);
each(files, (file) => { await createDirectory({}, resizedImagesDirectory);
const sharpResizeInstance = sharp(file.filePath).resize(275); const resizePromises = new Promise((resolve, reject) => {
const resizedStream = createReadStream( return map(files, (file) => {
`${targetDirectory}/${file.name}${file.extension}` const sharpResizeInstance = sharp().resize(275);
); const resizedStream = createReadStream(
console.log(`${targetDirectory}/${file.name}_275${file.extension}`); `${directoryPath}/${file.name}${file.extension}`
resizedStream );
.pipe(sharpResizeInstance) if (fse.existsSync(`${directoryPath}/${file.name}${file.extension}`)) {
.toFile(`${targetDirectory}/${file.name}_275${file.extension}`) return resizedStream
.then((data) => console.log(data)); .pipe(sharpResizeInstance)
}); .toFile(`${resizedImagesDirectory}/${file.name}_275px${file.extension}`)
.then((data) => {
console.log(`Resized image ${JSON.stringify(data, null, 4)}`);
return `${resizedImagesDirectory}/${file.name}_275px${file.extension}`;
});
}
});
return files; });
}; return Promise.all([resizePromises]);
export const uncompressRarArchive = async (filePath: string) => { };
}