UNPKG

@embrace-io/react-native

Version:
38 lines (37 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const inquirer = require("inquirer"); class Asker { constructor() { this.answers = {}; } ask(...question) { const cached = question.reduce((a, { name }) => { if (this.answers[name]) { a[name] = this.answers[name]; } return a; }, {}); if (Object.keys(cached).length === question.length) { return Promise.resolve(cached); } const formatted = question .reduce((a, question) => { if (cached[question.name]) { return a; } return [...a, question]; }, []) .map(({ name, message }) => ({ type: "input", name, message })); const prompt = inquirer.createPromptModule(); return prompt(formatted).then((ans) => { if (ans) { Object.keys(ans).forEach(key => { this.answers[key] = ans[key]; }); } return Object.assign(Object.assign({}, cached), ans); }); } } exports.default = Asker;