UNPKG

@irim/bin-tool

Version:

node bin tools

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