UNPKG

@jin7942/ray

Version:

Lightweight CI/CD deployment tool powered by Docker and Git

36 lines (35 loc) 1.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.askValidated = askValidated; /** * InputHelper for initWizard */ const readline_1 = __importDefault(require("readline")); /** * Prompts the user for input and validates it. * * @param prompt - Question to display * @param validate - Validator function. Return `null` if valid, or error message string if invalid. * @param defaultValue - Optional default value if user presses enter * @returns A validated string from user input */ async function askValidated(prompt, validate, defaultValue) { const rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout, }); const ask = () => new Promise((resolve) => rl.question(prompt, resolve)); let answer; while (true) { answer = (await ask()).trim() || defaultValue || ''; const error = validate(answer); if (!error) break; console.log(`Invalid: ${error}`); } rl.close(); return answer; }