@burnish/cli
Version:
a cli for creating vue / react / flutter projects
72 lines (71 loc) • 2.9 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());
});
};
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;