@rnv/cli
Version:
ReNative CLI
141 lines • 5.56 kB
JavaScript
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
;