electron-forge
Version:
A complete tool for building modern Electron applications
115 lines (90 loc) • 9.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _bluebird = require('bluebird');
let checkGitExists = (() => {
var _ref = (0, _bluebird.coroutine)(function* () {
return new _promise2.default(function (resolve) {
(0, _child_process.exec)('git --version', function (err) {
if (err) return resolve(false);
resolve(true);
});
});
});
return function checkGitExists() {
return _ref.apply(this, arguments);
};
})();
let checkNodeVersion = (() => {
var _ref2 = (0, _bluebird.coroutine)(function* () {
return _promise2.default.resolve(_semver2.default.gt(process.versions.node, '6.0.0'));
});
return function checkNodeVersion() {
return _ref2.apply(this, arguments);
};
})();
let checkPackageManagerVersion = (() => {
var _ref3 = (0, _bluebird.coroutine)(function* (ora) {
return (0, _yarnOrNpm.yarnOrNpmSpawn)(['--version']).then(function (version) {
if ((0, _yarnOrNpm.hasYarn)()) {
warnIfPackageManagerIsntAKnownGoodVersion('Yarn', version, YARN_WHITELISTED_VERSIONS, ora);
} else {
warnIfPackageManagerIsntAKnownGoodVersion('NPM', version, NPM_WHITELISTED_VERSIONS, ora);
}
return true;
});
});
return function checkPackageManagerVersion(_x) {
return _ref3.apply(this, arguments);
};
})();
exports.validPackageManagerVersion = validPackageManagerVersion;
var _child_process = require('child_process');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _semver = require('semver');
var _semver2 = _interopRequireDefault(_semver);
var _yarnOrNpm = require('./yarn-or-npm');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const d = (0, _debug2.default)('electron-forge:check-system');
const NPM_WHITELISTED_VERSIONS = {
all: '^3.0.0 || ^4.0.0 || ~5.1.0 || ~5.2.0 || >= 5.4.2',
darwin: '>= 5.4.0',
linux: '>= 5.4.0'
};
const YARN_WHITELISTED_VERSIONS = {
all: '0.23.3 || 0.24.6 || >= 1.0.0',
darwin: '0.27.5',
linux: '0.27.5'
};
function validPackageManagerVersion(packageManager, version, whitelistedVersions, ora) {
try {
return _semver2.default.satisfies(version, whitelistedVersions);
} catch (e) {
ora.warn(`Could not check ${packageManager} version "${version}", assuming incompatible`);
d(`Exception while checking version: ${e}`);
return false;
}
}
function warnIfPackageManagerIsntAKnownGoodVersion(packageManager, version, whitelistedVersions, ora) {
const osVersions = whitelistedVersions[process.platform];
const versions = osVersions ? `${whitelistedVersions.all} || ${osVersions}` : whitelistedVersions.all;
const versionString = version.toString();
if (!validPackageManagerVersion(packageManager, versionString, versions, ora)) {
ora.warn(`You are using ${packageManager}, but not a known good version.\n` + `The known versions that work with Electron Forge are: ${versions}`);
}
}
exports.default = (() => {
var _ref4 = (0, _bluebird.coroutine)(function* (ora) {
return (yield _promise2.default.all([checkGitExists(ora), checkNodeVersion(ora), checkPackageManagerVersion(ora)])).every(function (check) {
return check;
});
});
return function (_x2) {
return _ref4.apply(this, arguments);
};
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvY2hlY2stc3lzdGVtLmpzIl0sIm5hbWVzIjpbInJlc29sdmUiLCJlcnIiLCJjaGVja0dpdEV4aXN0cyIsInNlbXZlciIsImd0IiwicHJvY2VzcyIsInZlcnNpb25zIiwibm9kZSIsImNoZWNrTm9kZVZlcnNpb24iLCJvcmEiLCJ0aGVuIiwidmVyc2lvbiIsIndhcm5JZlBhY2thZ2VNYW5hZ2VySXNudEFLbm93bkdvb2RWZXJzaW9uIiwiWUFSTl9XSElURUxJU1RFRF9WRVJTSU9OUyIsIk5QTV9XSElURUxJU1RFRF9WRVJTSU9OUyIsImNoZWNrUGFja2FnZU1hbmFnZXJWZXJzaW9uIiwidmFsaWRQYWNrYWdlTWFuYWdlclZlcnNpb24iLCJkIiwiYWxsIiwiZGFyd2luIiwibGludXgiLCJwYWNrYWdlTWFuYWdlciIsIndoaXRlbGlzdGVkVmVyc2lvbnMiLCJzYXRpc2ZpZXMiLCJlIiwid2FybiIsIm9zVmVyc2lvbnMiLCJwbGF0Zm9ybSIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsImV2ZXJ5IiwiY2hlY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7c0NBUUEsYUFBZ0M7QUFDOUIsV0FBTyxzQkFBWSxVQUFDQSxPQUFELEVBQWE7QUFDOUIsK0JBQUssZUFBTCxFQUFzQixVQUFDQyxHQUFELEVBQVM7QUFDN0IsWUFBSUEsR0FBSixFQUFTLE9BQU9ELFFBQVEsS0FBUixDQUFQO0FBQ1RBLGdCQUFRLElBQVI7QUFDRCxPQUhEO0FBSUQsS0FMTSxDQUFQO0FBTUQsRzs7a0JBUGNFLGM7Ozs7Ozt1Q0FTZixhQUFrQztBQUNoQyxXQUFPLGtCQUFRRixPQUFSLENBQWdCRyxpQkFBT0MsRUFBUCxDQUFVQyxRQUFRQyxRQUFSLENBQWlCQyxJQUEzQixFQUFpQyxPQUFqQyxDQUFoQixDQUFQO0FBQ0QsRzs7a0JBRmNDLGdCOzs7Ozs7dUNBcUNmLFdBQTBDQyxHQUExQyxFQUErQztBQUM3QyxXQUFPLCtCQUFlLENBQUMsV0FBRCxDQUFmLEVBQ0pDLElBREksQ0FDQyxVQUFDQyxPQUFELEVBQWE7QUFDakIsVUFBSSx5QkFBSixFQUFlO0FBQ2JDLGtEQUEwQyxNQUExQyxFQUFrREQsT0FBbEQsRUFBMkRFLHlCQUEzRCxFQUFzRkosR0FBdEY7QUFDRCxPQUZELE1BRU87QUFDTEcsa0RBQTBDLEtBQTFDLEVBQWlERCxPQUFqRCxFQUEwREcsd0JBQTFELEVBQW9GTCxHQUFwRjtBQUNEOztBQUVELGFBQU8sSUFBUDtBQUNELEtBVEksQ0FBUDtBQVVELEc7O2tCQVhjTSwwQjs7Ozs7UUF0QkNDLDBCLEdBQUFBLDBCOztBQWhDaEI7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBRUEsTUFBTUMsSUFBSSxxQkFBTSw2QkFBTixDQUFWOztBQWVBLE1BQU1ILDJCQUEyQjtBQUMvQkksT0FBSyxrREFEMEI7QUFFL0JDLFVBQVEsVUFGdUI7QUFHL0JDLFNBQU87QUFId0IsQ0FBakM7QUFLQSxNQUFNUCw0QkFBNEI7QUFDaENLLE9BQUssOEJBRDJCO0FBRWhDQyxVQUFRLFFBRndCO0FBR2hDQyxTQUFPO0FBSHlCLENBQWxDOztBQU1PLFNBQVNKLDBCQUFULENBQW9DSyxjQUFwQyxFQUFvRFYsT0FBcEQsRUFBNkRXLG1CQUE3RCxFQUFrRmIsR0FBbEYsRUFBdUY7QUFDNUYsTUFBSTtBQUNGLFdBQU9OLGlCQUFPb0IsU0FBUCxDQUFpQlosT0FBakIsRUFBMEJXLG1CQUExQixDQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU9FLENBQVAsRUFBVTtBQUNWZixRQUFJZ0IsSUFBSixDQUFVLG1CQUFrQkosY0FBZSxhQUFZVixPQUFRLDBCQUEvRDtBQUNBTSxNQUFHLHFDQUFvQ08sQ0FBRSxFQUF6QztBQUNBLFdBQU8sS0FBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBU1oseUNBQVQsQ0FBbURTLGNBQW5ELEVBQW1FVixPQUFuRSxFQUE0RVcsbUJBQTVFLEVBQWlHYixHQUFqRyxFQUFzRztBQUNwRyxRQUFNaUIsYUFBYUosb0JBQW9CakIsUUFBUXNCLFFBQTVCLENBQW5CO0FBQ0EsUUFBTXJCLFdBQVdvQixhQUFjLEdBQUVKLG9CQUFvQkosR0FBSSxPQUFNUSxVQUFXLEVBQXpELEdBQTZESixvQkFBb0JKLEdBQWxHO0FBQ0EsUUFBTVUsZ0JBQWdCakIsUUFBUWtCLFFBQVIsRUFBdEI7QUFDQSxNQUFJLENBQUNiLDJCQUEyQkssY0FBM0IsRUFBMkNPLGFBQTNDLEVBQTBEdEIsUUFBMUQsRUFBb0VHLEdBQXBFLENBQUwsRUFBK0U7QUFDN0VBLFFBQUlnQixJQUFKLENBQ0csaUJBQWdCSixjQUFlLG1DQUFoQyxHQUNDLHlEQUF3RGYsUUFBUyxFQUZwRTtBQUlEO0FBQ0Y7Ozt1Q0FlYyxXQUFnQkcsR0FBaEIsRUFBcUI7QUFDbEMsV0FBTyxDQUFDLE1BQU0sa0JBQVFTLEdBQVIsQ0FBWSxDQUFDaEIsZUFBZU8sR0FBZixDQUFELEVBQXNCRCxpQkFBaUJDLEdBQWpCLENBQXRCLEVBQTZDTSwyQkFBMkJOLEdBQTNCLENBQTdDLENBQVosQ0FBUCxFQUNKcUIsS0FESSxDQUNFO0FBQUEsYUFBU0MsS0FBVDtBQUFBLEtBREYsQ0FBUDtBQUVELEciLCJmaWxlIjoidXRpbC9jaGVjay1zeXN0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQgeyBoYXNZYXJuLCB5YXJuT3JOcG1TcGF3biB9IGZyb20gJy4veWFybi1vci1ucG0nO1xuXG5jb25zdCBkID0gZGVidWcoJ2VsZWN0cm9uLWZvcmdlOmNoZWNrLXN5c3RlbScpO1xuXG5hc3luYyBmdW5jdGlvbiBjaGVja0dpdEV4aXN0cygpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgZXhlYygnZ2l0IC0tdmVyc2lvbicsIChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHJldHVybiByZXNvbHZlKGZhbHNlKTtcbiAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGVja05vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNlbXZlci5ndChwcm9jZXNzLnZlcnNpb25zLm5vZGUsICc2LjAuMCcpKTtcbn1cblxuY29uc3QgTlBNX1dISVRFTElTVEVEX1ZFUlNJT05TID0ge1xuICBhbGw6ICdeMy4wLjAgfHwgXjQuMC4wIHx8IH41LjEuMCB8fCB+NS4yLjAgfHwgPj0gNS40LjInLFxuICBkYXJ3aW46ICc+PSA1LjQuMCcsXG4gIGxpbnV4OiAnPj0gNS40LjAnLFxufTtcbmNvbnN0IFlBUk5fV0hJVEVMSVNURURfVkVSU0lPTlMgPSB7XG4gIGFsbDogJzAuMjMuMyB8fCAwLjI0LjYgfHwgPj0gMS4wLjAnLFxuICBkYXJ3aW46ICcwLjI3LjUnLFxuICBsaW51eDogJzAuMjcuNScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRQYWNrYWdlTWFuYWdlclZlcnNpb24ocGFja2FnZU1hbmFnZXIsIHZlcnNpb24sIHdoaXRlbGlzdGVkVmVyc2lvbnMsIG9yYSkge1xuICB0cnkge1xuICAgIHJldHVybiBzZW12ZXIuc2F0aXNmaWVzKHZlcnNpb24sIHdoaXRlbGlzdGVkVmVyc2lvbnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgb3JhLndhcm4oYENvdWxkIG5vdCBjaGVjayAke3BhY2thZ2VNYW5hZ2VyfSB2ZXJzaW9uIFwiJHt2ZXJzaW9ufVwiLCBhc3N1bWluZyBpbmNvbXBhdGlibGVgKTtcbiAgICBkKGBFeGNlcHRpb24gd2hpbGUgY2hlY2tpbmcgdmVyc2lvbjogJHtlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuSWZQYWNrYWdlTWFuYWdlcklzbnRBS25vd25Hb29kVmVyc2lvbihwYWNrYWdlTWFuYWdlciwgdmVyc2lvbiwgd2hpdGVsaXN0ZWRWZXJzaW9ucywgb3JhKSB7XG4gIGNvbnN0IG9zVmVyc2lvbnMgPSB3aGl0ZWxpc3RlZFZlcnNpb25zW3Byb2Nlc3MucGxhdGZvcm1dO1xuICBjb25zdCB2ZXJzaW9ucyA9IG9zVmVyc2lvbnMgPyBgJHt3aGl0ZWxpc3RlZFZlcnNpb25zLmFsbH0gfHwgJHtvc1ZlcnNpb25zfWAgOiB3aGl0ZWxpc3RlZFZlcnNpb25zLmFsbDtcbiAgY29uc3QgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKTtcbiAgaWYgKCF2YWxpZFBhY2thZ2VNYW5hZ2VyVmVyc2lvbihwYWNrYWdlTWFuYWdlciwgdmVyc2lvblN0cmluZywgdmVyc2lvbnMsIG9yYSkpIHtcbiAgICBvcmEud2FybihcbiAgICAgIGBZb3UgYXJlIHVzaW5nICR7cGFja2FnZU1hbmFnZXJ9LCBidXQgbm90IGEga25vd24gZ29vZCB2ZXJzaW9uLlxcbmAgK1xuICAgICAgYFRoZSBrbm93biB2ZXJzaW9ucyB0aGF0IHdvcmsgd2l0aCBFbGVjdHJvbiBGb3JnZSBhcmU6ICR7dmVyc2lvbnN9YFxuICAgICk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hlY2tQYWNrYWdlTWFuYWdlclZlcnNpb24ob3JhKSB7XG4gIHJldHVybiB5YXJuT3JOcG1TcGF3bihbJy0tdmVyc2lvbiddKVxuICAgIC50aGVuKCh2ZXJzaW9uKSA9PiB7XG4gICAgICBpZiAoaGFzWWFybigpKSB7XG4gICAgICAgIHdhcm5JZlBhY2thZ2VNYW5hZ2VySXNudEFLbm93bkdvb2RWZXJzaW9uKCdZYXJuJywgdmVyc2lvbiwgWUFSTl9XSElURUxJU1RFRF9WRVJTSU9OUywgb3JhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5JZlBhY2thZ2VNYW5hZ2VySXNudEFLbm93bkdvb2RWZXJzaW9uKCdOUE0nLCB2ZXJzaW9uLCBOUE1fV0hJVEVMSVNURURfVkVSU0lPTlMsIG9yYSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAob3JhKSB7XG4gIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwoW2NoZWNrR2l0RXhpc3RzKG9yYSksIGNoZWNrTm9kZVZlcnNpb24ob3JhKSwgY2hlY2tQYWNrYWdlTWFuYWdlclZlcnNpb24ob3JhKV0pKVxuICAgIC5ldmVyeShjaGVjayA9PiBjaGVjayk7XG59XG4iXX0=
;