GoScrobble/web/node_modules/enquirer/lib/roles.js

47 lines
1.2 KiB
JavaScript

'use strict';
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;
};