"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.taskRnvTemplateAdd = exports["default"] = exports._addTemplate = void 0;var _inquirer = _interopRequireDefault(require("inquirer"));
var _fileutils = require("../../core/systemManager/fileutils");
var _logger = require("../../core/systemManager/logger");
var _configManager = require("../../core/configManager");
var _taskManager = require("../../core/taskManager");
var _constants = require("../../core/constants");

var _templateManager = require("../../core/templateManager");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { "default": obj };}function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {try {var info = gen[key](arg);var value = info.value;} catch (error) {reject(error);return;}if (info.done) {resolve(value);} else {Promise.resolve(value).then(_next, _throw);}}function _asyncToGenerator(fn) {return function () {var self = this,args = arguments;return new Promise(function (resolve, reject) {var gen = fn.apply(self, args);function _next(value) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);}function _throw(err) {asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);}_next(undefined);});};}

var _writeObjectSync = function _writeObjectSync(c, p, s) {
  (0, _fileutils.writeFileSync)(p, s);
  (0, _configManager.generateBuildConfig)(c);
};

var _addTemplate = function _addTemplate(c, template) {
  (0, _logger.logTask)('addTemplate');

  c.files.project.config.templates = c.files.project.config.templates || {};

  if (!c.files.project.config.templates[template]) {
    c.files.project.config.templates[template] = {
      version: 'latest' };

  }

  _writeObjectSync(c, c.paths.project.config, c.files.project.config);
};exports._addTemplate = _addTemplate;

var taskRnvTemplateAdd = /*#__PURE__*/function () {var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(c, parentTask, originTask) {var opts, _yield$inquirer$promp, template;return regeneratorRuntime.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:
            (0, _logger.logTask)('taskRnvTemplateAdd');_context.next = 3;return (

              (0, _taskManager.executeTask)(c, _constants.TASK_PROJECT_CONFIGURE, _constants.TASK_TEMPLATE_ADD, originTask));case 3:

            opts = (0, _templateManager.getTemplateOptions)(c);_context.next = 6;return (

              _inquirer["default"].prompt({
                type: 'list',
                message: 'Pick which template to install',
                name: 'template',
                choices: opts.keysAsArray }));case 6:_yield$inquirer$promp = _context.sent;template = _yield$inquirer$promp.template;


            _addTemplate(c, template);case 9:case "end":return _context.stop();}}}, _callee);}));return function taskRnvTemplateAdd(_x, _x2, _x3) {return _ref.apply(this, arguments);};}();exports.taskRnvTemplateAdd = taskRnvTemplateAdd;var _default =


{
  description: 'Install additional template to the project',
  fn: taskRnvTemplateAdd,
  task: 'template add',
  params: _constants.PARAMS.withBase(),
  platforms: [] };exports["default"] = _default;
//# sourceMappingURL=task.rnv.template.add.js.map