Skip to content

Commit 3d2198e

Browse files
committed
feat: improvement rquired value input
1 parent 33b068d commit 3d2198e

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

git-consistent

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ const setOptions = (program, definitions, terms) => {
2929
const term = terms[0]
3030
const optionName = term == 'subject' ? `-m, --${term}` : `--${term}`
3131
const valueStr = definitions[term].required ? `<${term}>` : `[${term}]`
32-
const defaultValue = definitions[term].required ? undefined : ''
33-
program.option(`${optionName} ${valueStr}`, definitions[term].description, defaultValue)
32+
program.option(`${optionName} ${valueStr}`, definitions[term].description)
3433
return setOptions(program, definitions, _.tail(terms))
3534
}
3635
}
@@ -109,8 +108,13 @@ const replaceTerm = (program, template, definition, term) => {
109108
let value = program[term]
110109

111110
if (program.interactive) {
112-
if (_.isEmpty(value)) value = input(term, definition)
113-
// TODO: do loop if required and value is empty
111+
if (_.isUndefined(value)) {
112+
value = input(term, definition)
113+
while (definition.required && _.isEmpty(value)) {
114+
console.log(`${term} is required`)
115+
value = input(term, definition)
116+
}
117+
}
114118
} else {
115119
if (_.isEmpty(value) && definition.required) throw new Error(`${term} is required.`)
116120
}

0 commit comments

Comments
 (0)