UNPKG

gslides-maker

Version:
64 lines (57 loc) 2.12 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _readlinesync = require('readline-sync'); var _readlinesync2 = _interopRequireDefault(_readlinesync); var _log = require('../log'); var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _wikipedia = require('../helpers/wikipedia'); class userInput { constructor ( data) {;this.data = data; this.data = data } /** * Starts the user input step * * @returns {Promise.<*>} */ async start () { console.log(_log.bold.call(void 0, 'gslides-maker v0.5 [beta]')) this.data.input.search = this.getSearch() const provider = await _wikipedia.wikipedia.call(void 0, { articleName: 'any', lang: 'en' }) const arrayOfArticles = await provider.search(this.data.input.search) this.data.input.articleName = await this.getArticle(arrayOfArticles) this.data.input.lang = await this.getLang() } /** * Get search term * * @returns {String} */ getSearch () { const search = _readlinesync2.default.question(`${_chalk2.default.bold.green('?')} What do you want to research about? `) return search } /** * Choose from article options * * @param {Promise.<Array.<String>>} fetchArticles Article options * @returns {Promise.<String>} */ async getArticle (articles) { const selectedIndex = _readlinesync2.default.keyInSelect(articles, `${_chalk2.default.bold.green('>')} Choose an Wikipedia article: `) if (selectedIndex === -1) { process.exit(0) } const selectedArticle = articles[selectedIndex] return selectedArticle } /** * Select lang of the article * * @returns {Promise.<String>} */ async getLang () { let answer = _readlinesync2.default.question(`${_chalk2.default.bold.green('?')} What is the language of the article [en]? `) if (!answer) { answer = 'en' } return answer } } exports.default = userInput;