UNPKG

@rnv/cli

Version:
141 lines 5.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateOptions = exports.inquirerSeparator = exports.inquirerPrompt = void 0; var tslib_1 = require("tslib"); var inquirer_1 = tslib_1.__importDefault(require("inquirer")); var inquirer_autocomplete_prompt_1 = tslib_1.__importDefault(require("inquirer-autocomplete-prompt")); var core_1 = require("@rnv/core"); inquirer_1.default.registerPrompt('autocomplete', inquirer_autocomplete_prompt_1.default); var inquirerPrompt = function (params) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var c, key, msg, type, name, resp; var _a, _b, _c; var _d, _e, _f, _g; return tslib_1.__generator(this, function (_h) { c = (0, core_1.getContext)(); if ((_e = (_d = c.program) === null || _d === void 0 ? void 0 : _d.opts()) === null || _e === void 0 ? void 0 : _e.yes) { key = params.name || params.type; if (params.type === 'confirm') { return [2 /*return*/, (_a = {}, _a[key] = true, _a)]; } if (params.default) { return [2 /*return*/, (_b = {}, _b[key] = typeof params.default === 'function' ? params.default() : params.default, _b)]; } } msg = params.logMessage || params.warningMessage || params.message; if ((_g = (_f = c.program) === null || _f === void 0 ? void 0 : _f.opts()) === null || _g === void 0 ? void 0 : _g.ci) { if (Array.isArray(params.choices) && typeof params.default !== 'undefined' && params.choices.includes(params.default)) { (0, core_1.logDebug)("defaulting to choice '".concat(params.default, "' for prompt '").concat(params.name, "'")); if (params.name) return [2 /*return*/, (_c = {}, _c[params.name] = params.default, _c)]; } return [2 /*return*/, Promise.reject("--ci option does not allow prompts. question: ".concat(msg, "."))]; } if (msg && params.logMessage) (0, core_1.logTask)(msg, (0, core_1.chalk)().grey); if (msg && params.warningMessage) (0, core_1.logWarning)(msg); type = params.type, name = params.name; if (type === 'confirm' && !name) params.name = 'confirm'; resp = inquirer_1.default.prompt(params); if (params.initialValue) resp.ui.rl.input.push(params.initialValue); return [2 /*return*/, resp]; }); }); }; exports.inquirerPrompt = inquirerPrompt; var inquirerSeparator = function (text) { return new inquirer_1.default.Separator(text); }; exports.inquirerSeparator = inquirerSeparator; var generateOptions = function (inputData, isMultiChoice, mapping, renderMethod) { if (isMultiChoice === void 0) { isMultiChoice = false; } (0, core_1.logDebug)('generateOptions', isMultiChoice); var asString = ''; var valuesAsObject = {}; var valuesAsArray = []; var keysAsObject = {}; var keysAsArray = []; var optionsAsArray = []; var isArray = Array.isArray(inputData); var output = { keysAsArray: [], valuesAsArray: [], keysAsObject: {}, valuesAsObject: {}, asString: '', optionsAsArray: [], }; var renderer = renderMethod || _generateOptionString; if (isArray) { inputData.forEach(function (v, i) { var rn = renderer(i, v, mapping, v); asString += rn; optionsAsArray.push(rn); valuesAsArray.push(v); if (!mapping) keysAsArray.push(v); if (!mapping) valuesAsObject[v] = v; }); } else { var i_1 = 0; Object.keys(inputData).forEach(function (k) { var v = inputData[k]; var rn = renderer(i_1, v, mapping, k); asString += rn; optionsAsArray.push(rn); keysAsArray.push(k); keysAsObject[k] = true; valuesAsObject[k] = v; valuesAsArray.push(v); i_1++; }); } output.keysAsArray = keysAsArray.sort(_sort); output.valuesAsArray = valuesAsArray.sort(_sort); output.keysAsObject = keysAsObject; output.valuesAsObject = valuesAsObject; output.asString = asString; output.optionsAsArray = optionsAsArray; return output; }; exports.generateOptions = generateOptions; var _sort = function (a, b) { var aStr = ''; var bStr = ''; if (typeof a === 'string') { // TODO: temp fix for weird issue when a/b are marked as string // but toLowerCase() is undefined. need to investigate aStr = a.toLowerCase ? a.toLowerCase() : a; bStr = b.toLowerCase ? b.toLowerCase() : b; } else { if (a && a.name) aStr = a.name.toLowerCase(); if (b && b.name) bStr = b.name.toLowerCase(); } var com = 0; if (aStr > bStr) { com = 1; } else if (aStr < bStr) { com = -1; } return com; }; var _generateOptionString = function (i, _obj, mapping, defaultVal) { return " [".concat((0, core_1.chalk)().bold.grey(i + 1), "]> ").concat((0, core_1.chalk)().bold.grey(mapping ? '' : defaultVal), " \n"); }; exports.default = { inquirerPrompt: exports.inquirerPrompt, generateOptions: exports.generateOptions, inquirerSeparator: exports.inquirerSeparator, }; //# sourceMappingURL=prompt.js.map