0

Suppose I want to prompt the user to select among a list of database options with "type checkbox":

    {
            type: 'checkbox',
            name: 'databaseType',
            message: `Which ${chalk.yellow('*type*')} of database(s) would you like to use?`,
            choices: response => {
                const databaseOpts = [
                    {
                        value: 'mysql',
                        name: 'MySQL'
                    },
                    {
                        value: 'cassandra',
                        name: 'Cassandra'
                    },
                    {
                        value: 'mongodb',
                        name: 'MongoDB'
                    }
                ];
                return databaseOpts;
            },
            default: 0
    },

After this initial prompt, I want to get the response for whichever option(s) they selected and prompt them again for the name of the database based on their selection(s) then store them:

        {
            when: response => response.databaseType === 'mysql',
            type: 'input',
            name: 'selectedMySQL',
            message: 'What is the name of your mysql database? ',
            default: 'testmysql',
            store: true
        },
        {
            when: response => response.databaseType === 'cassandra',
            type: 'input',
            name: 'selectedCassandra',
            message: 'What is the name of your cassandra database? ',
            default: 'testcassandra',
            store: true
        },
        {
            when: response => response.databaseType === 'mongo',
            type: 'input',
            name: 'selectedMongo',
            message: 'What is the name of your mongo database? ',
            default: 'testmongo',
            store: true
        }

Sample Desired Output:

For example user's choices in databaseOpts: {mysql, mongodb}

It will then ask:

1) What is the name of your mysql database?:

2) What is the name of your mongo database?:

User enters the name(s) respectively which will be stored in selectedMySQL and selectedMongo.

I'm unfamiliar with yeoman syntax, but this is the logic I want to implement. Please help, Thanks.

I tried:

when: response => response.databaseType.databaseOpts === 'mysql'

but it's still skipping the response prompts.

jche
  • 129
  • 2
  • 16

0 Answers0