jgb-cli
Version:
```shell npm i -g jgb-cli #全局安装 ```
115 lines • 7.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var chalk_1 = require("chalk");
var fs = require("fs");
var inquirer = require("inquirer");
var Logger_1 = require("jgb-shared/lib/Logger");
var path = require("path");
var tildify = require("tildify");
var checkVersion_1 = require("../utils/checkVersion");
var generate_1 = require("../utils/generate");
var templateFile_1 = require("../utils/templateFile");
function init(template, rawName, program) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
function run() {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var templatePath;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!templateFile_1.isLocalPath(template)) return [3 /*break*/, 4];
templatePath = templateFile_1.getTemplatePath(template);
if (!fs.existsSync(templatePath)) return [3 /*break*/, 2];
return [4 /*yield*/, gen(templatePath)];
case 1:
_a.sent();
return [3 /*break*/, 3];
case 2:
Logger_1.logger.warning("Local template \"" + template + "\" not found.");
_a.label = 3;
case 3: return [3 /*break*/, 8];
case 4: return [4 /*yield*/, checkVersion_1.default()];
case 5:
_a.sent();
return [4 /*yield*/, templateFile_1.downloadAndGenerate(template, tmp, clone)];
case 6:
_a.sent();
return [4 /*yield*/, gen(tmp)];
case 7:
_a.sent();
_a.label = 8;
case 8: return [2 /*return*/];
}
});
});
}
function gen(templatePath) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
generate_1.default(name, templatePath, to, function (err) {
if (err) {
Logger_1.logger.error(err);
}
console.log();
Logger_1.logger.info("Generated \"" + name + "\".");
});
return [2 /*return*/];
});
});
}
var inPlace, name, to, clone, offline, tmp;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
inPlace = !rawName || rawName === '.';
name = inPlace ? path.relative('../', process.cwd()) : rawName;
to = path.resolve(rawName || '.');
clone = program.clone || false;
offline = program.offline || false;
tmp = templateFile_1.generateMD5TemplatePath(template);
/**
* use offline cache
*/
if (offline) {
console.log("> Use cached template at " + chalk_1.default.yellow(tildify(tmp)));
template = tmp;
}
if (!fs.existsSync(to)) return [3 /*break*/, 1];
inquirer
.prompt([
{
type: 'confirm',
message: inPlace
? 'Generate project in current directory?'
: 'Target directory exists. Continue?',
name: 'ok'
}
])
.then(function (answers) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!answers.ok) return [3 /*break*/, 2];
return [4 /*yield*/, run()];
case 1:
_a.sent();
_a.label = 2;
case 2: return [2 /*return*/];
}
});
}); })
.catch();
return [3 /*break*/, 3];
case 1: return [4 /*yield*/, run()];
case 2:
_a.sent();
_a.label = 3;
case 3: return [2 /*return*/];
}
});
});
}
exports.default = init;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kL2luaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTBCO0FBQzFCLHVCQUF5QjtBQUN6QixtQ0FBcUM7QUFDckMsZ0RBQTZDO0FBQzdDLDJCQUE2QjtBQUM3QixpQ0FBbUM7QUFDbkMsc0RBQWlEO0FBQ2pELDhDQUF5QztBQUN6QyxzREFLK0I7QUFFL0IsU0FBOEIsSUFBSSxDQUNoQyxRQUFnQixFQUNoQixPQUFlLEVBQ2YsT0FBWTs7UUFxQ1osU0FBZSxHQUFHOzs7Ozs7aUNBQ1osMEJBQVcsQ0FBQyxRQUFRLENBQUMsRUFBckIsd0JBQXFCOzRCQUNqQixZQUFZLEdBQUcsOEJBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQ0FDM0MsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBM0Isd0JBQTJCOzRCQUM3QixxQkFBTSxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUE7OzRCQUF2QixTQUF1QixDQUFDOzs7NEJBRXhCLGVBQU0sQ0FBQyxPQUFPLENBQUMsc0JBQW1CLFFBQVEsa0JBQWMsQ0FBQyxDQUFDOzs7Z0NBRzVELHFCQUFNLHNCQUFZLEVBQUUsRUFBQTs7NEJBQXBCLFNBQW9CLENBQUM7NEJBQ3JCLHFCQUFNLGtDQUFtQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUE7OzRCQUEvQyxTQUErQyxDQUFDOzRCQUNoRCxxQkFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUE7OzRCQUFkLFNBQWMsQ0FBQzs7Ozs7O1NBRWxCO1FBRUQsU0FBZSxHQUFHLENBQUMsWUFBb0I7OztvQkFDckMsa0JBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxVQUFBLEdBQUc7d0JBQ2xDLElBQUksR0FBRyxFQUFFOzRCQUNQLGVBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQ25CO3dCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDZCxlQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFjLElBQUksUUFBSSxDQUFDLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUFDOzs7O1NBQ0o7Ozs7OztvQkExREssT0FBTyxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sS0FBSyxHQUFHLENBQUM7b0JBQ3RDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQy9ELEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDbEMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO29CQUMvQixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUM7b0JBQ25DLEdBQUcsR0FBRyxzQ0FBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDOUM7O3VCQUVHO29CQUNILElBQUksT0FBTyxFQUFFO3dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQTRCLGVBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFHLENBQUMsQ0FBQzt3QkFDdEUsUUFBUSxHQUFHLEdBQUcsQ0FBQztxQkFDaEI7eUJBRUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBakIsd0JBQWlCO29CQUNuQixRQUFRO3lCQUNMLE1BQU0sQ0FBQzt3QkFDTjs0QkFDRSxJQUFJLEVBQUUsU0FBUzs0QkFDZixPQUFPLEVBQUUsT0FBTztnQ0FDZCxDQUFDLENBQUMsd0NBQXdDO2dDQUMxQyxDQUFDLENBQUMsb0NBQW9DOzRCQUN4QyxJQUFJLEVBQUUsSUFBSTt5QkFDWDtxQkFDRixDQUFDO3lCQUNELElBQUksQ0FBQyxVQUFPLE9BQVk7Ozs7eUNBQ25CLE9BQU8sQ0FBQyxFQUFFLEVBQVYsd0JBQVU7b0NBQ1oscUJBQU0sR0FBRyxFQUFFLEVBQUE7O29DQUFYLFNBQVcsQ0FBQzs7Ozs7eUJBRWYsQ0FBQzt5QkFDRCxLQUFLLEVBQUUsQ0FBQzs7d0JBRVgscUJBQU0sR0FBRyxFQUFFLEVBQUE7O29CQUFYLFNBQVcsQ0FBQzs7Ozs7O0NBMkJmO0FBaEVELHVCQWdFQyJ9