1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 |
|
5 |
|
6 | var chalk_1 = tslib_1.__importDefault(require("chalk"));
|
7 | var ora_1 = tslib_1.__importDefault(require("ora"));
|
8 | var enquirer_1 = require("enquirer");
|
9 | var ts_lib_scripts_utils_1 = require("ts-lib-scripts-utils");
|
10 | var validatePackageName_1 = require("./validatePackageName");
|
11 | var getOptions_1 = require("./getOptions");
|
12 | var genProject_1 = require("./genProject");
|
13 | var paths_1 = require("../config/paths");
|
14 | var isCmdInstalled_1 = tslib_1.__importDefault(require("./isCmdInstalled"));
|
15 | var createGitRepository_1 = tslib_1.__importDefault(require("./createGitRepository"));
|
16 | var gitCommit_1 = tslib_1.__importDefault(require("./gitCommit"));
|
17 | var installDeps_1 = tslib_1.__importDefault(require("./installDeps"));
|
18 | var genMonorepoProject_1 = tslib_1.__importDefault(require("./genMonorepoProject"));
|
19 | var execa = require("execa");
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | function create(projectNameConfig, program) {
|
27 | return tslib_1.__awaiter(this, void 0, void 0, function () {
|
28 | var projectName, packageName, options, spinner, error_1, projectPath, gitCreated, openWithCode;
|
29 | return tslib_1.__generator(this, function (_a) {
|
30 | switch (_a.label) {
|
31 | case 0:
|
32 | projectName = projectNameConfig.startsWith('@')
|
33 | ? projectNameConfig.substr(projectNameConfig.indexOf('/') + 1)
|
34 | : projectNameConfig;
|
35 | packageName = (program.packageName || projectNameConfig);
|
36 | if (!validatePackageName_1.validatePackageName(packageName)) {
|
37 | process.exit(1);
|
38 | }
|
39 | return [4 , getOptions_1.getOptions(projectName, packageName, program)];
|
40 | case 1:
|
41 | options = _a.sent();
|
42 | if (packageName.startsWith('@') && !options.npmScope && options.monorepo) {
|
43 | console.error("monorepo\u6A21\u5F0F\u65F6\uFF0C\u9879\u76EE\uFF0C\u9879\u76EE\u540D\u79F0\u4E0D\u80FD\u4EE5@\u5F00\u5934\u3002\u73B0\u5728\u662F\uFF1A" + packageName);
|
44 | return [2 ];
|
45 | }
|
46 | spinner = ora_1.default().start();
|
47 | spinner.start('正在生成项目...');
|
48 | _a.label = 2;
|
49 | case 2:
|
50 | _a.trys.push([2, 7, , 8]);
|
51 | if (!options.monorepo) return [3 , 4];
|
52 | return [4 , genMonorepoProject_1.default(options)];
|
53 | case 3:
|
54 | _a.sent();
|
55 | return [3 , 6];
|
56 | case 4: return [4 , genProject_1.genProject(options)];
|
57 | case 5:
|
58 | _a.sent();
|
59 | _a.label = 6;
|
60 | case 6:
|
61 | spinner.succeed("\u5DF2\u751F\u6210\u9879\u76EE " + chalk_1.default.green(packageName));
|
62 | return [3 , 8];
|
63 | case 7:
|
64 | error_1 = _a.sent();
|
65 | spinner.fail('生成项目失败');
|
66 | ts_lib_scripts_utils_1.logError(error_1);
|
67 | process.exit(1);
|
68 | return [3 , 8];
|
69 | case 8:
|
70 | projectPath = paths_1.resolveRoot(options.projectName);
|
71 | gitCreated = createGitRepository_1.default(projectPath);
|
72 | return [4 , installDeps_1.default(spinner, options)];
|
73 | case 9:
|
74 | _a.sent();
|
75 | if (gitCreated) {
|
76 | try {
|
77 | gitCommit_1.default(projectPath);
|
78 | }
|
79 | catch (error) {
|
80 |
|
81 | }
|
82 | }
|
83 | if (!isCmdInstalled_1.default('code')) return [3 , 12];
|
84 | console.log();
|
85 | return [4 , enquirer_1.prompt({
|
86 | type: 'confirm',
|
87 | name: 'openWithCode',
|
88 | message: '使用vscode打开项目?',
|
89 | initial: 'Y',
|
90 | })];
|
91 | case 10:
|
92 | openWithCode = (_a.sent()).openWithCode;
|
93 | if (!openWithCode) return [3 , 12];
|
94 | return [4 , execa('code', [projectName])];
|
95 | case 11:
|
96 | _a.sent();
|
97 | _a.label = 12;
|
98 | case 12:
|
99 | process.exit(0);
|
100 | return [2 ];
|
101 | }
|
102 | });
|
103 | });
|
104 | }
|
105 | exports.default = create;
|
106 |
|
\ | No newline at end of file |