| 70 | |
| 71 | /** @internal */ |
| 72 | export const getHelp = (self: Usage.Usage): HelpDoc.HelpDoc => { |
| 73 | const spans = enumerate(self, InternalCliConfig.defaultConfig) |
| 74 | if (Arr.isNonEmptyReadonlyArray(spans)) { |
| 75 | const head = Arr.headNonEmpty(spans) |
| 76 | const tail = Arr.tailNonEmpty(spans) |
| 77 | if (Arr.isNonEmptyReadonlyArray(tail)) { |
| 78 | return pipe( |
| 79 | Arr.map(spans, (span) => InternalHelpDoc.p(span)), |
| 80 | Arr.reduceRight( |
| 81 | InternalHelpDoc.empty, |
| 82 | (left, right) => InternalHelpDoc.sequence(left, right) |
| 83 | ) |
| 84 | ) |
| 85 | } |
| 86 | return InternalHelpDoc.p(head) |
| 87 | } |
| 88 | return InternalHelpDoc.empty |
| 89 | } |
| 90 | |
| 91 | /** @internal */ |
| 92 | export const enumerate = dual< |