(longName: string, opt: Option)
| 98 | |
| 99 | function buildCommandSynopsis(command: Command): string { |
| 100 | const positionals = command.args || []; |
| 101 | const optionParts = visibleOptions(command).map(([name, opt]) => buildCommandSynopsisOption(name, opt)); |
| 102 | return [...optionParts, ...positionals].filter(Boolean).join(' '); |
| 103 | } |
| 104 | |
| 105 | function buildCommandSynopsisOption(longName: string, opt: Option): string { |
| 106 | const optional = opt.default !== undefined; |
| 107 | |
| 108 | let token = opt.short ? `-${opt.short}` : `--${longName}`; |
| 109 | if (opt.type === 'string') { |
| 110 | const meta = getOptionVariableName(longName); |
| 111 | token += ` ${meta}`; |
| 112 | if (opt.multiple) { |
| 113 | token += '...'; |
| 114 | } |
| 115 | } |
no test coverage detected