From 8caea2893d005b174e6520e697102132b47c04ec Mon Sep 17 00:00:00 2001 From: lilezek Date: Sat, 4 May 2024 19:27:14 +0200 Subject: [PATCH] fix: copy unrar.wasm as part of the postinstallation process --- .gitignore | 1 + electron-builder.yml | 1 + postinstall.cjs | 2 ++ src/main/services/unrar.ts | 10 ++++++++-- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 675a83ee..95835897 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules hydra-download-manager fastlist.exe +unrar.wasm __pycache__ dist out diff --git a/electron-builder.yml b/electron-builder.yml index 06f6a5c5..83c7c80a 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -6,6 +6,7 @@ extraResources: - hydra-download-manager - hydra.db - fastlist.exe + - unrar.wasm files: - "!**/.vscode/*" - "!src/*" diff --git a/postinstall.cjs b/postinstall.cjs index 8ca8f101..7f6457cc 100644 --- a/postinstall.cjs +++ b/postinstall.cjs @@ -6,3 +6,5 @@ if (process.platform === "win32") { "fastlist.exe" ); } + +fs.copyFileSync("node_modules/node-unrar-js/esm/js/unrar.wasm", "unrar.wasm"); \ No newline at end of file diff --git a/src/main/services/unrar.ts b/src/main/services/unrar.ts index fcfd1fb1..e24d41d4 100644 --- a/src/main/services/unrar.ts +++ b/src/main/services/unrar.ts @@ -1,12 +1,18 @@ import { Extractor, createExtractorFromFile } from "node-unrar-js"; import fs from "node:fs"; +import path from "node:path"; +import { app } from "electron"; + +const wasmPath = app.isPackaged + ? path.join(process.resourcesPath, "unrar.wasm") + : path.join(__dirname, "..", "..", "unrar.wasm"); const wasmBinary = fs.readFileSync( - require.resolve("node-unrar-js/esm/js/unrar.wasm") + require.resolve(wasmPath) ); export class Unrar { - private constructor(private extractor: Extractor) {} + private constructor(private extractor: Extractor) { } static async fromFilePath(filePath: string, targetFolder: string) { const extractor = await createExtractorFromFile({