@interopio/desktop-cli
Version:
CLI tool for setting up, building and packaging io.Connect Desktop projects
63 lines • 2.52 kB
JavaScript
;
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