@burnish/cli
Version:
a cli for creating vue / react / flutter projects
97 lines (96 loc) ⢠5.05 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 });
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;