snips-sam
Version:
The Snips Assistant Manager
44 lines • 1.72 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const utils_1 = require("../utils");
const inquirer = require('inquirer');
class Prompt {
constructor(stream) {
this.waitForKeypress = (question, completionBlock) => tslib_1.__awaiter(this, void 0, void 0, function* () {
this.stream.loading(question);
return this.waitForInput(completionBlock);
});
this.promptList = (name, question, answers) => tslib_1.__awaiter(this, void 0, void 0, function* () {
return inquirer.prompt([
{
name,
type: 'list',
message: question,
choices: answers,
},
]);
});
this.promptQuestions = (questions) => tslib_1.__awaiter(this, void 0, void 0, function* () {
const questionsFlat = utils_1.flatMap(questions, value => value);
return inquirer.prompt(questionsFlat);
});
this.waitForInput = (preBlock) => tslib_1.__awaiter(this, void 0, void 0, function* () {
if (process.stdin.setRawMode !== undefined) {
process.stdin.setRawMode(true);
}
return new Promise(resolve => {
process.stdin.on('data', input => {
if (process.stdin.setRawMode !== undefined) {
process.stdin.setRawMode(false);
}
preBlock();
return resolve(input);
});
});
});
this.stream = stream;
}
}
exports.Prompt = Prompt;
//# sourceMappingURL=prompt.js.map
;