code: function () {
        var done = this.async();
        var questions = [];
  
        // Project name
        if (typeof this.preset.name === 'undefined' || this.preset.name === '') {
          questions.push({
            type: 'input',
            name: 'name',
            message: 'Project Name',
            default: this.settings.name || _s.titleize(this.appname)
          });
        }
  
        // Feature options
        options.forEach(function (option) {
          var question;
          var name = option.name;
          var type = option.type;
          if (typeof this.preset[name] === 'undefined') {
            switch (type) {
              case 'list':
                question = _.pick(option, 'name', 'message', 'type');
                question.choices = _.map(option.choices, function (choice) {
                  var data = _.pick(choice, 'name', 'value', 'disabled');
                  return data;
                }.bind(this));
                question.default = this.settings[name];
                break;
              case 'checkbox':
                question = _.pick(option, 'name', 'message', 'type', 'validate');
                question.choices = _.map(option.choices, function (choice) {
                  var data = _.pick(choice, 'name', 'value', 'disabled');
                  data.checked = _.includes(this.settings[name], data.value);
                  return data;
                }.bind(this));
                break;
            }
            questions.push(question);
          }
        }.bind(this));
  
        // Save config or not
        if (this.configType === 'custom') {
          questions.push({
            type: 'confirm',
            name: 'store',
            message: 'Do you want to save this config to .yo-rc.json?',
            default: false
          });
        }
  
        this.prompt(questions, function (answers) {
          // Finalize generator settings
          this.settings.name = typeof answers.name !== 'undefined' ? answers.name : this.preset.name;
          this.store = answers.store || false;
          options.forEach(function (option) {
            var name = option.name;
            this.settings[name] = answers[name] || this.preset[name];
          }.bind(this));
  
          done();
        }.bind(this));
      }
docs: Project settings