text: 
  'use strict';
  
  const utils = require('./helper');
  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;
  };
  