@backstage/create-app 0.5.12-next.2 → 0.5.13
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/CHANGELOG.md +20 -0
- package/bin/backstage-create-app +1 -10
- package/dist/index.cjs.js +141 -126
- package/dist/index.cjs.js.map +1 -1
- package/package.json +4 -5
- package/templates/default-app/app-config.production.yaml +4 -0
- package/templates/default-app/app-config.yaml.hbs +4 -2
- package/templates/default-app/packages/app/e2e-tests/app.test.ts +4 -0
- package/templates/default-app/packages/app/src/App.tsx +8 -1
- package/templates/default-app/packages/backend/package.json.hbs +5 -5
- package/templates/default-app/packages/backend/src/index.ts +33 -107
- package/templates/default-app/playwright.config.ts +1 -1
- package/templates/default-app/packages/backend/src/plugins/app.ts +0 -14
- package/templates/default-app/packages/backend/src/plugins/auth.ts +0 -54
- package/templates/default-app/packages/backend/src/plugins/catalog.ts +0 -14
- package/templates/default-app/packages/backend/src/plugins/proxy.ts +0 -13
- package/templates/default-app/packages/backend/src/plugins/scaffolder.ts +0 -22
- package/templates/default-app/packages/backend/src/plugins/search.ts.hbs +0 -66
- package/templates/default-app/packages/backend/src/plugins/techdocs.ts +0 -51
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @backstage/create-app
|
|
2
2
|
|
|
3
|
+
## 0.5.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Bumped create-app version.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/cli-common@0.1.13
|
|
10
|
+
|
|
11
|
+
## 0.5.12
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 4cca80f: Bumped create-app version.
|
|
16
|
+
- 8db51ca: Bumped create-app version.
|
|
17
|
+
- 778bc48: Bumped create-app version.
|
|
18
|
+
- 1bd4596: Removed the `ts-node` dev dependency.
|
|
19
|
+
- 829a249: Migrated the backend of the create app template to use the new backend system. For information on how to migrate your existing backend, see the [migration guide](https://backstage.io/docs/backend-system/building-backends/migrating).
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @backstage/cli-common@0.1.13
|
|
22
|
+
|
|
3
23
|
## 0.5.12-next.2
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/bin/backstage-create-app
CHANGED
|
@@ -24,15 +24,6 @@ const isLocal = require('fs').existsSync(path.resolve(__dirname, '../src'));
|
|
|
24
24
|
if (!isLocal || process.env.BACKSTAGE_E2E_CLI_TEST) {
|
|
25
25
|
require('..');
|
|
26
26
|
} else {
|
|
27
|
-
|
|
28
|
-
// eslint-disable-next-line @backstage/no-undeclared-imports
|
|
29
|
-
require('ts-node').register({
|
|
30
|
-
transpileOnly: true,
|
|
31
|
-
project: path.resolve(__dirname, '../../../tsconfig.json'),
|
|
32
|
-
compilerOptions: {
|
|
33
|
-
module: 'CommonJS',
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
|
|
27
|
+
require('@backstage/cli/config/nodeTransform.cjs');
|
|
37
28
|
require('../src');
|
|
38
29
|
}
|
package/dist/index.cjs.js
CHANGED
|
@@ -14,16 +14,16 @@ var fetch = require('node-fetch');
|
|
|
14
14
|
var child_process = require('child_process');
|
|
15
15
|
var util = require('util');
|
|
16
16
|
|
|
17
|
-
function
|
|
17
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
18
18
|
|
|
19
|
-
var chalk__default = /*#__PURE__*/
|
|
20
|
-
var inquirer__default = /*#__PURE__*/
|
|
21
|
-
var os__default = /*#__PURE__*/
|
|
22
|
-
var fs__default = /*#__PURE__*/
|
|
23
|
-
var handlebars__default = /*#__PURE__*/
|
|
24
|
-
var ora__default = /*#__PURE__*/
|
|
25
|
-
var recursive__default = /*#__PURE__*/
|
|
26
|
-
var fetch__default = /*#__PURE__*/
|
|
19
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
20
|
+
var inquirer__default = /*#__PURE__*/_interopDefaultCompat(inquirer);
|
|
21
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
22
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
23
|
+
var handlebars__default = /*#__PURE__*/_interopDefaultCompat(handlebars);
|
|
24
|
+
var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
|
|
25
|
+
var recursive__default = /*#__PURE__*/_interopDefaultCompat(recursive);
|
|
26
|
+
var fetch__default = /*#__PURE__*/_interopDefaultCompat(fetch);
|
|
27
27
|
|
|
28
28
|
var __defProp = Object.defineProperty;
|
|
29
29
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -54,151 +54,166 @@ class ExitCodeError extends CustomError {
|
|
|
54
54
|
function exitWithError(error) {
|
|
55
55
|
if (error instanceof ExitCodeError) {
|
|
56
56
|
process.stderr.write(`
|
|
57
|
-
${chalk__default
|
|
57
|
+
${chalk__default.default.red(error.message)}
|
|
58
58
|
|
|
59
59
|
`);
|
|
60
60
|
process.exit(error.code);
|
|
61
61
|
} else {
|
|
62
62
|
process.stderr.write(`
|
|
63
|
-
${chalk__default
|
|
63
|
+
${chalk__default.default.red(`${error}`)}
|
|
64
64
|
|
|
65
65
|
`);
|
|
66
66
|
process.exit(1);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
var version$
|
|
70
|
+
var version$T = "1.25.0";
|
|
71
71
|
|
|
72
|
-
var version$
|
|
72
|
+
var version$S = "1.5.3";
|
|
73
73
|
|
|
74
|
-
var version$
|
|
74
|
+
var version$R = "0.21.6";
|
|
75
75
|
|
|
76
|
-
var version$
|
|
76
|
+
var version$Q = "0.2.16";
|
|
77
77
|
|
|
78
|
-
var version$
|
|
78
|
+
var version$P = "0.5.21";
|
|
79
79
|
|
|
80
|
-
var version$
|
|
80
|
+
var version$O = "1.6.3";
|
|
81
81
|
|
|
82
|
-
var version$
|
|
82
|
+
var version$N = "1.4.5";
|
|
83
83
|
|
|
84
|
-
var version$
|
|
84
|
+
var version$M = "0.26.2";
|
|
85
85
|
|
|
86
|
-
var version$
|
|
86
|
+
var version$L = "1.2.0";
|
|
87
87
|
|
|
88
|
-
var version$
|
|
88
|
+
var version$K = "1.12.3";
|
|
89
89
|
|
|
90
|
-
var version$
|
|
90
|
+
var version$J = "0.14.3";
|
|
91
91
|
|
|
92
|
-
var version$
|
|
92
|
+
var version$I = "1.9.1";
|
|
93
93
|
|
|
94
|
-
var version$
|
|
94
|
+
var version$H = "0.1.1";
|
|
95
95
|
|
|
96
|
-
var version$
|
|
96
|
+
var version$G = "1.2.4";
|
|
97
97
|
|
|
98
|
-
var version$
|
|
98
|
+
var version$F = "1.1.25";
|
|
99
99
|
|
|
100
|
-
var version$
|
|
100
|
+
var version$E = "1.5.3";
|
|
101
101
|
|
|
102
|
-
var version$
|
|
102
|
+
var version$D = "0.5.2";
|
|
103
103
|
|
|
104
|
-
var version$
|
|
104
|
+
var version$C = "0.11.3";
|
|
105
105
|
|
|
106
|
-
var version$
|
|
106
|
+
var version$B = "0.3.64";
|
|
107
107
|
|
|
108
|
-
var version$
|
|
108
|
+
var version$A = "0.22.3";
|
|
109
109
|
|
|
110
|
-
var version$
|
|
110
|
+
var version$z = "0.1.13";
|
|
111
111
|
|
|
112
|
-
var version$
|
|
112
|
+
var version$y = "0.1.2";
|
|
113
113
|
|
|
114
|
-
var version$
|
|
114
|
+
var version$x = "0.4.11";
|
|
115
115
|
|
|
116
|
-
var version$
|
|
116
|
+
var version$w = "1.18.2";
|
|
117
117
|
|
|
118
|
-
var version$
|
|
118
|
+
var version$v = "1.0.22";
|
|
119
119
|
|
|
120
|
-
var version$
|
|
120
|
+
var version$u = "1.11.2";
|
|
121
121
|
|
|
122
|
-
var version$
|
|
122
|
+
var version$t = "1.21.0";
|
|
123
123
|
|
|
124
|
-
var version$
|
|
124
|
+
var version$s = "0.1.14";
|
|
125
125
|
|
|
126
|
-
var version$
|
|
126
|
+
var version$r = "0.4.3";
|
|
127
127
|
|
|
128
|
-
var version$
|
|
128
|
+
var version$q = "0.10.9";
|
|
129
129
|
|
|
130
|
-
var version$
|
|
130
|
+
var version$p = "0.4.19";
|
|
131
131
|
|
|
132
|
-
var version$
|
|
132
|
+
var version$o = "0.6.14";
|
|
133
133
|
|
|
134
|
-
var version$
|
|
134
|
+
var version$n = "0.4.18";
|
|
135
135
|
|
|
136
|
-
var version$
|
|
136
|
+
var version$m = "0.6.23";
|
|
137
137
|
|
|
138
|
-
var version$
|
|
138
|
+
var version$l = "0.5.40";
|
|
139
139
|
|
|
140
|
-
var version$
|
|
140
|
+
var version$k = "0.1.13";
|
|
141
141
|
|
|
142
|
-
var version$
|
|
142
|
+
var version$j = "0.7.13";
|
|
143
143
|
|
|
144
|
-
var version$
|
|
144
|
+
var version$i = "0.4.21";
|
|
145
145
|
|
|
146
|
-
var version$
|
|
146
|
+
var version$h = "0.7.27";
|
|
147
147
|
|
|
148
|
-
var version$
|
|
148
|
+
var version$g = "0.4.14";
|
|
149
149
|
|
|
150
|
-
var version$
|
|
150
|
+
var version$f = "0.1.61";
|
|
151
151
|
|
|
152
|
-
var version$
|
|
152
|
+
var version$e = "1.19.2";
|
|
153
153
|
|
|
154
|
-
var version$
|
|
154
|
+
var version$d = "1.22.3";
|
|
155
155
|
|
|
156
|
-
var version$
|
|
156
|
+
var version$c = "1.4.9";
|
|
157
157
|
|
|
158
|
-
var version$
|
|
158
|
+
var version$b = "1.7.9";
|
|
159
159
|
|
|
160
|
-
var version$
|
|
160
|
+
var version$a = "1.5.6";
|
|
161
161
|
|
|
162
|
-
var version$
|
|
162
|
+
var version$9 = "0.1.21";
|
|
163
163
|
|
|
164
|
-
var version$
|
|
164
|
+
var version$8 = "0.5.25";
|
|
165
165
|
|
|
166
|
-
var version$
|
|
166
|
+
var version$7 = "0.1.21";
|
|
167
167
|
|
|
168
|
-
var version$
|
|
168
|
+
var version$6 = "1.2.20";
|
|
169
169
|
|
|
170
|
-
var version = "0.
|
|
170
|
+
var version$5 = "0.7.2";
|
|
171
|
+
|
|
172
|
+
var version$4 = "1.10.3";
|
|
173
|
+
|
|
174
|
+
var version$3 = "1.2.2";
|
|
175
|
+
|
|
176
|
+
var version$2 = "1.1.8";
|
|
177
|
+
|
|
178
|
+
var version$1 = "1.10.3";
|
|
179
|
+
|
|
180
|
+
var version = "0.8.4";
|
|
171
181
|
|
|
172
182
|
const packageVersions = {
|
|
173
|
-
root: version$
|
|
174
|
-
"@backstage/app-defaults": version$
|
|
175
|
-
"@backstage/backend-common": version$
|
|
176
|
-
"@backstage/backend-
|
|
177
|
-
"@backstage/
|
|
178
|
-
"@backstage/catalog-
|
|
179
|
-
"@backstage/
|
|
180
|
-
"@backstage/
|
|
181
|
-
"@backstage/
|
|
182
|
-
"@backstage/core-
|
|
183
|
-
"@backstage/core-
|
|
184
|
-
"@backstage/
|
|
185
|
-
"@backstage/
|
|
186
|
-
"@backstage/
|
|
187
|
-
"@backstage/
|
|
188
|
-
"@backstage/plugin-
|
|
189
|
-
"@backstage/plugin-
|
|
190
|
-
"@backstage/plugin-auth-
|
|
191
|
-
"@backstage/plugin-
|
|
192
|
-
"@backstage/plugin-
|
|
193
|
-
"@backstage/plugin-
|
|
194
|
-
"@backstage/plugin-catalog
|
|
195
|
-
"@backstage/plugin-catalog-
|
|
196
|
-
"@backstage/plugin-catalog-
|
|
197
|
-
"@backstage/plugin-catalog-
|
|
198
|
-
"@backstage/plugin-
|
|
199
|
-
"@backstage/plugin-
|
|
200
|
-
"@backstage/plugin-
|
|
201
|
-
"@backstage/plugin-
|
|
183
|
+
root: version$T,
|
|
184
|
+
"@backstage/app-defaults": version$S,
|
|
185
|
+
"@backstage/backend-common": version$R,
|
|
186
|
+
"@backstage/backend-defaults": version$Q,
|
|
187
|
+
"@backstage/backend-tasks": version$P,
|
|
188
|
+
"@backstage/catalog-client": version$O,
|
|
189
|
+
"@backstage/catalog-model": version$N,
|
|
190
|
+
"@backstage/cli": version$M,
|
|
191
|
+
"@backstage/config": version$L,
|
|
192
|
+
"@backstage/core-app-api": version$K,
|
|
193
|
+
"@backstage/core-components": version$J,
|
|
194
|
+
"@backstage/core-plugin-api": version$I,
|
|
195
|
+
"@backstage/e2e-test-utils": version$H,
|
|
196
|
+
"@backstage/errors": version$G,
|
|
197
|
+
"@backstage/integration-react": version$F,
|
|
198
|
+
"@backstage/plugin-api-docs": version$C,
|
|
199
|
+
"@backstage/plugin-app-backend": version$B,
|
|
200
|
+
"@backstage/plugin-auth-backend": version$A,
|
|
201
|
+
"@backstage/plugin-auth-backend-module-github-provider": version$z,
|
|
202
|
+
"@backstage/plugin-auth-backend-module-guest-provider": version$y,
|
|
203
|
+
"@backstage/plugin-auth-node": version$x,
|
|
204
|
+
"@backstage/plugin-catalog": version$w,
|
|
205
|
+
"@backstage/plugin-catalog-common": version$v,
|
|
206
|
+
"@backstage/plugin-catalog-react": version$u,
|
|
207
|
+
"@backstage/plugin-catalog-backend": version$t,
|
|
208
|
+
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": version$s,
|
|
209
|
+
"@backstage/plugin-catalog-graph": version$r,
|
|
210
|
+
"@backstage/plugin-catalog-import": version$q,
|
|
211
|
+
"@backstage/plugin-explore": version$p,
|
|
212
|
+
"@backstage/plugin-github-actions": version$o,
|
|
213
|
+
"@backstage/plugin-lighthouse": version$n,
|
|
214
|
+
"@backstage/plugin-org": version$m,
|
|
215
|
+
"@backstage/plugin-permission-backend": version$l,
|
|
216
|
+
"@backstage/plugin-permission-backend-module-allow-all-policy": version$k,
|
|
202
217
|
"@backstage/plugin-permission-common": version$j,
|
|
203
218
|
"@backstage/plugin-permission-node": version$h,
|
|
204
219
|
"@backstage/plugin-permission-react": version$i,
|
|
@@ -219,8 +234,8 @@ const packageVersions = {
|
|
|
219
234
|
"@backstage/plugin-techdocs-module-addons-contrib": version$2,
|
|
220
235
|
"@backstage/plugin-techdocs-backend": version$1,
|
|
221
236
|
"@backstage/plugin-user-settings": version,
|
|
222
|
-
"@backstage/test-utils": version$
|
|
223
|
-
"@backstage/theme": version$
|
|
237
|
+
"@backstage/test-utils": version$E,
|
|
238
|
+
"@backstage/theme": version$D
|
|
224
239
|
};
|
|
225
240
|
|
|
226
241
|
const TASK_NAME_MAX_LENGTH = 14;
|
|
@@ -228,17 +243,17 @@ const TEN_MINUTES_MS = 1e3 * 60 * 10;
|
|
|
228
243
|
const exec = util.promisify(child_process.exec);
|
|
229
244
|
class Task {
|
|
230
245
|
static log(name = "") {
|
|
231
|
-
process.stdout.write(`${chalk__default
|
|
246
|
+
process.stdout.write(`${chalk__default.default.green(name)}
|
|
232
247
|
`);
|
|
233
248
|
}
|
|
234
249
|
static error(message = "") {
|
|
235
250
|
process.stdout.write(`
|
|
236
|
-
${chalk__default
|
|
251
|
+
${chalk__default.default.red(message)}
|
|
237
252
|
|
|
238
253
|
`);
|
|
239
254
|
}
|
|
240
255
|
static section(name) {
|
|
241
|
-
const title = chalk__default
|
|
256
|
+
const title = chalk__default.default.green(`${name}:`);
|
|
242
257
|
process.stdout.write(`
|
|
243
258
|
${title}
|
|
244
259
|
`);
|
|
@@ -247,9 +262,9 @@ ${chalk__default["default"].red(message)}
|
|
|
247
262
|
process.exit(code);
|
|
248
263
|
}
|
|
249
264
|
static async forItem(task, item, taskFunc) {
|
|
250
|
-
const paddedTask = chalk__default
|
|
251
|
-
const spinner = ora__default
|
|
252
|
-
prefixText: chalk__default
|
|
265
|
+
const paddedTask = chalk__default.default.green(task.padEnd(TASK_NAME_MAX_LENGTH));
|
|
266
|
+
const spinner = ora__default.default({
|
|
267
|
+
prefixText: chalk__default.default.green(` ${paddedTask}${chalk__default.default.cyan(item)}`),
|
|
253
268
|
spinner: "arc",
|
|
254
269
|
color: "green"
|
|
255
270
|
}).start();
|
|
@@ -263,7 +278,7 @@ ${chalk__default["default"].red(message)}
|
|
|
263
278
|
}
|
|
264
279
|
}
|
|
265
280
|
async function templatingTask(templateDir, destinationDir, context) {
|
|
266
|
-
const files = await recursive__default
|
|
281
|
+
const files = await recursive__default.default(templateDir).catch((error) => {
|
|
267
282
|
throw new Error(`Failed to read template directory: ${error.message}`);
|
|
268
283
|
});
|
|
269
284
|
for (const file of files) {
|
|
@@ -271,12 +286,12 @@ async function templatingTask(templateDir, destinationDir, context) {
|
|
|
271
286
|
destinationDir,
|
|
272
287
|
path.relative(templateDir, file)
|
|
273
288
|
);
|
|
274
|
-
await fs__default
|
|
289
|
+
await fs__default.default.ensureDir(path.dirname(destinationFile));
|
|
275
290
|
if (file.endsWith(".hbs")) {
|
|
276
291
|
await Task.forItem("templating", path.basename(file), async () => {
|
|
277
292
|
const destination = destinationFile.replace(/\.hbs$/, "");
|
|
278
|
-
const template = await fs__default
|
|
279
|
-
const compiled = handlebars__default
|
|
293
|
+
const template = await fs__default.default.readFile(file);
|
|
294
|
+
const compiled = handlebars__default.default.compile(template.toString());
|
|
280
295
|
const contents = compiled(
|
|
281
296
|
{ name: path.basename(destination), ...context },
|
|
282
297
|
{
|
|
@@ -290,7 +305,7 @@ async function templatingTask(templateDir, destinationDir, context) {
|
|
|
290
305
|
}
|
|
291
306
|
}
|
|
292
307
|
);
|
|
293
|
-
await fs__default
|
|
308
|
+
await fs__default.default.writeFile(destination, contents).catch((error) => {
|
|
294
309
|
throw new Error(
|
|
295
310
|
`Failed to create file: ${destination}: ${error.message}`
|
|
296
311
|
);
|
|
@@ -298,7 +313,7 @@ async function templatingTask(templateDir, destinationDir, context) {
|
|
|
298
313
|
});
|
|
299
314
|
} else {
|
|
300
315
|
await Task.forItem("copying", path.basename(file), async () => {
|
|
301
|
-
await fs__default
|
|
316
|
+
await fs__default.default.copyFile(file, destinationFile).catch((error) => {
|
|
302
317
|
const destination = destinationFile;
|
|
303
318
|
throw new Error(
|
|
304
319
|
`Failed to copy file to ${destination} : ${error.message}`
|
|
@@ -311,8 +326,8 @@ async function templatingTask(templateDir, destinationDir, context) {
|
|
|
311
326
|
async function checkAppExistsTask(rootDir, name) {
|
|
312
327
|
await Task.forItem("checking", name, async () => {
|
|
313
328
|
const destination = path.resolve(rootDir, name);
|
|
314
|
-
if (await fs__default
|
|
315
|
-
const existing = chalk__default
|
|
329
|
+
if (await fs__default.default.pathExists(destination)) {
|
|
330
|
+
const existing = chalk__default.default.cyan(destination.replace(`${rootDir}/`, ""));
|
|
316
331
|
throw new Error(
|
|
317
332
|
`A directory with the same name already exists: ${existing}
|
|
318
333
|
Please try again with a different app name`
|
|
@@ -323,7 +338,7 @@ Please try again with a different app name`
|
|
|
323
338
|
async function checkPathExistsTask(path) {
|
|
324
339
|
await Task.forItem("checking", path, async () => {
|
|
325
340
|
try {
|
|
326
|
-
await fs__default
|
|
341
|
+
await fs__default.default.mkdirs(path);
|
|
327
342
|
} catch (error) {
|
|
328
343
|
throw new Error(`Failed to create app directory: ${error.message}`);
|
|
329
344
|
}
|
|
@@ -346,7 +361,7 @@ async function buildAppTask(appDir) {
|
|
|
346
361
|
await exec(cmd).catch((error) => {
|
|
347
362
|
process.stdout.write(error.stderr);
|
|
348
363
|
process.stdout.write(error.stdout);
|
|
349
|
-
throw new Error(`Could not execute command ${chalk__default
|
|
364
|
+
throw new Error(`Could not execute command ${chalk__default.default.cyan(cmd)}`);
|
|
350
365
|
});
|
|
351
366
|
});
|
|
352
367
|
};
|
|
@@ -360,18 +375,18 @@ async function buildAppTask(appDir) {
|
|
|
360
375
|
}
|
|
361
376
|
async function moveAppTask(tempDir, destination, id) {
|
|
362
377
|
await Task.forItem("moving", id, async () => {
|
|
363
|
-
await fs__default
|
|
378
|
+
await fs__default.default.move(tempDir, destination).catch((error) => {
|
|
364
379
|
throw new Error(
|
|
365
380
|
`Failed to move app from ${tempDir} to ${destination}: ${error.message}`
|
|
366
381
|
);
|
|
367
382
|
}).finally(() => {
|
|
368
|
-
fs__default
|
|
383
|
+
fs__default.default.removeSync(tempDir);
|
|
369
384
|
});
|
|
370
385
|
});
|
|
371
386
|
}
|
|
372
387
|
async function readGitConfig() {
|
|
373
388
|
var _a;
|
|
374
|
-
const tempDir = await fs__default
|
|
389
|
+
const tempDir = await fs__default.default.mkdtemp(path.resolve(os__default.default.tmpdir(), "git-temp-dir-"));
|
|
375
390
|
try {
|
|
376
391
|
await exec("git init", { cwd: tempDir });
|
|
377
392
|
await exec('git commit --allow-empty -m "Initial commit"', {
|
|
@@ -387,7 +402,7 @@ async function readGitConfig() {
|
|
|
387
402
|
} catch (error) {
|
|
388
403
|
return void 0;
|
|
389
404
|
} finally {
|
|
390
|
-
await fs__default
|
|
405
|
+
await fs__default.default.rm(tempDir, { recursive: true });
|
|
391
406
|
}
|
|
392
407
|
}
|
|
393
408
|
async function tryInitGitRepository(dir) {
|
|
@@ -403,7 +418,7 @@ async function tryInitGitRepository(dir) {
|
|
|
403
418
|
return true;
|
|
404
419
|
} catch (error) {
|
|
405
420
|
try {
|
|
406
|
-
await fs__default
|
|
421
|
+
await fs__default.default.rm(path.resolve(dir, ".git"), { recursive: true, force: true });
|
|
407
422
|
} catch {
|
|
408
423
|
throw new Error("Failed to remove .git folder");
|
|
409
424
|
}
|
|
@@ -415,7 +430,7 @@ async function fetchYarnLockSeedTask(dir) {
|
|
|
415
430
|
await Task.forItem("fetching", "yarn.lock seed", async () => {
|
|
416
431
|
const controller = new AbortController();
|
|
417
432
|
const timeout = setTimeout(() => controller.abort(), 3e3);
|
|
418
|
-
const res = await fetch__default
|
|
433
|
+
const res = await fetch__default.default(
|
|
419
434
|
"https://raw.githubusercontent.com/backstage/backstage/master/packages/create-app/seed-yarn.lock",
|
|
420
435
|
{
|
|
421
436
|
signal: controller.signal
|
|
@@ -428,7 +443,7 @@ async function fetchYarnLockSeedTask(dir) {
|
|
|
428
443
|
);
|
|
429
444
|
}
|
|
430
445
|
const initialYarnLockContent = await res.text();
|
|
431
|
-
await fs__default
|
|
446
|
+
await fs__default.default.writeFile(
|
|
432
447
|
path.resolve(dir, "yarn.lock"),
|
|
433
448
|
initialYarnLockContent.split("\n").filter((l) => !l.startsWith("//")).join("\n"),
|
|
434
449
|
"utf8"
|
|
@@ -444,17 +459,17 @@ const DEFAULT_BRANCH = "master";
|
|
|
444
459
|
var createApp = async (opts) => {
|
|
445
460
|
var _a, _b, _c, _d;
|
|
446
461
|
const paths = cliCommon.findPaths(__dirname);
|
|
447
|
-
const answers = await inquirer__default
|
|
462
|
+
const answers = await inquirer__default.default.prompt([
|
|
448
463
|
{
|
|
449
464
|
type: "input",
|
|
450
465
|
name: "name",
|
|
451
466
|
default: "backstage",
|
|
452
|
-
message: chalk__default
|
|
467
|
+
message: chalk__default.default.blue("Enter a name for the app [required]"),
|
|
453
468
|
validate: (value) => {
|
|
454
469
|
if (!value) {
|
|
455
|
-
return chalk__default
|
|
470
|
+
return chalk__default.default.red("Please enter a name for the app");
|
|
456
471
|
} else if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(value)) {
|
|
457
|
-
return chalk__default
|
|
472
|
+
return chalk__default.default.red(
|
|
458
473
|
"App name must be lowercase and contain only letters, digits, and dashes."
|
|
459
474
|
);
|
|
460
475
|
}
|
|
@@ -488,7 +503,7 @@ var createApp = async (opts) => {
|
|
|
488
503
|
Task.section("Checking if the directory is available");
|
|
489
504
|
await checkAppExistsTask(paths.targetDir, answers.name);
|
|
490
505
|
Task.section("Creating a temporary app directory");
|
|
491
|
-
const tempDir = await fs__default
|
|
506
|
+
const tempDir = await fs__default.default.mkdtemp(path.resolve(os__default.default.tmpdir(), answers.name));
|
|
492
507
|
Task.section("Preparing files");
|
|
493
508
|
await templatingTask(templateDir, tempDir, {
|
|
494
509
|
...answers,
|
|
@@ -510,12 +525,12 @@ var createApp = async (opts) => {
|
|
|
510
525
|
}
|
|
511
526
|
Task.log();
|
|
512
527
|
Task.log(
|
|
513
|
-
chalk__default
|
|
528
|
+
chalk__default.default.green(`\u{1F947} Successfully created ${chalk__default.default.cyan(answers.name)}`)
|
|
514
529
|
);
|
|
515
530
|
Task.log();
|
|
516
531
|
if (!fetchedYarnLockSeed) {
|
|
517
532
|
Task.log(
|
|
518
|
-
chalk__default
|
|
533
|
+
chalk__default.default.yellow(
|
|
519
534
|
[
|
|
520
535
|
"Warning: Failed to fetch the yarn.lock seed file.",
|
|
521
536
|
" You may end up with incompatible dependencies that break the app.",
|
|
@@ -528,13 +543,13 @@ var createApp = async (opts) => {
|
|
|
528
543
|
Task.section("All set! Now you might want to");
|
|
529
544
|
if (opts.skipInstall) {
|
|
530
545
|
Task.log(
|
|
531
|
-
` Install the dependencies: ${chalk__default
|
|
546
|
+
` Install the dependencies: ${chalk__default.default.cyan(
|
|
532
547
|
`cd ${(_c = opts.path) != null ? _c : answers.name} && yarn install`
|
|
533
548
|
)}`
|
|
534
549
|
);
|
|
535
550
|
}
|
|
536
551
|
Task.log(
|
|
537
|
-
` Run the app: ${chalk__default
|
|
552
|
+
` Run the app: ${chalk__default.default.cyan(
|
|
538
553
|
`cd ${(_d = opts.path) != null ? _d : answers.name} && yarn dev`
|
|
539
554
|
)}`
|
|
540
555
|
);
|
|
@@ -553,7 +568,7 @@ var createApp = async (opts) => {
|
|
|
553
568
|
};
|
|
554
569
|
|
|
555
570
|
const main = (argv) => {
|
|
556
|
-
commander.program.name("backstage-create-app").version(version$
|
|
571
|
+
commander.program.name("backstage-create-app").version(version$T).description("Creates a new app in a new directory or specified path").option(
|
|
557
572
|
"--path [directory]",
|
|
558
573
|
"Location to store the app defaulting to a new folder with the app name"
|
|
559
574
|
).option(
|