bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
93 lines (79 loc) • 3.18 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Help = Help;
function _react() {
const data = _interopRequireDefault(require("react"));
_react = function () {
return data;
};
return data;
}
function _ink() {
const data = require("ink");
_ink = function () {
return data;
};
return data;
}
/* eslint-disable @typescript-eslint/no-non-null-assertion */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
function Help(Renderer = DefaultHelpRender) {
return function getHelpProps(commands, groups) {
const help = Object.entries(commands).filter(([, command]) => !command.private && (command.shortDescription || command.description)).reduce(function (partialHelp, [id, command]) {
partialHelp[command.group] = partialHelp[command.group] || {
commands: {},
description: groups[command.group] || command.group
};
partialHelp[command.group].commands[id] = command.shortDescription || command.description;
return partialHelp;
}, {});
return (0, _ink().render)( /*#__PURE__*/_react().default.createElement(Renderer, help));
};
}
function DefaultHelpRender(props) {
const element = /*#__PURE__*/_react().default.createElement(_ink().Box, {
key: "help",
flexDirection: "column"
}, /*#__PURE__*/_react().default.createElement(HelpHeader, null), Object.entries(props).map(([groupName, group]) => {
return /*#__PURE__*/_react().default.createElement(_ink().Box, {
key: groupName,
flexDirection: "column",
marginBottom: 1
}, /*#__PURE__*/_react().default.createElement(_ink().Text, {
bold: true,
underline: true,
key: `group_${groupName}`
}, group.description), /*#__PURE__*/_react().default.createElement(_ink().Box, {
flexDirection: "column"
}, Object.entries(group.commands).map(([commandName, description]) => {
return /*#__PURE__*/_react().default.createElement(_ink().Text, {
key: commandName
}, ' ', /*#__PURE__*/_react().default.createElement(_ink().Text, {
bold: true
}, alignCommandName(commandName)), description);
})));
}), /*#__PURE__*/_react().default.createElement(HelpFooter, null));
return element;
}
function HelpHeader() {
return /*#__PURE__*/_react().default.createElement(_ink().Box, {
key: "HelpHeader",
flexDirection: "column"
}, /*#__PURE__*/_react().default.createElement(_ink().Text, {
bold: true
}, `usage: bit [--version] [--help] <command> [<args>]`, " "), /*#__PURE__*/_react().default.createElement(_ink().Color, {
grey: true
}, " bit documentation: https://docs.bit.dev"));
}
function HelpFooter() {
const footer = `please use 'bit <command> --help' for more information and guides on specific commands.`;
return /*#__PURE__*/_react().default.createElement(_ink().Box, null, /*#__PURE__*/_react().default.createElement(_ink().Color, {
grey: true
}, footer));
}
function alignCommandName(name, sizeToAlign = 20) {
return `${name}${new Array(sizeToAlign - name.length).join(' ')}`;
}