@rawcmd/typewriters
Version:
Collection of typewriters for styling command-line messages for Rawcmd.
31 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@rawcmd/core");
const contents_1 = require("./contents");
const title_1 = require("./title");
function optionsTypewriter(options) {
options = Object.assign({ title: 'Options' }, options);
const writeTitle = title_1.titleTypewriter(options);
const writeBody = contents_1.contentsTypewriter(options);
return (command) => {
if (!command || command.options.length <= 0) {
return '';
}
const data = command.options.filter((o) => {
return !!o.name && !!o.description;
}).map((o) => {
return [
[
o.name ? `--${o.name}` : null,
o.alias ? `-${o.alias}` : null,
].filter((v) => !!v).join(', '),
o.description,
];
});
const titleOutput = writeTitle(options.title);
const bodyOutput = writeBody(data);
return [titleOutput, bodyOutput].filter((o) => !!o).join(core_1.EOL);
};
}
exports.optionsTypewriter = optionsTypewriter;
//# sourceMappingURL=options.js.map