UNPKG

@rnv/engine-core

Version:
78 lines 4.84 kB
"use strict"; 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