electron-forge
Version:
A complete tool for building modern Electron applications
147 lines (104 loc) • 9.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _bluebird = require('bluebird');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _initCustom = require('../init/init-custom');
var _initCustom2 = _interopRequireDefault(_initCustom);
var _initDirectory = require('../init/init-directory');
var _initDirectory2 = _interopRequireDefault(_initDirectory);
var _initGit = require('../init/init-git');
var _initGit2 = _interopRequireDefault(_initGit);
var _initNpm = require('../init/init-npm');
var _initNpm2 = _interopRequireDefault(_initNpm);
var _initStandardFix = require('../init/init-standard-fix');
var _initStandardFix2 = _interopRequireDefault(_initStandardFix);
var _initStarterFiles = require('../init/init-starter-files');
var _initStarterFiles2 = _interopRequireDefault(_initStarterFiles);
var _oraHandler = require('../util/ora-handler');
var _oraHandler2 = _interopRequireDefault(_oraHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var d = (0, _debug2.default)('electron-forge:init');
/**
* @typedef {Object} InitOptions
* @property {string} [dir=process.cwd()] The path to the app to be initialized
* @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually
* @property {string} [lintstyle=airbnb] The lintstyle to pass through to the template creator
* @property {string} [template] The custom template to use. If left empty, the default template is used
*/
/**
* Initialize a new Electron Forge template project in the given directory.
*
* @param {InitOptions} providedOptions - Options for the init method
* @return {Promise} Will resolve when the initialization process is complete
*/
exports.default = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() {
var providedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _Object$assign, dir, interactive, lintstyle, template;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
// eslint-disable-next-line prefer-const, no-unused-vars
_Object$assign = (0, _assign2.default)({
dir: process.cwd(),
interactive: false,
lintstyle: 'airbnb',
template: null
}, providedOptions), dir = _Object$assign.dir, interactive = _Object$assign.interactive, lintstyle = _Object$assign.lintstyle, template = _Object$assign.template;
_oraHandler2.default.interactive = interactive;
d('Initializing in: ' + dir);
if (!template) {
lintstyle = lintstyle.toLowerCase();
if (!['airbnb', 'standard'].includes(lintstyle)) {
d('Unrecognized lintstyle argument: \'' + lintstyle + '\' -- defaulting to \'airbnb\'');
lintstyle = 'airbnb';
}
}
_context.next = 6;
return (0, _initDirectory2.default)(dir, interactive);
case 6:
_context.next = 8;
return (0, _initGit2.default)(dir);
case 8:
_context.next = 10;
return (0, _initStarterFiles2.default)(dir, template ? undefined : lintstyle);
case 10:
_context.next = 12;
return (0, _initNpm2.default)(dir, template ? undefined : lintstyle);
case 12:
if (template) {
_context.next = 18;
break;
}
if (!(lintstyle === 'standard')) {
_context.next = 16;
break;
}
_context.next = 16;
return (0, _initStandardFix2.default)(dir);
case 16:
_context.next = 20;
break;
case 18:
_context.next = 20;
return (0, _initCustom2.default)(dir, template, lintstyle);
case 20:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function () {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS9pbml0LmpzIl0sIm5hbWVzIjpbImQiLCJwcm92aWRlZE9wdGlvbnMiLCJkaXIiLCJwcm9jZXNzIiwiY3dkIiwiaW50ZXJhY3RpdmUiLCJsaW50c3R5bGUiLCJ0ZW1wbGF0ZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxJQUFJLHFCQUFNLHFCQUFOLENBQVY7O0FBRUE7Ozs7Ozs7O0FBUUE7Ozs7Ozs7O2lFQU1lO0FBQUEsUUFBT0MsZUFBUCx1RUFBeUIsRUFBekI7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDYjtBQURhLDZCQUVtQyxzQkFBYztBQUM1REMsbUJBQUtDLFFBQVFDLEdBQVIsRUFEdUQ7QUFFNURDLDJCQUFhLEtBRitDO0FBRzVEQyx5QkFBVyxRQUhpRDtBQUk1REMsd0JBQVU7QUFKa0QsYUFBZCxFQUs3Q04sZUFMNkMsQ0FGbkMsRUFFUEMsR0FGTyxrQkFFUEEsR0FGTyxFQUVGRyxXQUZFLGtCQUVGQSxXQUZFLEVBRVdDLFNBRlgsa0JBRVdBLFNBRlgsRUFFc0JDLFFBRnRCLGtCQUVzQkEsUUFGdEI7O0FBUWIsaUNBQVNGLFdBQVQsR0FBdUJBLFdBQXZCOztBQUVBTCxvQ0FBc0JFLEdBQXRCOztBQUVBLGdCQUFJLENBQUNLLFFBQUwsRUFBZTtBQUNiRCwwQkFBWUEsVUFBVUUsV0FBVixFQUFaO0FBQ0Esa0JBQUksQ0FBQyxDQUFDLFFBQUQsRUFBVyxVQUFYLEVBQXVCQyxRQUF2QixDQUFnQ0gsU0FBaEMsQ0FBTCxFQUFpRDtBQUMvQ04sMERBQXVDTSxTQUF2QztBQUNBQSw0QkFBWSxRQUFaO0FBQ0Q7QUFDRjs7QUFsQlk7QUFBQSxtQkFvQlAsNkJBQWNKLEdBQWQsRUFBbUJHLFdBQW5CLENBcEJPOztBQUFBO0FBQUE7QUFBQSxtQkFxQlAsdUJBQVFILEdBQVIsQ0FyQk87O0FBQUE7QUFBQTtBQUFBLG1CQXNCUCxnQ0FBWUEsR0FBWixFQUFpQkssV0FBV0csU0FBWCxHQUF1QkosU0FBeEMsQ0F0Qk87O0FBQUE7QUFBQTtBQUFBLG1CQXVCUCx1QkFBUUosR0FBUixFQUFhSyxXQUFXRyxTQUFYLEdBQXVCSixTQUFwQyxDQXZCTzs7QUFBQTtBQUFBLGdCQXdCUkMsUUF4QlE7QUFBQTtBQUFBO0FBQUE7O0FBQUEsa0JBeUJQRCxjQUFjLFVBekJQO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsbUJBMEJILCtCQUFnQkosR0FBaEIsQ0ExQkc7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxtQkE2QkwsMEJBQVdBLEdBQVgsRUFBZ0JLLFFBQWhCLEVBQTBCRCxTQUExQixDQTdCSzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwiZmlsZSI6ImFwaS9pbml0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IGluaXRDdXN0b20gZnJvbSAnLi4vaW5pdC9pbml0LWN1c3RvbSc7XG5pbXBvcnQgaW5pdERpcmVjdG9yeSBmcm9tICcuLi9pbml0L2luaXQtZGlyZWN0b3J5JztcbmltcG9ydCBpbml0R2l0IGZyb20gJy4uL2luaXQvaW5pdC1naXQnO1xuaW1wb3J0IGluaXROUE0gZnJvbSAnLi4vaW5pdC9pbml0LW5wbSc7XG5pbXBvcnQgaW5pdFN0YW5kYXJkRml4IGZyb20gJy4uL2luaXQvaW5pdC1zdGFuZGFyZC1maXgnO1xuaW1wb3J0IGluaXRTdGFydGVyIGZyb20gJy4uL2luaXQvaW5pdC1zdGFydGVyLWZpbGVzJztcblxuaW1wb3J0IGFzeW5jT3JhIGZyb20gJy4uL3V0aWwvb3JhLWhhbmRsZXInO1xuXG5jb25zdCBkID0gZGVidWcoJ2VsZWN0cm9uLWZvcmdlOmluaXQnKTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJbml0T3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtkaXI9cHJvY2Vzcy5jd2QoKV0gVGhlIHBhdGggdG8gdGhlIGFwcCB0byBiZSBpbml0aWFsaXplZFxuICogQHByb3BlcnR5IHtib29sZWFufSBbaW50ZXJhY3RpdmU9ZmFsc2VdIFdoZXRoZXIgdG8gdXNlIHNlbnNpYmxlIGRlZmF1bHRzIG9yIHByb21wdCB0aGUgdXNlciB2aXN1YWxseVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtsaW50c3R5bGU9YWlyYm5iXSBUaGUgbGludHN0eWxlIHRvIHBhc3MgdGhyb3VnaCB0byB0aGUgdGVtcGxhdGUgY3JlYXRvclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt0ZW1wbGF0ZV0gVGhlIGN1c3RvbSB0ZW1wbGF0ZSB0byB1c2UuIElmIGxlZnQgZW1wdHksIHRoZSBkZWZhdWx0IHRlbXBsYXRlIGlzIHVzZWRcbiAqL1xuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgRWxlY3Ryb24gRm9yZ2UgdGVtcGxhdGUgcHJvamVjdCBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICpcbiAqIEBwYXJhbSB7SW5pdE9wdGlvbnN9IHByb3ZpZGVkT3B0aW9ucyAtIE9wdGlvbnMgZm9yIHRoZSBpbml0IG1ldGhvZFxuICogQHJldHVybiB7UHJvbWlzZX0gV2lsbCByZXNvbHZlIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgaXMgY29tcGxldGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHByb3ZpZGVkT3B0aW9ucyA9IHt9KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3QsIG5vLXVudXNlZC12YXJzXG4gIGxldCB7IGRpciwgaW50ZXJhY3RpdmUsIGxpbnRzdHlsZSwgdGVtcGxhdGUgfSA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGRpcjogcHJvY2Vzcy5jd2QoKSxcbiAgICBpbnRlcmFjdGl2ZTogZmFsc2UsXG4gICAgbGludHN0eWxlOiAnYWlyYm5iJyxcbiAgICB0ZW1wbGF0ZTogbnVsbCxcbiAgfSwgcHJvdmlkZWRPcHRpb25zKTtcbiAgYXN5bmNPcmEuaW50ZXJhY3RpdmUgPSBpbnRlcmFjdGl2ZTtcblxuICBkKGBJbml0aWFsaXppbmcgaW46ICR7ZGlyfWApO1xuXG4gIGlmICghdGVtcGxhdGUpIHtcbiAgICBsaW50c3R5bGUgPSBsaW50c3R5bGUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIVsnYWlyYm5iJywgJ3N0YW5kYXJkJ10uaW5jbHVkZXMobGludHN0eWxlKSkge1xuICAgICAgZChgVW5yZWNvZ25pemVkIGxpbnRzdHlsZSBhcmd1bWVudDogJyR7bGludHN0eWxlfScgLS0gZGVmYXVsdGluZyB0byAnYWlyYm5iJ2ApO1xuICAgICAgbGludHN0eWxlID0gJ2FpcmJuYic7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgaW5pdERpcmVjdG9yeShkaXIsIGludGVyYWN0aXZlKTtcbiAgYXdhaXQgaW5pdEdpdChkaXIpO1xuICBhd2FpdCBpbml0U3RhcnRlcihkaXIsIHRlbXBsYXRlID8gdW5kZWZpbmVkIDogbGludHN0eWxlKTtcbiAgYXdhaXQgaW5pdE5QTShkaXIsIHRlbXBsYXRlID8gdW5kZWZpbmVkIDogbGludHN0eWxlKTtcbiAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgIGlmIChsaW50c3R5bGUgPT09ICdzdGFuZGFyZCcpIHtcbiAgICAgIGF3YWl0IGluaXRTdGFuZGFyZEZpeChkaXIpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBpbml0Q3VzdG9tKGRpciwgdGVtcGxhdGUsIGxpbnRzdHlsZSk7XG4gIH1cbn07XG4iXX0=