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); + } + } +}