Introduction to Inquirer
Inquirer is a powerful, user-friendly library for creating interactive command line interfaces (CLI) in Node.js. It provides a variety of prompt types to enhance user interaction, including input, confirm, list, rawlist, expand, checkbox, and editor prompts. Inquirer is highly customizable and supports asynchronous code, making it a perfect choice for developers looking to create advanced CLI applications.
API Examples
Basic Input Prompt
const inquirer = require('inquirer'); inquirer.prompt([ { type: 'input', name: 'username', message: 'What is your name?', } ]).then(answers => { console.log(`Hello, ${answers.username}!`); });
Confirm Prompt
inquirer.prompt([ { type: 'confirm', name: 'continue', message: 'Do you want to continue?', default: false, } ]).then(answers => { if (answers.continue) { console.log('You chose to continue.'); } else { console.log('You chose not to continue.'); } });
List Prompt
inquirer.prompt([ { type: 'list', name: 'color', message: 'What is your favorite color?', choices: ['red', 'green', 'blue', 'yellow'], } ]).then(answers => { console.log(`Your favorite color is ${answers.color}.`); });
Checkbox Prompt
inquirer.prompt([ { type: 'checkbox', name: 'hobbies', message: 'Select your hobbies:', choices: ['Reading', 'Traveling', 'Cooking', 'Sports'], } ]).then(answers => { console.log(`Your hobbies are: ${answers.hobbies.join(', ')}.`); });
Password Prompt
inquirer.prompt([ { type: 'password', name: 'secret', message: 'Enter a secret:', mask: '*', } ]).then(answers => { console.log('Secret stored safely.'); });
App Example
Using the above prompts, let’s create a simple Node.js application that collects user information and displays a summary:
const inquirer = require('inquirer'); async function getUserInfo() { const userDetails = await inquirer.prompt([ { type: 'input', name: 'username', message: 'What is your name?', }, { type: 'list', name: 'color', message: 'What is your favorite color?', choices: ['red', 'green', 'blue', 'yellow'], }, { type: 'checkbox', name: 'hobbies', message: 'Select your hobbies:', choices: ['Reading', 'Traveling', 'Cooking', 'Sports'], }, { type: 'password', name: 'secret', message: 'Enter a secret:', mask: '*', }, { type: 'confirm', name: 'continue', message: 'Do you want to continue?', default: false, }, ]); console.log('\nSummary:'); console.log(`Name: ${userDetails.username}`); console.log(`Favorite Color: ${userDetails.color}`); console.log(`Hobbies: ${userDetails.hobbies.join(', ')}`); console.log(`Secret: ${userDetails.secret ? 'Stored safely' : 'Not provided'}`); console.log(`Continue: ${userDetails.continue ? 'Yes' : 'No'}`); } getUserInfo();
The above app collects the user’s name, favorite color, hobbies, and a secret, then displays the collected information. This example showcases the powerful functionality and flexibility of Inquirer for creating interactive CLI applications.
Hash: bae4b5b0c4ba2afc827f807d762613db7897b2e8f880c4c701a26b58683968b8