@sharksv/hyper
Version:
A CLI to bootstrap new projects!
122 lines (121 loc) • 4.33 kB
JavaScript
;
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;