From 7031c5cd40ebedc4c484e4dcc4c0f24311fa581d Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Wed, 28 Apr 2021 00:19:52 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=83=20Worker=20is...=20working.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/actions/fileops.actions.tsx | 3 ++- src/client/components/Import.tsx | 1 - src/client/constants/importer.config.ts | 1 + src/client/workers/extractCovers.worker.ts | 29 +++++++++++++++++++--- src/server/index.ts | 2 +- src/server/utils/fs.utils.ts | 2 -- tsconfig.json | 6 ++--- webpack.config.js | 3 +++ 8 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 src/client/constants/importer.config.ts diff --git a/src/client/actions/fileops.actions.tsx b/src/client/actions/fileops.actions.tsx index 5a7345f..8d7112f 100644 --- a/src/client/actions/fileops.actions.tsx +++ b/src/client/actions/fileops.actions.tsx @@ -31,7 +31,8 @@ export async function extractCoverFromComicBookArchive( | IExtractComicBookCoverErrorResponse > { return await axios.request({ - url: FS_API_BASE_URI + "/getComicCovers", + url: FS_API_BASE_URI + "getComicCovers", + method: "POST", data: { ...options, }, diff --git a/src/client/components/Import.tsx b/src/client/components/Import.tsx index fba80a5..dc6d664 100644 --- a/src/client/components/Import.tsx +++ b/src/client/components/Import.tsx @@ -1,7 +1,6 @@ import * as React from "react"; import _ from "lodash"; import { connect } from "react-redux"; -import * as Comlink from "comlink"; import { greet } from "../workers/extractCovers.worker"; interface IProps { matches: unknown; diff --git a/src/client/constants/importer.config.ts b/src/client/constants/importer.config.ts new file mode 100644 index 0000000..e298653 --- /dev/null +++ b/src/client/constants/importer.config.ts @@ -0,0 +1 @@ +export const SUPPORTED_COMIC_ARCHIVES = [".cbz", ".cbr"]; diff --git a/src/client/workers/extractCovers.worker.ts b/src/client/workers/extractCovers.worker.ts index e38bbca..619f08c 100644 --- a/src/client/workers/extractCovers.worker.ts +++ b/src/client/workers/extractCovers.worker.ts @@ -1,7 +1,28 @@ -import { walkFolder } from "../actions/fileops.actions"; -import { IFolderData } from "../../server/interfaces/folder.interface"; +import { + walkFolder, + extractCoverFromComicBookArchive, +} from "../actions/fileops.actions"; +import { SUPPORTED_COMIC_ARCHIVES } from "../constants/importer.config"; +import { IExtractedComicBookCoverFile } from "../../server/interfaces/folder.interface"; +import _ from "lodash"; -export async function greet(path: string): Promise { +export const greet = async ( + path: string, +): Promise => { console.log(path); - return await walkFolder("./comics"); + const targetOptions = { + sourceFolder: path, + extractTarget: "cover", + targetExtractionFolder: "../covers", + }; + const fileObjects = await walkFolder("./comics"); + _.map(fileObjects, async (fileObject) => { + console.log(fileObject); + if (SUPPORTED_COMIC_ARCHIVES.includes(fileObject.extension)) { + await extractCoverFromComicBookArchive({ + ...targetOptions, + folderDetails: fileObject, + }); + } + }); } diff --git a/src/server/index.ts b/src/server/index.ts index c0c61fd..52d8928 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -15,7 +15,7 @@ const port: number = Number(process.env.PORT) || 8050; // set our port // Send index.html on root request app.use(express.static("dist")); -app.use(express.static("src/client/workers")); + app.get("/", (req: Request, res: Response) => { console.log("sending index.html"); res.sendFile("/dist/index.html"); diff --git a/src/server/utils/fs.utils.ts b/src/server/utils/fs.utils.ts index 6b30eab..5a50e79 100644 --- a/src/server/utils/fs.utils.ts +++ b/src/server/utils/fs.utils.ts @@ -223,8 +223,6 @@ export const explodePath = (filePath: string): IExplodedPathResponse => { const constructPaths = (extractionOptions: IExtractionOptions) => { return { targetPath: - extractionOptions.sourceFolder + - "/" + extractionOptions.targetExtractionFolder + "/" + extractionOptions.folderDetails.name, diff --git a/tsconfig.json b/tsconfig.json index 5ed180a..90a6e53 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,17 +8,17 @@ "module": "commonjs", "sourceMap": true, "outDir": "./dist/", - "noImplicitAny": true, "skipLibCheck": true, "lib": [ "dom", "dom.iterable", - "esnext" + "esnext", + "webworker" ] }, "settings": { "eslint.workingDirectories": [ - {"directory": "./node_modules", "changeProcessCWD": true } + { "directory": "./node_modules", "changeProcessCWD": true } ] }, "exclude": [ diff --git a/webpack.config.js b/webpack.config.js index 5f087dc..b533de0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -65,6 +65,9 @@ module.exports = { }, }, }, + optimization: { + usedExports: false, + }, plugins: [ // new CleanWebpackPlugin([outputDirectory]), new HtmlWebpackPlugin({