Spaces:
Runtime error
Runtime error
; | |
const utils = require('./utils'); | |
const roles = { | |
default(prompt, choice) { | |
return choice; | |
}, | |
checkbox(prompt, choice) { | |
throw new Error('checkbox role is not implemented yet'); | |
}, | |
editable(prompt, choice) { | |
throw new Error('editable role is not implemented yet'); | |
}, | |
expandable(prompt, choice) { | |
throw new Error('expandable role is not implemented yet'); | |
}, | |
heading(prompt, choice) { | |
choice.disabled = ''; | |
choice.indicator = [choice.indicator, ' '].find(v => v != null); | |
choice.message = choice.message || ''; | |
return choice; | |
}, | |
input(prompt, choice) { | |
throw new Error('input role is not implemented yet'); | |
}, | |
option(prompt, choice) { | |
return roles.default(prompt, choice); | |
}, | |
radio(prompt, choice) { | |
throw new Error('radio role is not implemented yet'); | |
}, | |
separator(prompt, choice) { | |
choice.disabled = ''; | |
choice.indicator = [choice.indicator, ' '].find(v => v != null); | |
choice.message = choice.message || prompt.symbols.line.repeat(5); | |
return choice; | |
}, | |
spacer(prompt, choice) { | |
return choice; | |
} | |
}; | |
module.exports = (name, options = {}) => { | |
let role = utils.merge({}, roles, options.roles); | |
return role[name] || role.default; | |
}; | |