🚶🏽 Refactored the walk function

This commit is contained in:
2021-05-05 13:44:57 -07:00
parent 82140a7e39
commit 2abd46c18c

View File

@@ -255,12 +255,22 @@ export const getCovers = async (
export const walkFolder = async (folder: string): Promise<IFolderData[]> => { export const walkFolder = async (folder: string): Promise<IFolderData[]> => {
const result: IFolderData[] = []; const result: IFolderData[] = [];
await Walk.walk(folder, async (err, pathname, dirent) => { let walkResult: IFolderData = {
name: "",
extension: "",
containedIn: "",
isFile: false,
isLink: true,
};
const walk = Walk.create({ sort: filterOutDotFiles });
await walk(folder, async (err, pathname, dirent) => {
if (err) { if (err) {
logger.error("Failed to lstat directory", { error: err }); logger.error("Failed to lstat directory", { error: err });
return false; return false;
} }
const walkResult = { if ([".cbz", ".cbr"].includes(path.extname(dirent.name))) {
walkResult = {
name: path.basename(dirent.name, path.extname(dirent.name)), name: path.basename(dirent.name, path.extname(dirent.name)),
extension: path.extname(dirent.name), extension: path.extname(dirent.name),
containedIn: path.dirname(pathname), containedIn: path.dirname(pathname),
@@ -271,13 +281,11 @@ export const walkFolder = async (folder: string): Promise<IFolderData[]> => {
`Scanned ${dirent.name} contained in ${path.dirname(pathname)}`, `Scanned ${dirent.name} contained in ${path.dirname(pathname)}`,
); );
result.push(walkResult); result.push(walkResult);
}
}); });
return result; return result;
}; };
const filterNonComicBookExtensions = (entities) => {
return entities.filter((entity) => entity.extname)
}
export const explodePath = (filePath: string): IExplodedPathResponse => { export const explodePath = (filePath: string): IExplodedPathResponse => {
const exploded = filePath.split("/"); const exploded = filePath.split("/");
const fileName = remove(exploded, (item) => { const fileName = remove(exploded, (item) => {
@@ -315,3 +323,7 @@ export const extractMetadataFromImage = async (
}); });
return image; return image;
}; };
const filterOutDotFiles = (entities) => {
return entities.filter((ent) => !ent.name.startsWith("."));
};