soccer-go
Version:
Soccer CLI for stats and results.
68 lines (67 loc) • 2.23 kB
JavaScript
"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,
};
}