index.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. Object.defineProperty(exports, "help", {
  6. enumerable: true,
  7. get: ()=>help
  8. });
  9. const _packageJson = /*#__PURE__*/ _interopRequireDefault(require("../../../../package.json"));
  10. function _interopRequireDefault(obj) {
  11. return obj && obj.__esModule ? obj : {
  12. default: obj
  13. };
  14. }
  15. function help({ message , usage , commands , options }) {
  16. let indent = 2;
  17. // Render header
  18. console.log();
  19. console.log(`${_packageJson.default.name} v${_packageJson.default.version}`);
  20. // Render message
  21. if (message) {
  22. console.log();
  23. for (let msg of message.split("\n")){
  24. console.log(msg);
  25. }
  26. }
  27. // Render usage
  28. if (usage && usage.length > 0) {
  29. console.log();
  30. console.log("Usage:");
  31. for (let example of usage){
  32. console.log(" ".repeat(indent), example);
  33. }
  34. }
  35. // Render commands
  36. if (commands && commands.length > 0) {
  37. console.log();
  38. console.log("Commands:");
  39. for (let command of commands){
  40. console.log(" ".repeat(indent), command);
  41. }
  42. }
  43. // Render options
  44. if (options) {
  45. let groupedOptions = {};
  46. for (let [key, value] of Object.entries(options)){
  47. if (typeof value === "object") {
  48. groupedOptions[key] = {
  49. ...value,
  50. flags: [
  51. key
  52. ]
  53. };
  54. } else {
  55. groupedOptions[value].flags.push(key);
  56. }
  57. }
  58. console.log();
  59. console.log("Options:");
  60. for (let { flags , description , deprecated } of Object.values(groupedOptions)){
  61. if (deprecated) continue;
  62. if (flags.length === 1) {
  63. console.log(" ".repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(", ").padEnd(20, " "), description);
  64. } else {
  65. console.log(" ".repeat(indent), flags.slice().reverse().join(", ").padEnd(24, " "), description);
  66. }
  67. }
  68. }
  69. console.log();
  70. }