create-payload-app 0.3.13 → 0.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +0 -0
- package/dist/index.js +14 -26
- package/dist/lib/create-project.js +220 -0
- package/dist/lib/create-project.test.js +137 -0
- package/dist/lib/generate-secret.js +48 -0
- package/dist/lib/generateSecret.js +48 -0
- package/dist/lib/get-db-connection.js +71 -0
- package/dist/lib/parse-language.js +79 -0
- package/dist/lib/parse-project-name.js +71 -0
- package/dist/lib/parse-template.js +85 -0
- package/dist/lib/templates.js +6 -2
- package/dist/lib/write-common-files.js +118 -0
- package/dist/lib/write-env-file.js +75 -0
- package/dist/main.js +40 -45
- package/dist/templates/README.template.md +7 -0
- package/dist/templates/js-blank/package.json +1 -1
- package/dist/templates/js-blog/package.json +1 -1
- package/dist/templates/js-todo/package.json +1 -1
- package/dist/templates/ts-blank/package.json +1 -1
- package/dist/templates/ts-blog/package.json +1 -1
- package/dist/templates/ts-todo/package.json +2 -3
- package/dist/utils/log.js +3 -3
- package/dist/utils/messages.js +1 -1
- package/package.json +21 -6
package/bin/cli.js
CHANGED
File without changes
|
package/dist/index.js
CHANGED
@@ -37,31 +37,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
37
37
|
};
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
39
39
|
var main_1 = require("./main");
|
40
|
-
var usage_1 = require("./utils/usage");
|
41
40
|
var log_1 = require("./utils/log");
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
return [4 /*yield*/, main.init()];
|
53
|
-
case 2:
|
54
|
-
_a.sent();
|
55
|
-
return [3 /*break*/, 5];
|
56
|
-
case 3:
|
57
|
-
e_1 = _a.sent();
|
58
|
-
(0, usage_1.handleException)(e_1);
|
59
|
-
(0, log_1.error)("An error has occurred: ".concat(e_1 instanceof Error ? e_1.message : e_1));
|
60
|
-
return [3 /*break*/, 5];
|
61
|
-
case 4:
|
62
|
-
trx === null || trx === void 0 ? void 0 : trx.finish();
|
63
|
-
return [7 /*endfinally*/];
|
64
|
-
case 5: return [2 /*return*/];
|
65
|
-
}
|
41
|
+
function main() {
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
43
|
+
return __generator(this, function (_a) {
|
44
|
+
switch (_a.label) {
|
45
|
+
case 0: return [4 /*yield*/, new main_1.Main().init()];
|
46
|
+
case 1:
|
47
|
+
_a.sent();
|
48
|
+
return [2 /*return*/];
|
49
|
+
}
|
50
|
+
});
|
66
51
|
});
|
67
|
-
}
|
52
|
+
}
|
53
|
+
main().catch(function (e) {
|
54
|
+
return (0, log_1.error)("An error has occurred: ".concat(e instanceof Error ? e.message : e));
|
55
|
+
});
|
@@ -0,0 +1,220 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
|
+
};
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
+
exports.createProject = exports.updatePayloadVersion = exports.getLatestPayloadVersion = void 0;
|
43
|
+
var path_1 = __importDefault(require("path"));
|
44
|
+
var chalk_1 = __importDefault(require("chalk"));
|
45
|
+
var fs_extra_1 = __importDefault(require("fs-extra"));
|
46
|
+
var execa_1 = __importDefault(require("execa"));
|
47
|
+
var ora_1 = __importDefault(require("ora"));
|
48
|
+
var degit_1 = __importDefault(require("degit"));
|
49
|
+
var log_1 = require("../utils/log");
|
50
|
+
var write_common_files_1 = require("./write-common-files");
|
51
|
+
function createProjectDir(projectDir) {
|
52
|
+
return __awaiter(this, void 0, void 0, function () {
|
53
|
+
var pathExists;
|
54
|
+
return __generator(this, function (_a) {
|
55
|
+
switch (_a.label) {
|
56
|
+
case 0: return [4 /*yield*/, fs_extra_1.default.pathExists(projectDir)];
|
57
|
+
case 1:
|
58
|
+
pathExists = _a.sent();
|
59
|
+
if (pathExists) {
|
60
|
+
(0, log_1.error)("The project directory '".concat(projectDir, "' already exists"));
|
61
|
+
process.exit(1);
|
62
|
+
}
|
63
|
+
return [4 /*yield*/, fs_extra_1.default.mkdir(projectDir)];
|
64
|
+
case 2:
|
65
|
+
_a.sent();
|
66
|
+
return [2 /*return*/];
|
67
|
+
}
|
68
|
+
});
|
69
|
+
});
|
70
|
+
}
|
71
|
+
function installDeps(args, dir, packageManager) {
|
72
|
+
return __awaiter(this, void 0, void 0, function () {
|
73
|
+
var cmd, err_1;
|
74
|
+
return __generator(this, function (_a) {
|
75
|
+
switch (_a.label) {
|
76
|
+
case 0:
|
77
|
+
if (args['--no-deps']) {
|
78
|
+
return [2 /*return*/, true];
|
79
|
+
}
|
80
|
+
cmd = packageManager === 'yarn' ? 'yarn' : 'npm install --legacy-peer-deps';
|
81
|
+
_a.label = 1;
|
82
|
+
case 1:
|
83
|
+
_a.trys.push([1, 3, , 4]);
|
84
|
+
return [4 /*yield*/, execa_1.default.command(cmd, {
|
85
|
+
cwd: path_1.default.resolve(dir),
|
86
|
+
})];
|
87
|
+
case 2:
|
88
|
+
_a.sent();
|
89
|
+
return [2 /*return*/, true];
|
90
|
+
case 3:
|
91
|
+
err_1 = _a.sent();
|
92
|
+
return [2 /*return*/, false];
|
93
|
+
case 4: return [2 /*return*/];
|
94
|
+
}
|
95
|
+
});
|
96
|
+
});
|
97
|
+
}
|
98
|
+
function getLatestPayloadVersion(betaFlag) {
|
99
|
+
if (betaFlag === void 0) { betaFlag = false; }
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
101
|
+
var packageWithTag, stdout, err_2;
|
102
|
+
return __generator(this, function (_a) {
|
103
|
+
switch (_a.label) {
|
104
|
+
case 0:
|
105
|
+
_a.trys.push([0, 2, , 3]);
|
106
|
+
packageWithTag = 'payload';
|
107
|
+
if (betaFlag)
|
108
|
+
packageWithTag += '@beta';
|
109
|
+
return [4 /*yield*/, (0, execa_1.default)("npm info ".concat(packageWithTag, " version"), [], {
|
110
|
+
shell: true,
|
111
|
+
})];
|
112
|
+
case 1:
|
113
|
+
stdout = (_a.sent()).stdout;
|
114
|
+
return [2 /*return*/, "^".concat(stdout)];
|
115
|
+
case 2:
|
116
|
+
err_2 = _a.sent();
|
117
|
+
if (err_2 instanceof Error) {
|
118
|
+
console.error(err_2.message);
|
119
|
+
console.error(err_2.stack);
|
120
|
+
}
|
121
|
+
return [2 /*return*/, false];
|
122
|
+
case 3: return [2 /*return*/];
|
123
|
+
}
|
124
|
+
});
|
125
|
+
});
|
126
|
+
}
|
127
|
+
exports.getLatestPayloadVersion = getLatestPayloadVersion;
|
128
|
+
function updatePayloadVersion(projectDir, betaFlag) {
|
129
|
+
if (betaFlag === void 0) { betaFlag = false; }
|
130
|
+
return __awaiter(this, void 0, void 0, function () {
|
131
|
+
var payloadVersion, packageJsonPath, packageObj, err_3;
|
132
|
+
return __generator(this, function (_a) {
|
133
|
+
switch (_a.label) {
|
134
|
+
case 0: return [4 /*yield*/, getLatestPayloadVersion(betaFlag)];
|
135
|
+
case 1:
|
136
|
+
payloadVersion = _a.sent();
|
137
|
+
if (!payloadVersion) {
|
138
|
+
(0, log_1.warning)('Error retrieving latest Payload version. Please update your package.json manually.');
|
139
|
+
return [2 /*return*/];
|
140
|
+
}
|
141
|
+
packageJsonPath = path_1.default.resolve(projectDir, 'package.json');
|
142
|
+
_a.label = 2;
|
143
|
+
case 2:
|
144
|
+
_a.trys.push([2, 5, , 6]);
|
145
|
+
return [4 /*yield*/, fs_extra_1.default.readJson(packageJsonPath)];
|
146
|
+
case 3:
|
147
|
+
packageObj = _a.sent();
|
148
|
+
packageObj.dependencies.payload = payloadVersion;
|
149
|
+
return [4 /*yield*/, fs_extra_1.default.writeJson(packageJsonPath, packageObj, { spaces: 2 })];
|
150
|
+
case 4:
|
151
|
+
_a.sent();
|
152
|
+
return [3 /*break*/, 6];
|
153
|
+
case 5:
|
154
|
+
err_3 = _a.sent();
|
155
|
+
(0, log_1.warning)('Unable to write Payload version to package.json. Please update your package.json manually.');
|
156
|
+
return [3 /*break*/, 6];
|
157
|
+
case 6: return [2 /*return*/];
|
158
|
+
}
|
159
|
+
});
|
160
|
+
});
|
161
|
+
}
|
162
|
+
exports.updatePayloadVersion = updatePayloadVersion;
|
163
|
+
function createProject(args, projectDir, template, packageManager) {
|
164
|
+
return __awaiter(this, void 0, void 0, function () {
|
165
|
+
var templateDir, emitter, err_4, msg, spinner, result;
|
166
|
+
return __generator(this, function (_a) {
|
167
|
+
switch (_a.label) {
|
168
|
+
case 0: return [4 /*yield*/, createProjectDir(projectDir)];
|
169
|
+
case 1:
|
170
|
+
_a.sent();
|
171
|
+
templateDir = path_1.default.resolve(__dirname, "../templates/".concat(template.name));
|
172
|
+
console.log("\n Creating a new Payload app in ".concat(chalk_1.default.green(path_1.default.resolve(projectDir)), "\n"));
|
173
|
+
if (!(template.type === 'starter')) return [3 /*break*/, 3];
|
174
|
+
emitter = (0, degit_1.default)(template.url);
|
175
|
+
return [4 /*yield*/, emitter.clone(projectDir)];
|
176
|
+
case 2:
|
177
|
+
_a.sent();
|
178
|
+
return [3 /*break*/, 7];
|
179
|
+
case 3:
|
180
|
+
_a.trys.push([3, 6, , 7]);
|
181
|
+
return [4 /*yield*/, fs_extra_1.default.copy(templateDir, projectDir, { recursive: true })];
|
182
|
+
case 4:
|
183
|
+
_a.sent();
|
184
|
+
return [4 /*yield*/, (0, write_common_files_1.writeCommonFiles)(projectDir, template, packageManager)];
|
185
|
+
case 5:
|
186
|
+
_a.sent();
|
187
|
+
(0, log_1.success)('Project directory created');
|
188
|
+
return [3 /*break*/, 7];
|
189
|
+
case 6:
|
190
|
+
err_4 = _a.sent();
|
191
|
+
msg = 'Unable to copy template files. Please check template name or directory permissions.';
|
192
|
+
(0, log_1.error)(msg);
|
193
|
+
if (err_4 instanceof Error) {
|
194
|
+
console.error({ err: err_4 });
|
195
|
+
}
|
196
|
+
process.exit(1);
|
197
|
+
return [3 /*break*/, 7];
|
198
|
+
case 7:
|
199
|
+
spinner = (0, ora_1.default)('Checking latest Payload version...').start();
|
200
|
+
return [4 /*yield*/, updatePayloadVersion(projectDir, args['--beta'])];
|
201
|
+
case 8:
|
202
|
+
_a.sent();
|
203
|
+
spinner.text = 'Installing dependencies...';
|
204
|
+
return [4 /*yield*/, installDeps(args, projectDir, packageManager)];
|
205
|
+
case 9:
|
206
|
+
result = _a.sent();
|
207
|
+
spinner.stop();
|
208
|
+
spinner.clear();
|
209
|
+
if (result) {
|
210
|
+
(0, log_1.success)('Dependencies installed');
|
211
|
+
}
|
212
|
+
else {
|
213
|
+
(0, log_1.error)('Error installing dependencies');
|
214
|
+
}
|
215
|
+
return [2 /*return*/];
|
216
|
+
}
|
217
|
+
});
|
218
|
+
});
|
219
|
+
}
|
220
|
+
exports.createProject = createProject;
|
@@ -0,0 +1,137 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
|
+
};
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
+
var fs_extra_1 = __importDefault(require("fs-extra"));
|
43
|
+
var path_1 = __importDefault(require("path"));
|
44
|
+
var create_project_1 = require("./create-project");
|
45
|
+
var projectDir = path_1.default.resolve(__dirname, './tmp');
|
46
|
+
describe('createProject', function () {
|
47
|
+
beforeAll(function () {
|
48
|
+
console.log = jest.fn();
|
49
|
+
});
|
50
|
+
beforeEach(function () {
|
51
|
+
if (fs_extra_1.default.existsSync(projectDir)) {
|
52
|
+
fs_extra_1.default.rmdirSync(projectDir, { recursive: true });
|
53
|
+
}
|
54
|
+
});
|
55
|
+
afterEach(function () {
|
56
|
+
if (fs_extra_1.default.existsSync(projectDir)) {
|
57
|
+
fs_extra_1.default.rmdirSync(projectDir, { recursive: true });
|
58
|
+
}
|
59
|
+
});
|
60
|
+
describe('#createProject', function () {
|
61
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
62
|
+
var args = { _: ['project-name'], '--no-deps': true };
|
63
|
+
var packageManager = 'yarn';
|
64
|
+
it('creates static project', function () { return __awaiter(void 0, void 0, void 0, function () {
|
65
|
+
var expectedPayloadVersion, template, packageJsonPath, packageJson;
|
66
|
+
return __generator(this, function (_a) {
|
67
|
+
switch (_a.label) {
|
68
|
+
case 0: return [4 /*yield*/, (0, create_project_1.getLatestPayloadVersion)()];
|
69
|
+
case 1:
|
70
|
+
expectedPayloadVersion = _a.sent();
|
71
|
+
template = {
|
72
|
+
name: 'ts-todo',
|
73
|
+
type: 'static',
|
74
|
+
language: 'typescript',
|
75
|
+
};
|
76
|
+
return [4 /*yield*/, (0, create_project_1.createProject)(args, projectDir, template, packageManager)];
|
77
|
+
case 2:
|
78
|
+
_a.sent();
|
79
|
+
packageJsonPath = path_1.default.resolve(projectDir, 'package.json');
|
80
|
+
packageJson = fs_extra_1.default.readJsonSync(packageJsonPath);
|
81
|
+
expect(packageJson.dependencies.payload).toBe(expectedPayloadVersion);
|
82
|
+
// Check package name comtains template name
|
83
|
+
expect(packageJson.name).toContain('ts-todo');
|
84
|
+
// Check all common files are create
|
85
|
+
assertProjectFileExists('.npmrc');
|
86
|
+
assertProjectFileExists('.gitignore');
|
87
|
+
assertProjectFileExists('nodemon.json');
|
88
|
+
assertProjectFileExists('README.md');
|
89
|
+
assertProjectFileExists('tsconfig.json');
|
90
|
+
assertProjectFileExists('docker-compose.yml');
|
91
|
+
return [2 /*return*/];
|
92
|
+
}
|
93
|
+
});
|
94
|
+
}); });
|
95
|
+
});
|
96
|
+
describe('#updatePayloadVersion', function () {
|
97
|
+
it('updates payload version in package.json', function () { return __awaiter(void 0, void 0, void 0, function () {
|
98
|
+
var packageJsonPath, modified;
|
99
|
+
return __generator(this, function (_a) {
|
100
|
+
switch (_a.label) {
|
101
|
+
case 0:
|
102
|
+
packageJsonPath = path_1.default.resolve(projectDir, 'package.json');
|
103
|
+
return [4 /*yield*/, fs_extra_1.default.mkdir(projectDir)];
|
104
|
+
case 1:
|
105
|
+
_a.sent();
|
106
|
+
return [4 /*yield*/, fs_extra_1.default.writeJson(packageJsonPath, { dependencies: { payload: '0.0.1' } }, { spaces: 2 })];
|
107
|
+
case 2:
|
108
|
+
_a.sent();
|
109
|
+
return [4 /*yield*/, (0, create_project_1.updatePayloadVersion)(projectDir)];
|
110
|
+
case 3:
|
111
|
+
_a.sent();
|
112
|
+
return [4 /*yield*/, fs_extra_1.default.readJson(packageJsonPath)];
|
113
|
+
case 4:
|
114
|
+
modified = _a.sent();
|
115
|
+
expect(modified.dependencies.payload).not.toBe('0.0.1');
|
116
|
+
return [2 /*return*/];
|
117
|
+
}
|
118
|
+
});
|
119
|
+
}); });
|
120
|
+
});
|
121
|
+
});
|
122
|
+
function assertProjectFileExists(fileName) {
|
123
|
+
return __awaiter(this, void 0, void 0, function () {
|
124
|
+
var filePath, _a;
|
125
|
+
return __generator(this, function (_b) {
|
126
|
+
switch (_b.label) {
|
127
|
+
case 0:
|
128
|
+
filePath = path_1.default.resolve(projectDir, fileName);
|
129
|
+
_a = expect;
|
130
|
+
return [4 /*yield*/, fs_extra_1.default.pathExists(filePath)];
|
131
|
+
case 1:
|
132
|
+
_a.apply(void 0, [_b.sent()]).toBe(true);
|
133
|
+
return [2 /*return*/];
|
134
|
+
}
|
135
|
+
});
|
136
|
+
});
|
137
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
exports.generateSecret = void 0;
|
40
|
+
var crypto_1 = require("crypto");
|
41
|
+
function generateSecret() {
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
43
|
+
return __generator(this, function (_a) {
|
44
|
+
return [2 /*return*/, (0, crypto_1.randomBytes)(32).toString('hex').slice(0, 24)];
|
45
|
+
});
|
46
|
+
});
|
47
|
+
}
|
48
|
+
exports.generateSecret = generateSecret;
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
exports.generateSecret = void 0;
|
40
|
+
var crypto_1 = require("crypto");
|
41
|
+
function generateSecret() {
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
43
|
+
return __generator(this, function (_a) {
|
44
|
+
return [2 /*return*/, (0, crypto_1.randomBytes)(32).toString('hex').slice(0, 24)];
|
45
|
+
});
|
46
|
+
});
|
47
|
+
}
|
48
|
+
exports.generateSecret = generateSecret;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
|
+
};
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
+
exports.getDatabaseConnection = void 0;
|
43
|
+
var prompts_1 = __importDefault(require("prompts"));
|
44
|
+
var slugify_1 = __importDefault(require("@sindresorhus/slugify"));
|
45
|
+
function getDatabaseConnection(args, projectName) {
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
47
|
+
var response;
|
48
|
+
return __generator(this, function (_a) {
|
49
|
+
switch (_a.label) {
|
50
|
+
case 0:
|
51
|
+
if (args['--db'])
|
52
|
+
return [2 /*return*/, args['--db']];
|
53
|
+
return [4 /*yield*/, (0, prompts_1.default)({
|
54
|
+
type: 'text',
|
55
|
+
name: 'value',
|
56
|
+
message: 'Enter MongoDB connection',
|
57
|
+
initial: "mongodb://localhost/".concat((0, slugify_1.default)(projectName)),
|
58
|
+
validate: function (value) { return value.length; },
|
59
|
+
}, {
|
60
|
+
onCancel: function () {
|
61
|
+
process.exit(0);
|
62
|
+
},
|
63
|
+
})];
|
64
|
+
case 1:
|
65
|
+
response = _a.sent();
|
66
|
+
return [2 /*return*/, response.value];
|
67
|
+
}
|
68
|
+
});
|
69
|
+
});
|
70
|
+
}
|
71
|
+
exports.getDatabaseConnection = getDatabaseConnection;
|
@@ -0,0 +1,79 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
|
+
};
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
+
exports.parseLanguage = void 0;
|
43
|
+
var prompts_1 = __importDefault(require("prompts"));
|
44
|
+
function parseLanguage(args) {
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
46
|
+
var response;
|
47
|
+
return __generator(this, function (_a) {
|
48
|
+
switch (_a.label) {
|
49
|
+
case 0:
|
50
|
+
if (args['--template'])
|
51
|
+
return [2 /*return*/, args['--template']];
|
52
|
+
return [4 /*yield*/, (0, prompts_1.default)({
|
53
|
+
type: 'select',
|
54
|
+
name: 'value',
|
55
|
+
message: 'Choose language',
|
56
|
+
choices: [
|
57
|
+
{
|
58
|
+
title: 'javascript',
|
59
|
+
value: 'js',
|
60
|
+
},
|
61
|
+
{
|
62
|
+
title: 'typescript',
|
63
|
+
value: 'ts',
|
64
|
+
},
|
65
|
+
],
|
66
|
+
validate: function (value) { return value.length; },
|
67
|
+
}, {
|
68
|
+
onCancel: function () {
|
69
|
+
process.exit(0);
|
70
|
+
},
|
71
|
+
})];
|
72
|
+
case 1:
|
73
|
+
response = _a.sent();
|
74
|
+
return [2 /*return*/, response.value];
|
75
|
+
}
|
76
|
+
});
|
77
|
+
});
|
78
|
+
}
|
79
|
+
exports.parseLanguage = parseLanguage;
|