UNPKG

@rnv/engine-core

Version:
109 lines 5.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var core_1 = require("@rnv/core"); var taskHelpers_1 = require("../../taskHelpers"); var taskHelpers_2 = require("./taskHelpers"); exports.default = (0, core_1.createTask)({ description: 'Add selected plugin to the project', dependsOn: [core_1.RnvTaskName.projectConfigure], fn: function (_a) { var ctx = _a.ctx; return tslib_1.__awaiter(void 0, void 0, void 0, function () { var selPluginKey, o, selPlugin, selectedPlugins, installMessage, plugin, questionPlugins, cnfOriginal, cnfPlugins, pluginKeys, i, pluginKey, plugin, pluginProps, finalProps, i2, propValue, pluginToAdd, spinner; var _b; return tslib_1.__generator(this, function (_c) { switch (_c.label) { case 0: selPluginKey = (_b = ctx.program.rawArgs) === null || _b === void 0 ? void 0 : _b[4]; o = (0, taskHelpers_2.getPluginList)(); selPlugin = selPluginKey && o.allPlugins[selPluginKey]; selectedPlugins = {}; installMessage = []; if (!!selPlugin) return [3 /*break*/, 2]; return [4 /*yield*/, (0, core_1.inquirerPrompt)({ name: 'plugin', type: 'rawlist', message: 'Select the plugins you want to add', choices: o.asArray, pageSize: 50, })]; case 1: plugin = (_c.sent()).plugin; selectedPlugins[plugin] = o.allPlugins[plugin]; installMessage.push("".concat((0, core_1.chalk)().bold.white(plugin), " v(").concat((0, core_1.chalk)().green(o.allPlugins[plugin].version), ")")); return [3 /*break*/, 3]; case 2: selectedPlugins[selPluginKey] = selPlugin; installMessage.push("".concat((0, core_1.chalk)().bold.white(selPluginKey), " v(").concat((0, core_1.chalk)().green(selPlugin.version), ")")); _c.label = 3; case 3: questionPlugins = {}; cnfOriginal = ctx.files.project.config_original; if (!cnfOriginal) { return [2 /*return*/]; } cnfPlugins = cnfOriginal.plugins || {}; cnfOriginal.plugins = cnfPlugins; Object.keys(selectedPlugins).forEach(function (key) { // c.buildConfig.plugins[key] = 'source:rnv'; var plugin = selectedPlugins[key]; if (plugin.props) questionPlugins[key] = plugin; cnfPlugins[key] = 'source:rnv'; // c.buildConfig.plugins[key] = selectedPlugins[key]; }); pluginKeys = Object.keys(questionPlugins); i = 0; _c.label = 4; case 4: if (!(i < pluginKeys.length)) return [3 /*break*/, 10]; pluginKey = pluginKeys[i]; plugin = questionPlugins[pluginKey]; pluginProps = Object.keys(plugin.props || {}); finalProps = {}; i2 = 0; _c.label = 5; case 5: if (!(i2 < pluginProps.length)) return [3 /*break*/, 8]; return [4 /*yield*/, (0, core_1.inquirerPrompt)({ name: 'propValue', type: 'input', message: "".concat(pluginKey, ": Add value for ").concat(pluginProps[i2], " (You can do this later in ./renative.json file)"), })]; case 6: propValue = (_c.sent()).propValue; finalProps[pluginProps[i2]] = propValue; _c.label = 7; case 7: i2++; return [3 /*break*/, 5]; case 8: pluginToAdd = {}; pluginToAdd.props = finalProps; cnfPlugins[pluginKey] = pluginToAdd; _c.label = 9; case 9: i++; return [3 /*break*/, 4]; case 10: spinner = (0, core_1.getApi)() .spinner("Installing: ".concat(installMessage.join(', '))) .start(''); (0, core_1.writeRenativeConfigFile)(ctx.paths.project.config, cnfOriginal); return [4 /*yield*/, (0, core_1.resolvePluginDependants)()]; case 11: _c.sent(); return [4 /*yield*/, (0, taskHelpers_1.checkAndInstallIfRequired)()]; case 12: _c.sent(); spinner.succeed('All plugins installed!'); (0, core_1.logSuccess)('Plugins installed successfully!'); return [2 /*return*/, true]; } }); }); }, task: core_1.RnvTaskName.pluginAdd, }); //# sourceMappingURL=taskPluginAdd.js.map