UNPKG

better-npm-init

Version:

A better version of npm init, with templates and more. Usage: better-npm-init <template> [--yarn] [--install] [--git] [--yes] [--help]

96 lines (72 loc) 11.7 kB
"use strict"; require("source-map-support/register"); var _core = require("@electron-forge/core"); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _path = _interopRequireDefault(require("path")); var _commander = _interopRequireDefault(require("commander")); require("./util/terminate"); var _workingDir = _interopRequireDefault(require("./util/working-dir")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (async () => { let commandArgs = process.argv; let appArgs; const doubleDashIndex = process.argv.indexOf('--'); if (doubleDashIndex !== -1) { commandArgs = process.argv.slice(0, doubleDashIndex); appArgs = process.argv.slice(doubleDashIndex + 1); } let dir = process.cwd(); _commander.default.version((await _fsExtra.default.readJson(_path.default.resolve(__dirname, '../package.json'))).version).arguments('[cwd]').option('-p, --app-path <path>', "Override the path to the Electron app to launch (defaults to '.')").option('-l, --enable-logging', 'Enable advanced logging. This will log internal Electron things').option('-n, --run-as-node', 'Run the Electron app as a Node.JS script').option('--vscode', 'Used to enable arg transformation for debugging Electron through VSCode. Do not use yourself.').option('-i, --inspect-electron', 'Triggers inspect mode on Electron to allow debugging the main process. Electron >1.7 only').action(cwd => { dir = (0, _workingDir.default)(dir, cwd); }).parse(commandArgs); _commander.default.on('--help', () => { console.log(' Any arguments found after "--" will be passed to the Electron app, e.g.'); console.log(''); console.log(' $ electron-forge /path/to/project -l -- -d -f foo.txt'); console.log(''); console.log(' will pass the arguments "-d -f foo.txt" to the Electron app'); }); const opts = { dir, interactive: true, enableLogging: !!_commander.default.enableLogging, runAsNode: !!_commander.default.runAsNode, inspect: !!_commander.default.inspectElectron }; if (_commander.default.vscode && appArgs) { // Args are in the format ~arg~ so we need to strip the "~" appArgs = appArgs.map(arg => arg.substr(1, arg.length - 2)).filter(arg => arg.length > 0); } if (_commander.default.appPath) opts.appPath = _commander.default.appPath; if (appArgs) opts.args = appArgs; const spawned = await _core.api.start(opts); await new Promise(resolve => { const listenForExit = child => { // Why: changing to const causes TypeScript compilation to fail. /* eslint-disable prefer-const */ let onExit; let onRestart; /* eslint-enable prefer-const */ const removeListeners = () => { child.removeListener('exit', onExit); child.removeListener('restarted', onRestart); }; onExit = code => { removeListeners(); if (spawned.restarted) return; if (code !== 0) { process.exit(code); } resolve(); }; onRestart = newChild => { removeListeners(); listenForExit(newChild); }; child.on('exit', onExit); child.on('restarted', onRestart); }; listenForExit(spawned); }); })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1zdGFydC50cyJdLCJuYW1lcyI6WyJjb21tYW5kQXJncyIsInByb2Nlc3MiLCJhcmd2IiwiYXBwQXJncyIsImRvdWJsZURhc2hJbmRleCIsImluZGV4T2YiLCJzbGljZSIsImRpciIsImN3ZCIsInByb2dyYW0iLCJ2ZXJzaW9uIiwiZnMiLCJyZWFkSnNvbiIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiYXJndW1lbnRzIiwib3B0aW9uIiwiYWN0aW9uIiwicGFyc2UiLCJvbiIsImNvbnNvbGUiLCJsb2ciLCJvcHRzIiwiaW50ZXJhY3RpdmUiLCJlbmFibGVMb2dnaW5nIiwicnVuQXNOb2RlIiwiaW5zcGVjdCIsImluc3BlY3RFbGVjdHJvbiIsInZzY29kZSIsIm1hcCIsImFyZyIsInN1YnN0ciIsImxlbmd0aCIsImZpbHRlciIsImFwcFBhdGgiLCJhcmdzIiwic3Bhd25lZCIsImFwaSIsInN0YXJ0IiwiUHJvbWlzZSIsImxpc3RlbkZvckV4aXQiLCJjaGlsZCIsIm9uRXhpdCIsIm9uUmVzdGFydCIsInJlbW92ZUxpc3RlbmVycyIsInJlbW92ZUxpc3RlbmVyIiwiY29kZSIsInJlc3RhcnRlZCIsImV4aXQiLCJuZXdDaGlsZCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRUEsQ0FBQyxZQUFZO0FBQ1gsTUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUNDLElBQTFCO0FBQ0EsTUFBSUMsT0FBSjtBQUVBLFFBQU1DLGVBQWUsR0FBR0gsT0FBTyxDQUFDQyxJQUFSLENBQWFHLE9BQWIsQ0FBcUIsSUFBckIsQ0FBeEI7O0FBQ0EsTUFBSUQsZUFBZSxLQUFLLENBQUMsQ0FBekIsRUFBNEI7QUFDMUJKLElBQUFBLFdBQVcsR0FBR0MsT0FBTyxDQUFDQyxJQUFSLENBQWFJLEtBQWIsQ0FBbUIsQ0FBbkIsRUFBc0JGLGVBQXRCLENBQWQ7QUFDQUQsSUFBQUEsT0FB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RUFBZ0I7QUFDZDlDLFVBQUFBLE9BQU8sQ0FBQ2dELElBQVIsQ0FBYUYsSUFBYjtBQUNEOztBQUNEakMsUUFBQUEsT0FBTztBQUNSLE9BUEQ7O0FBUUE4QixNQUFBQSxTQUFTLEdBQUlNLFFBQUQsSUFBK0I7QUFDekNMLFFBQUFBLGVBQWU7QUFDZkosUUFBQUEsYUFBYSxDQUFDUyxRQUFELENBQWI7QUFDRCxPQUhEOztBQUlBUixNQUFBQSxLQUFLLENBQUN0QixFQUFOLENBQVMsTUFBVCxFQUFpQnVCLE1BQWpCO0FBQ0FELE1BQUFBLEtBQUssQ0FBQ3RCLEVBQU4sQ0FBUyxXQUFULEVBQXNCd0IsU0FBdEI7QUFDRCxLQXhCRDs7QUF5QkFILElBQUFBLGFBQWEsQ0FBQ0osT0FBRCxDQUFiO0FBQ0QsR0EzQkssQ0FBTjtBQTRCRCxDQTlFRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwaSwgU3RhcnRPcHRpb25zIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL2NvcmUnO1xuaW1wb3J0IHsgRWxlY3Ryb25Qcm9jZXNzIH0gZnJvbSAnQGVsZWN0cm9uLWZvcmdlL3NoYXJlZC10eXBlcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgcHJvZ3JhbSBmcm9tICdjb21tYW5kZXInO1xuXG5pbXBvcnQgJy4vdXRpbC90ZXJtaW5hdGUnO1xuaW1wb3J0IHdvcmtpbmdEaXIgZnJvbSAnLi91dGlsL3dvcmtpbmctZGlyJztcblxuKGFzeW5jICgpID0+IHtcbiAgbGV0IGNvbW1hbmRBcmdzID0gcHJvY2Vzcy5hcmd2O1xuICBsZXQgYXBwQXJncztcblxuICBjb25zdCBkb3VibGVEYXNoSW5kZXggPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZignLS0nKTtcbiAgaWYgKGRvdWJsZURhc2hJbmRleCAhPT0gLTEpIHtcbiAgICBjb21tYW5kQXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgwLCBkb3VibGVEYXNoSW5kZXgpO1xuICAgIGFwcEFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoZG91YmxlRGFzaEluZGV4ICsgMSk7XG4gIH1cblxuICBsZXQgZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgcHJvZ3JhbVxuICAgIC52ZXJzaW9uKChhd2FpdCBmcy5yZWFkSnNvbihwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vcGFja2FnZS5qc29uJykpKS52ZXJzaW9uKVxuICAgIC5hcmd1bWVudHMoJ1tjd2RdJylcbiAgICAub3B0aW9uKCctcCwgLS1hcHAtcGF0aCA8cGF0aD4nLCBcIk92ZXJyaWRlIHRoZSBwYXRoIHRvIHRoZSBFbGVjdHJvbiBhcHAgdG8gbGF1bmNoIChkZWZhdWx0cyB0byAnLicpXCIpXG4gICAgLm9wdGlvbignLWwsIC0tZW5hYmxlLWxvZ2dpbmcnLCAnRW5hYmxlIGFkdmFuY2VkIGxvZ2dpbmcuICBUaGlzIHdpbGwgbG9nIGludGVybmFsIEVsZWN0cm9uIHRoaW5ncycpXG4gICAgLm9wdGlvbignLW4sIC0tcnVuLWFzLW5vZGUnLCAnUnVuIHRoZSBFbGVjdHJvbiBhcHAgYXMgYSBOb2RlLkpTIHNjcmlwdCcpXG4gICAgLm9wdGlvbignLS12c2NvZGUnLCAnVXNlZCB0byBlbmFibGUgYXJnIHRyYW5zZm9ybWF0aW9uIGZvciBkZWJ1Z2dpbmcgRWxlY3Ryb24gdGhyb3VnaCBWU0NvZGUuICBEbyBub3QgdXNlIHlvdXJzZWxmLicpXG4gICAgLm9wdGlvbignLWksIC0taW5zcGVjdC1lbGVjdHJvbicsICdUcmlnZ2VycyBpbnNwZWN0IG1vZGUgb24gRWxlY3Ryb24gdG8gYWxsb3cgZGVidWdnaW5nIHRoZSBtYWluIHByb2Nlc3MuICBFbGVjdHJvbiA+MS43IG9ubHknKVxuICAgIC5hY3Rpb24oKGN3ZCkgPT4ge1xuICAgICAgZGlyID0gd29ya2luZ0RpcihkaXIsIGN3ZCk7XG4gICAgfSlcbiAgICAucGFyc2UoY29tbWFuZEFyZ3MpO1xuXG4gIHByb2dyYW0ub24oJy0taGVscCcsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZygnICBBbnkgYXJndW1lbnRzIGZvdW5kIGFmdGVyIFwiLS1cIiB3aWxsIGJlIHBhc3NlZCB0byB0aGUgRWxlY3Ryb24gYXBwLCBlLmcuJyk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIGNvbnNvbGUubG9nKCcgICAgJCBlbGVjdHJvbi1mb3JnZSAvcGF0aC90by9wcm9qZWN0IC1sIC0tIC1kIC1mIGZvby50eHQnKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgY29uc29sZS5sb2coJyAgd2lsbCBwYXNzIHRoZSBhcmd1bWVudHMgXCItZCAtZiBmb28udHh0XCIgdG8gdGhlIEVsZWN0cm9uIGFwcCcpO1xuICB9KTtcblxuICBjb25zdCBvcHRzOiBTdGFydE9wdGlvbnMgPSB7XG4gICAgZGlyLFxuICAgIGludGVyYWN0aXZlOiB0cnVlLFxuICAgIGVuYWJsZUxvZ2dpbmc6ICEhcHJvZ3JhbS5lbmFibGVMb2dnaW5nLFxuICAgIHJ1bkFzTm9kZTogISFwcm9ncmFtLnJ1bkFzTm9kZSxcbiAgICBpbnNwZWN0OiAhIXByb2dyYW0uaW5zcGVjdEVsZWN0cm9uLFxuICB9O1xuXG4gIGlmIChwcm9ncmFtLnZzY29kZSAmJiBhcHBBcmdzKSB7XG4gICAgLy8gQXJncyBhcmUgaW4gdGhlIGZvcm1hdCB+YXJnfiBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZSBcIn5cIlxuICAgIGFwcEFyZ3MgPSBhcHBBcmdzLm1hcCgoYXJnKSA9PiBhcmcuc3Vic3RyKDEsIGFyZy5sZW5ndGggLSAyKSkuZmlsdGVyKChhcmcpID0+IGFyZy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIGlmIChwcm9ncmFtLmFwcFBhdGgpIG9wdHMuYXBwUGF0aCA9IHByb2dyYW0uYXBwUGF0aDtcbiAgaWYgKGFwcEFyZ3MpIG9wdHMuYXJncyA9IGFwcEFyZ3M7XG5cbiAgY29uc3Qgc3Bhd25lZCA9IGF3YWl0IGFwaS5zdGFydChvcHRzKTtcblxuICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGxpc3RlbkZvckV4aXQgPSAoY2hpbGQ6IEVsZWN0cm9uUHJvY2VzcykgPT4ge1xuICAgICAgLy8gV2h5OiBjaGFuZ2luZyB0byBjb25zdCBjYXVzZXMgVHlwZVNjcmlwdCBjb21waWxhdGlvbiB0byBmYWlsLlxuICAgICAgLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWNvbnN0ICovXG4gICAgICBsZXQgb25FeGl0OiBOb2RlSlMuRXhpdExpc3RlbmVyO1xuICAgICAgbGV0IG9uUmVzdGFydDogKG5ld0NoaWxkOiBFbGVjdHJvblByb2Nlc3MpID0+IHZvaWQ7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHByZWZlci1jb25zdCAqL1xuICAgICAgY29uc3QgcmVtb3ZlTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgICBjaGlsZC5yZW1vdmVMaXN0ZW5lcignZXhpdCcsIG9uRXhpdCk7XG4gICAgICAgIGNoaWxkLnJlbW92ZUxpc3RlbmVyKCdyZXN0YXJ0ZWQnLCBvblJlc3RhcnQpO1xuICAgICAgfTtcbiAgICAgIG9uRXhpdCA9IChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgICAgIGlmIChzcGF3bmVkLnJlc3RhcnRlZCkgcmV0dXJuO1xuICAgICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChjb2RlKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuICAgICAgb25SZXN0YXJ0ID0gKG5ld0NoaWxkOiBFbGVjdHJvblByb2Nlc3MpID0+IHtcbiAgICAgICAgcmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgICAgIGxpc3RlbkZvckV4aXQobmV3Q2hpbGQpO1xuICAgICAgfTtcbiAgICAgIGNoaWxkLm9uKCdleGl0Jywgb25FeGl0KTtcbiAgICAgIGNoaWxkLm9uKCdyZXN0YXJ0ZWQnLCBvblJlc3RhcnQpO1xuICAgIH07XG4gICAgbGlzdGVuRm9yRXhpdChzcGF3bmVkIGFzIEVsZWN0cm9uUHJvY2Vzcyk7XG4gIH0pO1xufSkoKTtcbiJdfQ==