@oclif/core
Version:
base library for oclif CLIs
29 lines (28 loc) • 844 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = renderList;
const wordwrap = require('wordwrap');
const screen_1 = require("../screen");
const util_1 = require("../util/util");
function linewrap(length, s) {
return wordwrap(length, screen_1.stdtermwidth, {
skipScheme: 'ansi-color',
})(s).trim();
}
function renderList(items) {
if (items.length === 0) {
return '';
}
const maxLength = (0, util_1.maxBy)(items, (item) => item[0].length)?.[0].length ?? 0;
const lines = items.map((i) => {
let left = i[0];
let right = i[1];
if (!right) {
return left;
}
left = left.padEnd(maxLength);
right = linewrap(maxLength + 2, right);
return `${left} ${right}`;
});
return lines.join('\n');
}