create-payload-app 0.3.28 → 0.3.29-beta.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -160,13 +160,12 @@ function updatePayloadVersion(projectDir, betaFlag) {
|
|
160
160
|
exports.updatePayloadVersion = updatePayloadVersion;
|
161
161
|
function createProject(args, projectDir, template, packageManager) {
|
162
162
|
return __awaiter(this, void 0, void 0, function () {
|
163
|
-
var
|
163
|
+
var emitter, templateDir, err_4, msg, spinner, result;
|
164
164
|
return __generator(this, function (_a) {
|
165
165
|
switch (_a.label) {
|
166
166
|
case 0: return [4 /*yield*/, createOrFindProjectDir(projectDir)];
|
167
167
|
case 1:
|
168
168
|
_a.sent();
|
169
|
-
templateDir = path_1.default.resolve(__dirname, "../templates/".concat(template.name));
|
170
169
|
console.log("\n Creating a new Payload app in ".concat(chalk_1.default.green(path_1.default.resolve(projectDir)), "\n"));
|
171
170
|
if (!(template.type === 'starter')) return [3 /*break*/, 3];
|
172
171
|
emitter = (0, degit_1.default)(template.url);
|
@@ -176,6 +175,7 @@ function createProject(args, projectDir, template, packageManager) {
|
|
176
175
|
return [3 /*break*/, 7];
|
177
176
|
case 3:
|
178
177
|
_a.trys.push([3, 6, , 7]);
|
178
|
+
templateDir = path_1.default.resolve(__dirname, "../templates/".concat(template.directory));
|
179
179
|
return [4 /*yield*/, fs_extra_1.default.copy(templateDir, projectDir, { recursive: true })];
|
180
180
|
case 4:
|
181
181
|
_a.sent();
|
@@ -188,19 +188,20 @@ function createProject(args, projectDir, template, packageManager) {
|
|
188
188
|
err_4 = _a.sent();
|
189
189
|
msg = 'Unable to copy template files. Please check template name or directory permissions.';
|
190
190
|
(0, log_1.error)(msg);
|
191
|
-
|
192
|
-
console.error({ err: err_4 });
|
193
|
-
}
|
191
|
+
console.error({ err: err_4 });
|
194
192
|
process.exit(1);
|
195
193
|
return [3 /*break*/, 7];
|
196
194
|
case 7:
|
197
195
|
spinner = (0, ora_1.default)('Checking latest Payload version...').start();
|
196
|
+
if (!(template.type === 'static')) return [3 /*break*/, 9];
|
198
197
|
return [4 /*yield*/, updatePayloadVersion(projectDir, args['--beta'])];
|
199
198
|
case 8:
|
200
199
|
_a.sent();
|
200
|
+
_a.label = 9;
|
201
|
+
case 9:
|
201
202
|
spinner.text = 'Installing dependencies...';
|
202
203
|
return [4 /*yield*/, installDeps(args, projectDir, packageManager)];
|
203
|
-
case
|
204
|
+
case 10:
|
204
205
|
result = _a.sent();
|
205
206
|
spinner.stop();
|
206
207
|
spinner.clear();
|
@@ -43,7 +43,7 @@ exports.parseTemplate = void 0;
|
|
43
43
|
var prompts_1 = __importDefault(require("prompts"));
|
44
44
|
function parseTemplate(args, validTemplates) {
|
45
45
|
return __awaiter(this, void 0, void 0, function () {
|
46
|
-
var templateName_1, template_1,
|
46
|
+
var templateName_1, template_1, response, template;
|
47
47
|
return __generator(this, function (_a) {
|
48
48
|
switch (_a.label) {
|
49
49
|
case 0:
|
@@ -54,13 +54,16 @@ function parseTemplate(args, validTemplates) {
|
|
54
54
|
throw new Error('Invalid template given');
|
55
55
|
return [2 /*return*/, template_1];
|
56
56
|
}
|
57
|
-
filteredTemplates = validTemplates.map(function (t) { return t.name; });
|
58
57
|
return [4 /*yield*/, (0, prompts_1.default)({
|
59
58
|
type: 'select',
|
60
59
|
name: 'value',
|
61
60
|
message: 'Choose project template',
|
62
|
-
choices:
|
63
|
-
return {
|
61
|
+
choices: validTemplates.map(function (p) {
|
62
|
+
return {
|
63
|
+
title: p.name,
|
64
|
+
value: p.name,
|
65
|
+
description: p.description,
|
66
|
+
};
|
64
67
|
}),
|
65
68
|
validate: function (value) { return !!value.length; },
|
66
69
|
}, {
|
package/dist/lib/templates.js
CHANGED
@@ -35,13 +35,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
36
|
}
|
37
37
|
};
|
38
|
-
var
|
39
|
-
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
40
|
+
if (ar || !(i in from)) {
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
42
|
+
ar[i] = from[i];
|
43
|
+
}
|
44
|
+
}
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
40
46
|
};
|
41
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
42
48
|
exports.getValidTemplates = exports.validateTemplate = void 0;
|
43
|
-
var path_1 = __importDefault(require("path"));
|
44
|
-
var fs_1 = __importDefault(require("fs"));
|
45
49
|
var log_1 = require("../utils/log");
|
46
50
|
function validateTemplate(templateName) {
|
47
51
|
return __awaiter(this, void 0, void 0, function () {
|
@@ -53,7 +57,7 @@ function validateTemplate(templateName) {
|
|
53
57
|
validTemplates = _a.sent();
|
54
58
|
if (!validTemplates.map(function (t) { return t.name; }).includes(templateName)) {
|
55
59
|
(0, log_1.error)("'".concat(templateName, "' is not a valid template."));
|
56
|
-
(0, log_1.info)("Valid templates: ".concat(validTemplates.join(', ')));
|
60
|
+
(0, log_1.info)("Valid templates: ".concat(validTemplates.map(function (t) { return t.name; }).join(', ')));
|
57
61
|
return [2 /*return*/, false];
|
58
62
|
}
|
59
63
|
return [2 /*return*/, true];
|
@@ -64,23 +68,62 @@ function validateTemplate(templateName) {
|
|
64
68
|
exports.validateTemplate = validateTemplate;
|
65
69
|
function getValidTemplates() {
|
66
70
|
return __awaiter(this, void 0, void 0, function () {
|
67
|
-
var
|
71
|
+
var templates, starters;
|
68
72
|
return __generator(this, function (_a) {
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
73
|
+
templates = [
|
74
|
+
{
|
75
|
+
name: 'blank',
|
76
|
+
type: 'static',
|
77
|
+
description: 'Blank',
|
78
|
+
directory: 'ts-blank',
|
79
|
+
},
|
80
|
+
{
|
81
|
+
name: 'todo',
|
82
|
+
type: 'static',
|
83
|
+
description: 'Todo list',
|
84
|
+
directory: 'ts-todo',
|
85
|
+
},
|
86
|
+
{
|
87
|
+
name: 'blog',
|
74
88
|
type: 'static',
|
75
|
-
|
76
|
-
|
77
|
-
|
89
|
+
description: 'Blog',
|
90
|
+
directory: 'ts-blog',
|
91
|
+
},
|
92
|
+
];
|
93
|
+
starters = [
|
94
|
+
{
|
95
|
+
name: 'payload-demo',
|
96
|
+
type: 'starter',
|
97
|
+
url: 'https://github.com/payloadcms/public-demo',
|
98
|
+
description: 'Payload demo site at https://demo.payloadcms.com',
|
99
|
+
},
|
100
|
+
{
|
101
|
+
name: 'payload-website',
|
102
|
+
type: 'starter',
|
103
|
+
url: 'https://github.com/payloadcms/website-cms',
|
104
|
+
description: 'Payload website CMS at https://payloadcms.com',
|
105
|
+
},
|
106
|
+
{
|
107
|
+
name: 'cloud-template-blank',
|
108
|
+
type: 'starter',
|
109
|
+
url: 'https://github.com/payloadcms/template-blank',
|
110
|
+
description: 'Blank template for Payload Cloud',
|
111
|
+
},
|
112
|
+
{
|
113
|
+
name: 'cloud-template-website',
|
114
|
+
type: 'starter',
|
115
|
+
url: 'https://github.com/payloadcms/template-website',
|
116
|
+
description: 'Website template for Payload Cloud',
|
117
|
+
},
|
118
|
+
{
|
119
|
+
name: 'cloud-template-ecommerce',
|
120
|
+
type: 'starter',
|
121
|
+
url: 'https://github.com/payloadcms/template-ecommerce',
|
122
|
+
description: 'E-commerce template for Payload Cloud',
|
123
|
+
},
|
124
|
+
];
|
125
|
+
return [2 /*return*/, __spreadArray(__spreadArray([], templates, true), starters, true)];
|
78
126
|
});
|
79
127
|
});
|
80
128
|
}
|
81
129
|
exports.getValidTemplates = getValidTemplates;
|
82
|
-
function getDirectories(dir) {
|
83
|
-
return fs_1.default.readdirSync(dir).filter(function (file) {
|
84
|
-
return fs_1.default.statSync("".concat(dir, "/").concat(file)).isDirectory();
|
85
|
-
});
|
86
|
-
}
|
@@ -40,34 +40,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
40
|
};
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
42
42
|
exports.writeEnvFile = void 0;
|
43
|
-
var
|
43
|
+
var path_1 = __importDefault(require("path"));
|
44
44
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
45
45
|
var log_1 = require("../utils/log");
|
46
|
-
function writeEnvFile(
|
46
|
+
function writeEnvFile(args) {
|
47
47
|
return __awaiter(this, void 0, void 0, function () {
|
48
|
-
var
|
48
|
+
var databaseUri, payloadSecret, template, projectDir, envFile, envFileLines, envFilePairs, newEnvFilePairs, newEnvFileLines, content, err_1;
|
49
49
|
return __generator(this, function (_a) {
|
50
50
|
switch (_a.label) {
|
51
51
|
case 0:
|
52
|
-
|
52
|
+
databaseUri = args.databaseUri, payloadSecret = args.payloadSecret, template = args.template, projectDir = args.projectDir;
|
53
53
|
_a.label = 1;
|
54
54
|
case 1:
|
55
|
-
_a.trys.push([1,
|
56
|
-
|
57
|
-
|
55
|
+
_a.trys.push([1, 6, , 7]);
|
56
|
+
if (!(template.type === 'starter' &&
|
57
|
+
fs_extra_1.default.existsSync(path_1.default.join(projectDir, '.env.example')))) return [3 /*break*/, 4];
|
58
|
+
return [4 /*yield*/, fs_extra_1.default.readFile(path_1.default.join(projectDir, '.env.example'), 'utf8')];
|
58
59
|
case 2:
|
60
|
+
envFile = _a.sent();
|
61
|
+
envFileLines = envFile.split('\n').filter(function (e) { return e; });
|
62
|
+
envFilePairs = envFileLines.map(function (line) {
|
63
|
+
var _a = line.split('='), key = _a[0], value = _a[1];
|
64
|
+
return { key: key, value: value };
|
65
|
+
});
|
66
|
+
newEnvFilePairs = envFilePairs.map(function (pair) {
|
67
|
+
if (pair.key === 'MONGODB_URI' || pair.key === 'MONGO_URL') {
|
68
|
+
return { key: pair.key, value: databaseUri };
|
69
|
+
}
|
70
|
+
if (pair.key === 'PAYLOAD_SECRET' || pair.key === 'PAYLOAD_SECRET_KEY') {
|
71
|
+
return { key: pair.key, value: payloadSecret };
|
72
|
+
}
|
73
|
+
return pair;
|
74
|
+
});
|
75
|
+
newEnvFileLines = newEnvFilePairs.map(function (pair) { return "".concat(pair.key, "=").concat(pair.value); });
|
76
|
+
return [4 /*yield*/, fs_extra_1.default.writeFile(path_1.default.join(projectDir, '.env'), newEnvFileLines.join('\n'))];
|
77
|
+
case 3:
|
78
|
+
_a.sent();
|
79
|
+
return [2 /*return*/];
|
80
|
+
case 4:
|
81
|
+
content = "MONGODB_URI=".concat(databaseUri, "\nPAYLOAD_SECRET=").concat(payloadSecret);
|
82
|
+
return [4 /*yield*/, fs_extra_1.default.outputFile("".concat(projectDir, "/.env"), content)];
|
83
|
+
case 5:
|
59
84
|
_a.sent();
|
60
85
|
(0, log_1.success)('.env file created');
|
61
|
-
return [3 /*break*/,
|
62
|
-
case
|
86
|
+
return [3 /*break*/, 7];
|
87
|
+
case 6:
|
63
88
|
err_1 = _a.sent();
|
64
89
|
(0, log_1.error)('Unable to write .env file');
|
65
90
|
if (err_1 instanceof Error) {
|
66
91
|
(0, log_1.error)(err_1.message);
|
67
92
|
}
|
68
93
|
process.exit(1);
|
69
|
-
return [3 /*break*/,
|
70
|
-
case
|
94
|
+
return [3 /*break*/, 7];
|
95
|
+
case 7: return [2 /*return*/];
|
71
96
|
}
|
72
97
|
});
|
73
98
|
});
|
package/dist/main.js
CHANGED
@@ -122,7 +122,12 @@ var Main = /** @class */ (function () {
|
|
122
122
|
return [4 /*yield*/, (0, create_project_1.createProject)(this.args, projectDir, template, packageManager)];
|
123
123
|
case 12:
|
124
124
|
_e.sent();
|
125
|
-
return [4 /*yield*/, (0, write_env_file_1.writeEnvFile)(
|
125
|
+
return [4 /*yield*/, (0, write_env_file_1.writeEnvFile)({
|
126
|
+
databaseUri: databaseUri,
|
127
|
+
payloadSecret: payloadSecret,
|
128
|
+
template: template,
|
129
|
+
projectDir: projectDir,
|
130
|
+
})];
|
126
131
|
case 13:
|
127
132
|
_e.sent();
|
128
133
|
_e.label = 14;
|
package/dist/utils/messages.js
CHANGED
@@ -52,6 +52,7 @@ var header = function (message) {
|
|
52
52
|
return "".concat(chalk_1.default.yellow(figures_1.default.star), " ").concat(chalk_1.default.bold(message));
|
53
53
|
};
|
54
54
|
exports.welcomeMessage = (0, chalk_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n {green Welcome to Payload. Let's create a project! }\n"], ["\n {green Welcome to Payload. Let's create a project! }\n"])));
|
55
|
+
var spacer = ' '.repeat(8);
|
55
56
|
function helpMessage() {
|
56
57
|
return __awaiter(this, void 0, void 0, function () {
|
57
58
|
var validTemplates;
|
@@ -60,12 +61,17 @@ function helpMessage() {
|
|
60
61
|
case 0: return [4 /*yield*/, (0, templates_1.getValidTemplates)()];
|
61
62
|
case 1:
|
62
63
|
validTemplates = _a.sent();
|
63
|
-
return [2 /*return*/, (0, chalk_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n {bold USAGE}\n\n {dim $} {bold npx create-payload-app}\n\n {bold OPTIONS}\n\n
|
64
|
+
return [2 /*return*/, (0, chalk_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n {bold USAGE}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t blog\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n\n {dim Available templates: ", "}\n\n --use-npm Use npm to install dependencies\n --no-deps Do not install any dependencies\n -h Show help\n"], ["\n {bold USAGE}\n\n {dim $} {bold npx create-payload-app}\n {dim $} {bold npx create-payload-app} my-project\n {dim $} {bold npx create-payload-app} -n my-project -t blog\n\n {bold OPTIONS}\n\n -n {underline my-payload-app} Set project name\n -t {underline template_name} Choose specific template\n\n {dim Available templates: ", "}\n\n --use-npm Use npm to install dependencies\n --no-deps Do not install any dependencies\n -h Show help\n"])), formatTemplates(validTemplates))];
|
64
65
|
}
|
65
66
|
});
|
66
67
|
});
|
67
68
|
}
|
68
69
|
exports.helpMessage = helpMessage;
|
70
|
+
function formatTemplates(templates) {
|
71
|
+
return "\n\n".concat(spacer).concat(templates
|
72
|
+
.map(function (t) { return "".concat(t.name).concat(' '.repeat(18 - t.name.length)).concat(t.description); })
|
73
|
+
.join("\n".concat(spacer)));
|
74
|
+
}
|
69
75
|
function successMessage(projectDir, packageManager) {
|
70
76
|
return "\n ".concat(header('Launch Application:'), "\n\n - cd ").concat(projectDir, "\n - ").concat(packageManager === 'yarn' ? 'yarn' : 'npm run', " dev\n\n ").concat(header('Documentation:'), "\n\n - ").concat(createTerminalLink('Getting Started', 'https://payloadcms.com/docs/getting-started/what-is-payload'), "\n - ").concat(createTerminalLink('Configuration', 'https://payloadcms.com/docs/configuration/overview'), "\n\n");
|
71
77
|
}
|
package/package.json
CHANGED
@@ -34,17 +34,17 @@
|
|
34
34
|
"fs-extra": "^9.0.1",
|
35
35
|
"handlebars": "^4.7.7",
|
36
36
|
"ora": "^5.1.0",
|
37
|
-
"prompts": "^2.4.
|
37
|
+
"prompts": "^2.4.2",
|
38
38
|
"terminal-link": "^2.1.1"
|
39
39
|
},
|
40
|
-
"version": "0.3.
|
40
|
+
"version": "0.3.29-beta.0",
|
41
41
|
"devDependencies": {
|
42
42
|
"@types/command-exists": "^1.2.0",
|
43
43
|
"@types/degit": "^2.8.3",
|
44
44
|
"@types/fs-extra": "^9.0.12",
|
45
45
|
"@types/jest": "^27.0.3",
|
46
46
|
"@types/node": "^16.6.2",
|
47
|
-
"@types/prompts": "^2.4.
|
47
|
+
"@types/prompts": "^2.4.1",
|
48
48
|
"@typescript-eslint/eslint-plugin": "^5.41.0",
|
49
49
|
"@typescript-eslint/parser": "^5.41.0",
|
50
50
|
"copyfiles": "^2.4.1",
|