UNPKG

ffmpeg-static-electron-forge

Version:

This module is designed for fast integration with electron forge and webpack.

69 lines (68 loc) 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const os_1 = __importDefault(require("os")); const path_1 = __importDefault(require("path")); const adm_zip_1 = __importDefault(require("adm-zip")); const stream_1 = require("stream"); const downloadUrls = { darwin: { url: "https://dl.dropboxusercontent.com/sh/3scfjeuno6b03o5/AAAy1zZNHiC_tTPEtzzHg9xVa/darwin.zip?dl=0", name: "darwin.zip", }, linux: { url: "https://dl.dropboxusercontent.com/sh/3scfjeuno6b03o5/AADZtD8GXegArBWFTgJBNSYLa/linux.zip?dl=0", name: "linux.zip", }, win32: { url: "https://dl.dropboxusercontent.com/sh/3scfjeuno6b03o5/AABsiTT_AKQf8MoWH_klBfQ6a/win32.zip?dl=0", name: "win32.zip", }, }; const downloadPath = path_1.default.join(__dirname, "bin"); try { fs_1.default.mkdirSync(downloadPath); } catch (error) { // ignore } if (process.env.ALL_BINS) { Object.values(downloadUrls).map((value) => { download(value); }); } else { if (os_1.default.platform() in downloadUrls) { // @ts-ignore download(downloadUrls[os_1.default.platform()]); } } function download(value) { fetch(value.url) .then((res) => { if (res.body) { const zipFile = path_1.default.join(downloadPath, value.name); const dest = fs_1.default.createWriteStream(zipFile); // @ts-ignore (0, stream_1.pipeline)(res.body, dest, (err) => { if (err) { console.error("Error downloading binaries", err); } else { console.log("Binaries downloaded successfully."); } }); dest.on("close", () => { const zip = new adm_zip_1.default(zipFile); zip.extractAllTo(downloadPath, true); fs_1.default.unlinkSync(zipFile); }); } }) .catch((reason) => { console.error("Error downloading binaries", reason); }); }