UNPKG

@sharksv/hyper

Version:

A CLI to bootstrap new projects!

122 lines (121 loc) 4.33 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const Args_1 = require("./Args"); const inquirer_1 = require("inquirer"); function Inquire() { return __awaiter(this, void 0, void 0, function* () { const { install, rainbow } = Args_1.default.flags; const authorName = { type: 'input', name: 'aName', message: "Author's Name:", default: 'Someone', filter: (answer) => answer.trim() }; let pTemplate; (function (pTemplate) { pTemplate["Jumpstart"] = "Jumpstart"; pTemplate["Static"] = "Static"; pTemplate["Rust"] = "Rust"; pTemplate["Node"] = "Node"; })(pTemplate || (pTemplate = {})); const projectTemplate = { type: 'list', name: 'projTemplate', message: 'Project Template?', default: pTemplate.Node, choices: [ { name: 'Jumpstart', value: pTemplate.Jumpstart }, new inquirer_1.Separator(), { name: 'A Node.js project', value: pTemplate.Node }, { name: 'Static site biolerplate', value: pTemplate.Static }, { name: 'Oxidized-C project (Rust)', value: pTemplate.Rust } ] }; const initilizeGit = { type: 'confirm', name: 'gitInit', message: 'Initilize Git?', default: true }; const firstCommit = { type: 'confirm', name: 'fstCommit', message: 'Commit current files?', default: true, when: (answers) => answers.gitInit === true }; let pManager; (function (pManager) { pManager["Npm"] = "Npm"; pManager["Yarn"] = "Yarn"; pManager["Cargo"] = "Cargo"; })(pManager || (pManager = {})); const packageManager = { type: 'list', name: 'pkgManager', message: 'Package Manager?', default: pManager.Npm, choices: [ { name: 'Npm', value: pManager.Npm }, { name: 'Yarn', value: pManager.Yarn }, { name: 'Cargo', value: pManager.Cargo } ], when: () => install }; const areYou = { type: 'confirm', name: 'areU', message: 'Do you listen to girl in red?', default: true, when: () => rainbow }; const Confirm = { type: 'expand', name: 'confirm', message: 'Generating proj in currentDir...', choices: [ { key: 'y', name: 'Confirm selection', value: 'yes' }, { key: 'c', name: 'Change directory', value: 'change' }, { key: 'o', name: 'Overwrite conflicting files (if any)', value: 'overwrite' }, new inquirer_1.Separator(), { key: 'x', name: 'Abort', value: 'abort' } ] }; return (0, inquirer_1.prompt)([ authorName, projectTemplate, packageManager, initilizeGit, firstCommit, areYou, Confirm ]); }); } exports.default = Inquire;