@rnv/engine-core
Version:
ReNative Engine Core
109 lines • 5.83 kB
JavaScript
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
;