UNPKG

@irim/bin-tool

Version:

node bin tools

98 lines (97 loc) 2.77 kB
// 控制台输入 inquirer.js 封装 // @author Pluto <huarse@gmail.com> // @create 2020/05/14 10:58 import inquirer from 'inquirer'; import chalk from 'chalk'; /** * node 控制台二次确认 * @param message 提示信息 * @param defaultValue 默认值 * @example * const isUpdate = await confirm('请确认是否要升级?'); */ export async function confirm(message, defaultValue = false) { const result = await inquirer.prompt([{ type: 'confirm', name: 'value', message, default: defaultValue || false, }]); return result.value; } /** * node 控制台用户输入 * @param message 提示信息 * @param defaultValue 默认值 * @param required 是否必填 * @example * const username = await prompt('请输入用户名:'); */ export async function prompt(message, defaultValue, required = false) { const result = await inquirer.prompt([{ type: 'input', name: 'value', message, default: defaultValue, }]); if (!result.value && required) { return await prompt(chalk.red(message), defaultValue, true); } return result.value; } /** * node 控制台用户输入, alias for prompt * @param message 提示信息 * @param defaultValue 默认值 * @param required 是否必填 * @example * const username = await input('请输入用户名:'); */ export const input = prompt; /** * node 控制台用户输入 * @param message 提示信息 * @param defaultValue 默认值 * @param required 是否必填 * @example * const username = await password('请输入密码:'); */ export async function password(message, defaultValue, required = false) { const result = await inquirer.prompt([{ type: 'password', name: 'value', message, default: defaultValue, }]); if (!result.value && required) { return await prompt(chalk.red(message), defaultValue, true); } return result.value; } /** * node 控制台用户选择 * @param message 提示信息 * @param options 选项 * @param defaultValue 默认值或默认的选项 index * @example * const value = await select('请选择性别: ', ['男', '女']); */ export async function select(message, options, defaultValue) { const result = await inquirer.prompt([{ type: 'list', name: 'value', message, choices: options, default: defaultValue, }]); return result.value; } export async function holding(tips = '按回车继续...') { await inquirer.prompt([{ type: 'input', name: 'value', message: tips, prefix: '', }]); return true; }