UNPKG

aoc-automation

Version:

Advent of Code tool to automate the repetitive parts of AoC.

91 lines (90 loc) 2.29 kB
import prompts from "prompts"; import { execSync } from "child_process"; import kleur from "kleur"; const onCancel = () => { console.log(kleur.yellow("Aborting!")); process.exit(1); }; const initPrompt = () => { const firstYear = 2015; const currentYear = new Date().getFullYear(); const years = new Array(currentYear - firstYear + 1).fill(firstYear).map((val, i) => val + i).reverse(); let author = ""; try { author = execSync("git config user.name").toString().trim(); } catch { } return prompts( [ { type: "select", name: "year", message: "Year", choices: years.map((year) => ({ title: year, value: year })), initial: 0 }, { type: "text", name: "name", message: "Directory name", initial: "AdventOfCode" }, { type: "select", name: "language", message: "Language", choices: [ { title: "JavaScript", value: "js" }, { title: "TypeScript", value: "ts" } ], initial: 0 }, { type: (prev) => prev === "ts" ? "toggle" : null, name: "strict", message: "Strict mode", initial: true, active: "yes", inactive: "no" }, { type: (_, values) => values.language === "ts" ? "toggle" : null, name: "vscodeSettings", message: "(Optional) Would you like to include the default VS Code launch.json configuration to support debugging Typescript files?", initial: false, active: "yes", inactive: "no" }, { type: "toggle", name: "semicolons", message: "Semicolons", initial: true, active: "yes", inactive: "no" }, { type: "text", name: "author", message: `Author`, initial: author }, { type: "select", name: "packageManager", message: "Package manager", choices: [ { title: "NPM", value: "npm" }, { title: "Yarn", value: "yarn" }, { title: "pnpm", value: "pnpm" } ], initial: 0 } ], { onCancel } ); }; var initPrompt_default = initPrompt; export { initPrompt_default as default };