UNPKG

@burnish/cli

Version:

a cli for creating vue / react / flutter projects

97 lines (96 loc) • 5.05 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 }); exports.regVersion = exports.regDescription = exports.regNameWihoutNullsafety = exports.regNameWithNullsafety = exports.COMMON_WITHOUT_NULL_SAFETY = exports.COMMON_NULL_SAFETY = void 0; const Ora_1 = __importDefault(require("Ora")); const chalk_1 = __importDefault(require("chalk")); const inquirer_1 = __importDefault(require("inquirer")); const log_symbols_1 = __importDefault(require("log-symbols")); const child_process_1 = __importDefault(require("child_process")); const utils_1 = require("../../utils"); const value_1 = __importDefault(require("../../value")); const targetFileDisplayReplace_1 = __importDefault(require("./targetFileDisplayReplace")); const updateNullSafetyTargetFile_1 = __importDefault(require("./updateNullSafetyTargetFile")); const updateWithoutNullSafetyTargetFile_1 = __importDefault(require("./updateWithoutNullSafetyTargetFile")); exports.COMMON_NULL_SAFETY = 'flutter_getx_template'; exports.COMMON_WITHOUT_NULL_SAFETY = 'fluttertemplate'; exports.regNameWithNullsafety = 'name: flutter_getx_template'; exports.regNameWihoutNullsafety = 'name: fluttertemplate'; exports.regDescription = 'description: A new Flutter project.'; exports.regVersion = 'version: 1.0.0+1'; const createFlutterApp = (projectName, targetDir) => __awaiter(void 0, void 0, void 0, function* () { try { const { flutterVersion } = yield inquirer_1.default.prompt([ { type: 'list', name: 'flutterVersion', message: 'Which flutter version do you want to create', default: 'null-safety', choices: ['null-safety', 'without-null-safety'], validate(val) { return true; } } ]); const { description, version } = yield inquirer_1.default.prompt([ { type: 'input', name: 'description', message: 'Please input your project description', default: 'description', validate(val) { return true; } }, { type: 'input', name: 'version', message: 'Please input project version', default: '1.0.0', validate(val) { return true; }, transformer(val) { return val; } } ]); console.log(chalk_1.default.white(`\n\n✨ Creating project in ${chalk_1.default.yellow(targetDir)}.`)); console.log(chalk_1.default.white(`\nšŸ—ƒ Initializing git repository....\n`)); child_process_1.default.execSync(`flutter create ${projectName}`, { stdio: [0, 1], windowsHide: true }); // åˆ‡ę¢å½“å‰ē›®å½•åˆ°ē›®ę ‡ę–‡ä»¶å¤¹ process.chdir(`./${projectName}`); const spinner = Ora_1.default({ text: `Download template from burnish git repository... This might take a while....\n` }); spinner.start(); const remoteUrl = flutterVersion === 'null-safety' ? value_1.default.FLUTTER_NULL_SAFETY : value_1.default.FLUTTER_WITHOUT_NULL_SAFETY; const templateName = flutterVersion === 'null-safety' ? exports.COMMON_NULL_SAFETY : exports.COMMON_WITHOUT_NULL_SAFETY; yield utils_1.downloadFromGithub(remoteUrl, templateName).catch((err) => { console.log(log_symbols_1.default.error, err); spinner.fail(chalk_1.default.red('Sorry, it may be network error,please check it out. \n')); process.exit(-1); }); targetFileDisplayReplace_1.default(projectName, flutterVersion, `${targetDir}/${templateName}`); // ę ¹ę®äøåŒē‰ˆęœ¬čæ›č”ŒäøåŒēš„ę“ä½œ if (flutterVersion === 'null-safety') updateNullSafetyTargetFile_1.default(projectName, targetDir, description, version, spinner); else updateWithoutNullSafetyTargetFile_1.default(projectName, targetDir, description, version, spinner); } catch (error) { console.log(error); } }); exports.default = createFlutterApp;