@rnv/engine-core
Version:
ReNative Engine Core
78 lines • 4.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var path_1 = tslib_1.__importDefault(require("path"));
var core_1 = require("@rnv/core");
exports.default = (0, core_1.createTask)({
description: 'Connect platform template back to rnv',
dependsOn: [core_1.RnvTaskName.projectConfigure],
fn: function (_a) {
var ctx = _a.ctx;
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var configOriginal, selectedPlatforms, connectedPlatforms, deletePlatformFolder, pathsToRemove_1;
var _b, _c;
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
configOriginal = ctx.files.project.config_original;
if (!configOriginal) {
return [2 /*return*/];
}
if (!((_c = (_b = ctx.files.project.config) === null || _b === void 0 ? void 0 : _b.paths) === null || _c === void 0 ? void 0 : _c.platformTemplatesDirs)) {
(0, core_1.logToSummary)('All supported platforms are connected. nothing to do.');
return [2 /*return*/];
}
if (!ctx.platform) return [3 /*break*/, 1];
selectedPlatforms = [ctx.platform];
return [3 /*break*/, 3];
case 1: return [4 /*yield*/, (0, core_1.inquirerPrompt)({
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, core_1.generatePlatformChoices)().map(function (choice) { return (tslib_1.__assign(tslib_1.__assign({}, choice), { disabled: choice.isConnected })); }),
})];
case 2:
connectedPlatforms = (_d.sent()).connectedPlatforms;
selectedPlatforms = connectedPlatforms;
_d.label = 3;
case 3:
if (selectedPlatforms.length) {
selectedPlatforms.forEach(function (platform) {
var _a, _b, _c, _d;
if ((_b = (_a = configOriginal.paths) === null || _a === void 0 ? void 0 : _a.platformTemplatesDirs) === null || _b === void 0 ? void 0 : _b[platform]) {
delete configOriginal.paths.platformTemplatesDirs[platform];
}
if (!Object.keys(((_c = configOriginal.paths) === null || _c === void 0 ? void 0 : _c.platformTemplatesDirs) || {}).length) {
(_d = configOriginal.paths) === null || _d === void 0 ? true : delete _d.platformTemplatesDirs; // also cleanup the empty object
}
(0, core_1.writeFileSync)(ctx.paths.project.config, configOriginal);
});
}
return [4 /*yield*/, (0, core_1.inquirerPrompt)({
name: 'deletePlatformFolder',
type: 'confirm',
message: 'Would you also like to delete the previously used platform folder?',
})];
case 4:
deletePlatformFolder = (_d.sent()).deletePlatformFolder;
if (!deletePlatformFolder) return [3 /*break*/, 6];
pathsToRemove_1 = [];
selectedPlatforms.forEach(function (platform) {
pathsToRemove_1.push(path_1.default.join(ctx.paths.project.platformTemplatesDirs[platform], platform));
});
// TODO: Remove shared folders as well
return [4 /*yield*/, (0, core_1.removeDirs)(pathsToRemove_1)];
case 5:
// TODO: Remove shared folders as well
_d.sent();
_d.label = 6;
case 6:
(0, core_1.logSuccess)("".concat((0, core_1.chalk)().bold.white(selectedPlatforms.join(',')), " now using ReNative platformTemplates located associated platform engines."));
return [2 /*return*/];
}
});
});
},
task: core_1.RnvTaskName.platformConnect,
});
//# sourceMappingURL=taskPlatformConnect.js.map
;