UNPKG

@burnish/cli

Version:

a cli for creating vue / react / flutter projects

72 lines (71 loc) 2.9 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const chalk_1 = __importDefault(require("chalk")); const inquirer_1 = __importDefault(require("inquirer")); const action_1 = require("./action"); const createApp = (projectName) => __awaiter(void 0, void 0, void 0, function* () { const cwd = process.cwd(); const targetDir = path_1.default.resolve(cwd, projectName); const name = path_1.default.relative(cwd, projectName); // check projectName is Exist if (fs_extra_1.default.existsSync(targetDir)) { const { action } = yield inquirer_1.default.prompt([ { name: 'action', type: 'list', message: `Target directory ${chalk_1.default.cyan(targetDir)} already exists. choose an action:`, choices: [ { name: 'Overwrite', value: 'overwrite' }, { name: 'Cancel', value: false } ] } ]); if (!action) { return; } else if (action === 'overwrite') { console.log(`\nRemoving ${chalk_1.default.cyan(targetDir)}...`); yield fs_extra_1.default.remove(targetDir); } } const { framework } = yield inquirer_1.default.prompt([ { type: 'list', name: 'framework', message: 'Which framework do you want to create', default: 'Vue', choices: ['Vue', 'React', 'Flutter'], validate(val) { return true; } } ]); switch (framework) { case 'Vue': action_1.createVueApp(name, targetDir); break; case 'React': action_1.createReactApp(name, targetDir); break; case 'Flutter': action_1.createFlutterApp(name, targetDir); break; default: break; } }); exports.default = createApp;