UNPKG

soccer-go

Version:

Soccer CLI for stats and results.

68 lines (67 loc) 2.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.questions = questions; const prompts_1 = require("@inquirer/prompts"); const cfonts_1 = __importDefault(require("cfonts")); const leagues_1 = require("./leagues"); async function questions() { cfonts_1.default.say('SOCCER-GO', { font: 'tiny', colors: ['green'], space: false, }); // League selection with search const league = await (0, prompts_1.search)({ message: 'Choose a league', source: async (input) => { const filtered = !input ? leagues_1.leagueCodes : leagues_1.leagueCodes.filter((l) => l.name.toLowerCase().includes(input.toLowerCase())); return filtered.slice(0, 10).map((l) => ({ name: l.name, value: l.name, })); }, }); // Main function selection const main = await (0, prompts_1.select)({ message: 'Choose a function', choices: [ { name: 'Matchday', value: 'matchday' }, { name: 'Standings', value: 'standings' }, { name: 'Top Scorers', value: 'scorers' }, { name: 'Team info', value: 'team' }, ], }); // Conditional team prompts if (main === 'team') { const teamName = await (0, prompts_1.input)({ message: 'Team name', }); const teamOptions = await (0, prompts_1.checkbox)({ message: 'Team info', choices: [ { name: 'Fixtures', value: 'fixtures' }, { name: 'Players', value: 'players' }, { name: 'Details', value: 'details' }, ], }); return { league, main, teamName, teamOptions: { players: teamOptions.includes('players'), fixtures: teamOptions.includes('fixtures'), details: teamOptions.includes('details'), }, }; } return { league, main: main, }; }