UNPKG

@interopio/desktop-cli

Version:

CLI tool for setting up, building and packaging io.Connect Desktop projects

63 lines 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeInstaller = makeInstaller; const logger_1 = require("../../utils/logger"); const modifications_service_1 = require("../modifications/modifications.service"); const os_1 = require("os"); const prerequisites_1 = require("./prerequisites"); const app_service_1 = require("../app.service"); const electronForge_1 = require("./electronForge"); const colors_1 = require("../../utils/colors"); // Conditionally import macOS helper only on macOS let macOSInstallerHelper = null; if (process.platform === 'darwin') { try { macOSInstallerHelper = require('./macOS.helper'); } catch (error) { // Will be handled later when needed } } // Conditionally import windows helper only on Windows let windowsHelper = null; if (process.platform === 'win32') { try { windowsHelper = require('./windows.helper'); } catch (error) { // Will be handled later when needed } } const logger = logger_1.Logger.getInstance(); async function makeInstaller(_options) { logger.info('Creating installer...'); // Check prerequisites await (0, prerequisites_1.validatePrerequisites)(['@electron-forge/core']); // Build all apps to ensure latest code; this must be done before applying modifications await (new app_service_1.AppService()).buildAllApps(); // apply modifications before singning and packaging await (0, modifications_service_1.applyModifications)(); // sign executables await sign(); // Create package using electron-builder await (0, electronForge_1.createPackageWithElectronForge)(); logger.info((0, colors_1.green)('✨ Installer created successfully!')); } async function sign() { if ((0, os_1.platform)() === 'darwin') { if (!macOSInstallerHelper) { logger.error('macOS installer helper module is required but not available'); throw new Error('macOS installer helper module is required but not available'); } // Sign and notarize if macOS await macOSInstallerHelper.signAndNotarizeMacOS(); } else if ((0, os_1.platform)() === 'win32') { if (!windowsHelper) { logger.error('Windows installer helper module is required but not available'); throw new Error('Windows installer helper module is required but not available'); } await windowsHelper.signIOCDBinaries(); } } //# sourceMappingURL=installer.service.js.map