UNPKG

appcenter-cli

Version:

Command line tool for Visual Studio App Center

97 lines (96 loc) 3.25 kB
"use strict"; // Functions to read information from the user Object.defineProperty(exports, "__esModule", { value: true }); exports.prompt = void 0; const inquirer = require("inquirer"); const io_options_1 = require("./io-options"); function prompt(message) { return prompt .question([ { name: "result", message: message, }, ]) .then((answers) => answers["result"].toString()); } exports.prompt = prompt; (function (prompt) { function confirm(message, defaultResponse) { return prompt .question([ { type: "confirm", name: "confirm", message: message, default: !!defaultResponse, }, ]) .then((answers) => !!answers["confirm"]); } prompt.confirm = confirm; function confirmWithTimeout(message, timeoutMS, defaultResponse) { if (io_options_1.isQuiet()) { return Promise.resolve(!!defaultResponse); } else { let timerId; const confirmPrompt = inquirer.prompt({ type: "confirm", name: "confirm", message: message, default: !!defaultResponse, }); const promptCompleted = confirmPrompt.then((answers) => { clearTimeout(timerId); return !!answers["confirm"]; }); const timeoutPromise = new Promise((resolve, reject) => { timerId = setTimeout(resolve, timeoutMS); }).then(() => { confirmPrompt.ui.close(); return !!defaultResponse; }); return Promise.race([promptCompleted, timeoutPromise]); } } prompt.confirmWithTimeout = confirmWithTimeout; function password(message) { return prompt .question([ { type: "password", name: "result", message: message, }, ]) .then((answers) => answers["result"].toString()); } prompt.password = password; function question(questions) { if (io_options_1.isQuiet()) { if (!Array.isArray(questions)) { // Casting is done here due to incompatibility between typings and @types package questions = [questions]; } const answers = questions.reduce((answers, q) => { if (answers instanceof Error) { return answers; } if (q.type !== "confirm") { return new Error("Cannot prompt for input in quiet mode"); } answers[q.name] = true; return answers; }, {}); if (answers instanceof Error) { return Promise.reject(answers); } return Promise.resolve(answers); } // Wrap inquirer promise in "real" promise, typescript definitions // don't line up. return Promise.resolve(inquirer.prompt(questions)); } prompt.question = question; })(prompt = exports.prompt || (exports.prompt = {}));