From 76a64fca4a982b80acb2e9ff6c8cb399ba568597 Mon Sep 17 00:00:00 2001 From: lilezek Date: Mon, 29 Apr 2024 20:53:58 +0200 Subject: [PATCH] feat: added support to unrar files --- src/main/services/unrar.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/services/unrar.ts diff --git a/src/main/services/unrar.ts b/src/main/services/unrar.ts new file mode 100644 index 00000000..b7c35393 --- /dev/null +++ b/src/main/services/unrar.ts @@ -0,0 +1,25 @@ +import { Extractor, createExtractorFromFile } from 'node-unrar-js'; +import fs from 'node:fs'; + +const wasmBinary = fs.readFileSync(require.resolve('node-unrar-js/esm/js/unrar.wasm')); + +export class Unrar { + private constructor(private extractor: Extractor) { } + + static async fromFilePath(filePath: string, targetFolder: string) { + console.log(filePath, targetFolder); + const extractor = await createExtractorFromFile({ + filepath: filePath, + targetPath: targetFolder, + wasmBinary, + }); + return new Unrar(extractor); + } + + extract() { + const files = this.extractor.extract().files; + for (const file of files) { + console.log("File:", file.fileHeader.name); + } + } +}