UNPKG

@jasonscheirer/electron-forge-maker-msix

Version:

An `electron-forge` maker for MSIX that supports `electron-forge` v6 and can be used as a replacement for `electron-builder`. Supports code-signing.

58 lines 2.35 kB
import debug from 'debug'; import { spawn } from 'node:child_process'; export const log = debug('electron-forge:maker:msix'); export const run = async (executable, args, neverFail = false) => { return new Promise((resolve, reject) => { const proc = spawn(executable, args, {}); log(`Running ${JSON.stringify([executable].concat(args))}`); let runningStdout = ''; let collectedStdoutLogForReturn = ''; proc.stdout.on('data', (data) => { var _a; collectedStdoutLogForReturn += data; runningStdout += data; if (runningStdout.includes('\n')) { const logLines = runningStdout.split('\n'); while (logLines.length > 1) { log(`stdout: ${(_a = logLines.shift()) === null || _a === void 0 ? void 0 : _a.trimEnd().replace(/\0/g, '')}`); } if (logLines.length > 0) { runningStdout = logLines[0]; } } }); let runningStderr = ''; proc.stderr.on('data', (data) => { var _a; runningStderr += data; if (runningStderr.includes('\n')) { const logLines = runningStderr.split('\n'); while (logLines.length > 1) { log(`stderr: ${(_a = logLines.shift()) === null || _a === void 0 ? void 0 : _a.trimEnd().replace(/\0/g, '')}`); } if (logLines.length > 0) { runningStderr = logLines[0]; } } }); proc.on('exit', (code) => { runningStdout .split('\n') .forEach((line) => log(`stdout: ${line.trimEnd().replace(/\0/g, '')}`)); runningStderr .split('\n') .forEach((line) => log(`stderr: ${line.trimEnd().replace(/\0/g, '')}`)); if (code !== 0) { if (neverFail) { log(`warning: ${executable} returned: ${code}`); } else { return reject(new Error(`Running ${executable} returned: ${code}.`)); } } return resolve(collectedStdoutLogForReturn); }); proc.stdin.end(); }); }; //# sourceMappingURL=run.js.map