🔧 Refactoring

This commit is contained in:
2021-04-20 11:57:08 -07:00
parent d55606c164
commit a7f02c13e9

View File

@@ -4,7 +4,7 @@ const unrarer = require("node-unrar-js");
const Walk = require("@root/walk"); const Walk = require("@root/walk");
const mkdirp = require("mkdirp"); const mkdirp = require("mkdirp");
const fse = require("fs-extra"); const fse = require("fs-extra");
import fs from "fs"; const fs = require("fs").promises;
import path from "path"; import path from "path";
import _ from "lodash"; import _ from "lodash";
import { logger } from "./logger.utils"; import { logger } from "./logger.utils";
@@ -27,7 +27,7 @@ export const unrar = async (
extractionOptions.sourceFolder + extractionOptions.targetComicCoversFolder; extractionOptions.sourceFolder + extractionOptions.targetComicCoversFolder;
const buf = Uint8Array.from( const buf = Uint8Array.from(
fs.readFileSync( fs.readFile(
extractionOptions.folderDetails.containedIn + extractionOptions.folderDetails.containedIn +
"/" + "/" +
extractionOptions.folderDetails.name, extractionOptions.folderDetails.name,
@@ -68,43 +68,36 @@ export const unrar = async (
); );
}); });
case "all": case "all":
const comicBookCoverFiles: IExtractedComicBookCoverFile[] = [];
const files = extractor.extract({}); const files = extractor.extract({});
const extractedFiles = [...files.files]; const extractedFiles = [...files.files];
const options = {
mode: 0o2775,
};
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
const comicBookCoverFiles: IExtractedComicBookCoverFile[] = [];
for (const file of extractedFiles) { for (const file of extractedFiles) {
logger.info(`Attempting to write ${file.fileHeader.name}`); logger.info(`Attempting to write ${file.fileHeader.name}`);
const fileBuffer = file.extraction; const fileBuffer = file.extraction;
const pathFragments = explodePath(file.fileHeader.name); const pathFragments = explodePath(file.fileHeader.name);
const targetPath = const targetPath =
comicCoversTargetPath + "/" + pathFragments.exploded.join("/"); comicCoversTargetPath + "/" + pathFragments.exploded.join("/");
fse.ensureDir(targetPath, (err) => { try {
if (err) { await fse.ensureDir(targetPath, options);
console.log(err); console.log("success!");
} else { try {
fs.writeFile( await fs.writeFile(file.fileHeader.name, fileBuffer); // need to be in an async function
targetPath + "/" + pathFragments.fileName, comicBookCoverFiles.push({
fileBuffer, name: `${file.fileHeader.name}`,
(err) => { path: targetPath,
if (err) { fileSize: file.fileHeader.packSize,
logger.error(err); });
reject(err); } catch (error) {
} else { console.log(error);
logger.info(
`The file ${file.fileHeader.name} was saved to disk.`,
);
const comicBookCoverObject = {
name: `${file.fileHeader.name}`,
path: targetPath,
fileSize: file.fileHeader.packSize,
};
comicBookCoverFiles.push(comicBookCoverObject);
}
},
);
} }
}); } catch (err) {
console.error(err);
}
} }
resolve(comicBookCoverFiles); resolve(comicBookCoverFiles);
}); });