var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.taskRnvPlatformConnect=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _path=_interopRequireDefault(require("path"));
var _inquirer=_interopRequireDefault(require("inquirer"));

var _logger=require("../core/systemManager/logger");
var _fileutils=require("../core/systemManager/fileutils");



var _platformManager=require("../core/platformManager");
var _engineManager=require("../core/engineManager");
var _constants=require("../core/constants");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}


var taskRnvPlatformConnect=function taskRnvPlatformConnect(c,parentTask,originTask){var _await$inquirer$promp,connectedPlatforms,_await$inquirer$promp2,deletePlatformFolder,pathsToRemove;return _regenerator.default.async(function taskRnvPlatformConnect$(_context){while(1){switch(_context.prev=_context.next){case 0:
(0,_logger.logTask)('taskRnvPlatformConnect');_context.next=3;return _regenerator.default.awrap(

(0,_engineManager.executeTask)(c,_constants.TASK_PROJECT_CONFIGURE,_constants.TASK_PLATFORM_CONNECT,originTask));case 3:_context.next=5;return _regenerator.default.awrap(

_inquirer.default.prompt({
name:'connectedPlatforms',
message:
'This will point platformTemplates folders from your local project to ReNative managed one. Select platforms you would like to connect',
type:'checkbox',
choices:(0,_platformManager.generatePlatformChoices)(c).map(function(choice){return _objectSpread(_objectSpread({},
choice),{},{
disabled:choice.isConnected});})}));case 5:_await$inquirer$promp=_context.sent;connectedPlatforms=_await$inquirer$promp.connectedPlatforms;



if(connectedPlatforms.length){
connectedPlatforms.forEach(function(platform){var _c$files$project$conf;
if((_c$files$project$conf=c.files.project.config.paths.platformTemplatesDirs)==null?void 0:_c$files$project$conf[platform]){
delete c.files.project.config.paths.platformTemplatesDirs[platform];
}

if(
!Object.keys(c.files.project.config.paths.platformTemplatesDirs).
length)
{
delete c.files.project.config.paths.platformTemplatesDirs;
}

(0,_fileutils.writeFileSync)(c.paths.project.config,c.files.project.config);
});
}_context.next=10;return _regenerator.default.awrap(

_inquirer.default.prompt({
name:'deletePlatformFolder',
type:'confirm',
message:
'Would you also like to delete the previously used platform folder?'}));case 10:_await$inquirer$promp2=_context.sent;deletePlatformFolder=_await$inquirer$promp2.deletePlatformFolder;if(!


deletePlatformFolder){_context.next=17;break;}
pathsToRemove=[];
connectedPlatforms.forEach(function(platform){
pathsToRemove.push(
_path.default.join(
c.paths.project.platformTemplatesDirs[platform],
platform));


});_context.next=17;return _regenerator.default.awrap(



(0,_fileutils.removeDirs)(pathsToRemove));case 17:


(0,_logger.logSuccess)(
(0,_logger.chalk)().white(
connectedPlatforms.join(','))+" now using ReNative platformTemplates located in "+
(0,_logger.chalk)().white(
c.paths.rnv.platformTemplates.dir)+" now!");case 18:case"end":return _context.stop();}}},null,null,null,Promise);};exports.taskRnvPlatformConnect=taskRnvPlatformConnect;var _default=




{
description:'Connect platform template back to rnv',
fn:taskRnvPlatformConnect,
task:_constants.TASK_PLATFORM_CONNECT,
params:_constants.PARAMS.withBase(),
platforms:[]};exports.default=_default;
//# sourceMappingURL=task.rnv.platform.connect.js.map