2024-05-29 11:51:04 -04:00

57 lines
1.6 KiB
JavaScript

import utils from '@serverlessinc/sf-core/src/utils.js'
const { writeText, style } = utils
export default (commandOptions) => {
const indentFillLength = 40
for (const [option, optionsObject] of Object.entries(commandOptions)) {
let legacyOptionsIndentFill = '.'.repeat(
Math.max(indentFillLength - option.length, 0),
)
let optionsIndentFill = ' '.repeat(
Math.max(indentFillLength - option.length - 4, 0),
)
if (optionsObject.required) {
legacyOptionsIndentFill = legacyOptionsIndentFill.slice(
0,
legacyOptionsIndentFill.length - 18,
)
optionsIndentFill = optionsIndentFill.slice(
0,
optionsIndentFill.length - 18,
)
} else {
legacyOptionsIndentFill = legacyOptionsIndentFill.slice(
0,
legacyOptionsIndentFill.length - 7,
)
optionsIndentFill = optionsIndentFill.slice(
0,
optionsIndentFill.length - 7,
)
}
if (optionsObject.shortcut) {
legacyOptionsIndentFill = legacyOptionsIndentFill.slice(
0,
legacyOptionsIndentFill.length - 5,
)
optionsIndentFill = optionsIndentFill.slice(
0,
optionsIndentFill.length - 5,
)
}
let shortcutInfo = ''
let requiredInfo = ''
if (optionsObject.shortcut) shortcutInfo = ` / -${optionsObject.shortcut}`
if (optionsObject.required) requiredInfo = ' (required)'
const optionsUsage = optionsObject.usage
? optionsIndentFill + style.aside(optionsObject.usage)
: ''
writeText(` --${option}${shortcutInfo}${requiredInfo} ${optionsUsage}`)
}
}