generator-easy-ui5 3.5.2 → 3.6.0
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 +4 -3
- package/README.md +14 -5
- package/generators/app/index.js +115 -64
- package/package.json +24 -21
- package/plugins/generator-ui5-project.zip +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
## [3.5.
|
|
1
|
+
## [3.5.2](https://github.com/SAP/generator-easy-ui5/compare/v3.5.1...v3.5.2) (2023-06-09)
|
|
2
2
|
|
|
3
3
|
### Bug Fixes
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- sort subgen list, remove threshold, fix permission issues ([#123](https://github.com/SAP/generator-easy-ui5/issues/123)) ([c5dd321](https://github.com/SAP/generator-easy-ui5/commit/c5dd3218a26870a61722a9675a81831cc8af50e5)), closes [#122](https://github.com/SAP/generator-easy-ui5/issues/122) [#118](https://github.com/SAP/generator-easy-ui5/issues/118) [#117](https://github.com/SAP/generator-easy-ui5/issues/117) [#111](https://github.com/SAP/generator-easy-ui5/issues/111)
|
|
6
6
|
|
|
7
|
-
## [3.5.
|
|
7
|
+
## [3.5.1](https://github.com/SAP/generator-easy-ui5/compare/v3.2.0...v3.5.1) (2022-09-10)
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
|
10
10
|
|
|
11
|
+
- enable for Yeoman UI usage ([03c2e38](https://github.com/SAP/generator-easy-ui5/commit/03c2e38af4eebe108d6076710b74d8aaf7c31d8d))
|
|
11
12
|
- **postinstall:** allow usage of NPM config for ghAuthToken to avoid rate limit ([#104](https://github.com/SAP/generator-easy-ui5/issues/104)) ([371d7fb](https://github.com/SAP/generator-easy-ui5/commit/371d7fbc82b8a59cef896197b99239b505b3cd90)), closes [#100](https://github.com/SAP/generator-easy-ui5/issues/100)
|
|
12
13
|
- **postinstall:** avoid non-existing node_modules ([#98](https://github.com/SAP/generator-easy-ui5/issues/98)) ([f93c7c9](https://github.com/SAP/generator-easy-ui5/commit/f93c7c99b9e5df7af801a085afe72be85e462007))
|
|
13
14
|
- usage of proper gh org for logging and download ([#94](https://github.com/SAP/generator-easy-ui5/issues/94)) ([a88d4db](https://github.com/SAP/generator-easy-ui5/commit/a88d4dbb0a1f5ed3cf60f7ed0297c651222a83fb))
|
package/README.md
CHANGED
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
|
|
9
9
|
## Description
|
|
10
10
|
|
|
11
|
-
Easy-ui5 💙 is a [Yeoman](http://yeoman.io/) generator which enables you to create simple [SAPUI5](https://
|
|
11
|
+
Easy UI5 (`easy-ui5`) 💙 is a [Yeoman](http://yeoman.io/) generator which enables you to create simple [SAPUI5](https://ui5.sap.com)/[OpenUI5](https://sdk.openui5.org)-based web-apps and other UI5-related projects within seconds.
|
|
12
12
|
|
|
13
13
|
This generator has been created to simplify the creation of your UI5 prototypes. Now you can scaffold simple UI5 projects from the shell/terminal of your choice. The current best practices (such as [async](https://blogs.sap.com/2018/12/18/ui5ers-buzz-41-best-practices-for-async-loading-in-ui5/)) are already baked into our templates so you don't have to worry about the definition of the metadata files.
|
|
14
14
|
|
|
15
|
-
The purpose of
|
|
15
|
+
The purpose of the `project` subgenerator is to guide you on your first steps with [SAPUI5](https://sapui5.hana.ondemand.com/) and [SAP BTP](https://www.sap.com/products/business-technology-platform.html) deployments. Once you are familiar with those technologies, you might want to tweak the projects to adapt them for productive use-cases (such as continuous deployment pipelines and full i18n).
|
|
16
16
|
|
|
17
|
-
> :warning: Starting with
|
|
17
|
+
> :warning: Starting with Easy UI5 v3, all templates will be outsource to repositories in the [UI5 Community](https://github.com/ui5-community/). This project is from now on a shell that will offer all generators hosted on that GitHub org. Easy UI5 will download and install these repositories when needed.
|
|
18
18
|
>
|
|
19
|
-
> By default, it will download the repository [generator-ui5-project](https://github.com/ui5-community/generator-ui5-project/) which contains the templates that were previously integrated in
|
|
19
|
+
> By default, it will download the repository [generator-ui5-project](https://github.com/ui5-community/generator-ui5-project/) which contains the templates that were previously integrated in Easy UI5 < 3.
|
|
20
20
|
|
|
21
21
|
## Requirements
|
|
22
22
|
|
|
@@ -63,7 +63,8 @@ During the prompting phase, the generator will ask on which target platform your
|
|
|
63
63
|
## More generators
|
|
64
64
|
|
|
65
65
|
And this is just the start!
|
|
66
|
-
|
|
66
|
+
|
|
67
|
+
We made Easy UI5 extensible, so that the entire [UI5 Community](https://github.com/ui5-community/) can build additional plugins to scaffold any UI5-related development activity.
|
|
67
68
|
|
|
68
69
|
By default, this generator comes with the [project-creation-plugin](https://github.com/ui5-community/generator-ui5-project) but there are many others as well:
|
|
69
70
|
|
|
@@ -98,6 +99,14 @@ Run the following command to see all subgenerators of a given plugin
|
|
|
98
99
|
yo easy-ui5 [project|library] <sub-generator-id>
|
|
99
100
|
```
|
|
100
101
|
|
|
102
|
+
## Proxy settings
|
|
103
|
+
|
|
104
|
+
If you are running Easy UI5 behind a coporate proxy, just use the default proxy environment variables for Node.js to configure your corporate proxy:
|
|
105
|
+
|
|
106
|
+
- `HTTP_PROXY`: Specify the value to use as the HTTP proxy for all connections, e.g., `HTTP_PROXY="http://proxy.mycompany.com:8080/"`.
|
|
107
|
+
- `HTTPS_PROXY`: Specify the value to use as the HTTPS proxy for all connections, e.g., `HTTPS_PROXY="https://proxy.mycompany.com:8080/"`.
|
|
108
|
+
- `NO_PROXY`: Define the hosts that should bypass the proxy, e.g., `NO_PROXY="localhost,.mycompany.com,192.168.6.254:80"`.
|
|
109
|
+
|
|
101
110
|
## How to obtain support
|
|
102
111
|
|
|
103
112
|
Please use the GitHub bug tracking system to post questions, bug reports or to create pull requests.
|
package/generators/app/index.js
CHANGED
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const {
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import Generator from "yeoman-generator";
|
|
2
|
+
|
|
3
|
+
import path from "path";
|
|
4
|
+
import fs from "fs";
|
|
5
|
+
import os from "os";
|
|
6
|
+
import url from "url";
|
|
7
|
+
|
|
8
|
+
import { glob } from "glob";
|
|
9
|
+
import chalk from "chalk";
|
|
10
|
+
import yosay from "yosay";
|
|
11
|
+
import libnpmconfig from "libnpmconfig";
|
|
12
|
+
import yarnOrNpm from "yarn-or-npm";
|
|
13
|
+
const { hasYarn } = yarnOrNpm;
|
|
14
|
+
import AdmZip from "adm-zip";
|
|
15
|
+
import { request } from "@octokit/request";
|
|
16
|
+
import { Octokit } from "@octokit/rest";
|
|
17
|
+
import { throttling } from "@octokit/plugin-throttling";
|
|
16
18
|
const MyOctokit = Octokit.plugin(throttling);
|
|
17
|
-
|
|
19
|
+
import spawn from "cross-spawn";
|
|
20
|
+
|
|
21
|
+
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
|
|
22
|
+
|
|
23
|
+
// apply proxy settings to GLOBAL_AGENT to support the proxy configuration
|
|
24
|
+
// provided via the standard Node.js environment varibales (used for fetch API)
|
|
25
|
+
let HTTP_PROXY, HTTPS_PROXY, NO_PROXY;
|
|
26
|
+
if (global?.GLOBAL_AGENT) {
|
|
27
|
+
HTTP_PROXY = global.GLOBAL_AGENT.HTTP_PROXY = process.env.HTTP_PROXY || process.env.http_proxy;
|
|
28
|
+
HTTPS_PROXY = global.GLOBAL_AGENT.HTTPS_PROXY = process.env.HTTPS_PROXY || process.env.https_proxy;
|
|
29
|
+
NO_PROXY = global.GLOBAL_AGENT.NO_PROXY = process.env.NO_PROXY || process.env.no_proxy;
|
|
30
|
+
}
|
|
18
31
|
|
|
19
32
|
// helper to retrieve config entries from npm
|
|
20
33
|
// --> npm config set easy-ui5_addGhOrg XYZ
|
|
@@ -22,13 +35,31 @@ const NPM_CONFIG_PREFIX = "easy-ui5_";
|
|
|
22
35
|
let npmConfig;
|
|
23
36
|
const getNPMConfig = (configName) => {
|
|
24
37
|
if (!npmConfig) {
|
|
25
|
-
npmConfig =
|
|
38
|
+
npmConfig = libnpmconfig.read();
|
|
26
39
|
}
|
|
27
40
|
return npmConfig && npmConfig[`${NPM_CONFIG_PREFIX}${configName}`];
|
|
28
41
|
};
|
|
29
42
|
|
|
30
43
|
// the command line options of the generator
|
|
31
44
|
const generatorOptions = {
|
|
45
|
+
pluginsHome: {
|
|
46
|
+
type: String,
|
|
47
|
+
description: "Home directory of the plugin generators",
|
|
48
|
+
default: path.join(os.homedir(), ".npm", "_generator-easy-ui5", "plugin-generators"),
|
|
49
|
+
hide: true, // shouldn't be needed
|
|
50
|
+
npmConfig: true,
|
|
51
|
+
},
|
|
52
|
+
plugins: {
|
|
53
|
+
type: Boolean,
|
|
54
|
+
alias: "p",
|
|
55
|
+
description: "List detailed information about installed plugin generators",
|
|
56
|
+
},
|
|
57
|
+
ghBaseUrl: {
|
|
58
|
+
type: String,
|
|
59
|
+
description: "Base URL for the Octokit API (defaults to https://api.github.com if undefined)",
|
|
60
|
+
hide: true, // shouldn't be needed
|
|
61
|
+
npmConfig: true,
|
|
62
|
+
},
|
|
32
63
|
ghAuthToken: {
|
|
33
64
|
type: String,
|
|
34
65
|
description: "GitHub authToken to optionally access private generator repositories",
|
|
@@ -51,6 +82,12 @@ const generatorOptions = {
|
|
|
51
82
|
default: "generator-ui5-",
|
|
52
83
|
hide: true, // we don't want to recommend to use this option
|
|
53
84
|
},
|
|
85
|
+
addGhBaseUrl: {
|
|
86
|
+
type: String,
|
|
87
|
+
description: "Base URL for the Octokit API for the additional generators (defaults to https://api.github.com if undefined)",
|
|
88
|
+
hide: true, // shouldn't be needed
|
|
89
|
+
npmConfig: true,
|
|
90
|
+
},
|
|
54
91
|
addGhOrg: {
|
|
55
92
|
type: String,
|
|
56
93
|
description: "GitHub organization to lookup for additional available generators",
|
|
@@ -64,13 +101,6 @@ const generatorOptions = {
|
|
|
64
101
|
hide: true, // we don't want to recommend to use this option
|
|
65
102
|
npmConfig: true,
|
|
66
103
|
},
|
|
67
|
-
pluginsHome: {
|
|
68
|
-
type: String,
|
|
69
|
-
description: "Home directory of the plugin generators",
|
|
70
|
-
default: path.join(require("os").homedir(), ".npm", "_generator-easy-ui5", "plugin-generators"),
|
|
71
|
-
hide: true, // shouldn't be needed
|
|
72
|
-
npmConfig: true,
|
|
73
|
-
},
|
|
74
104
|
embed: {
|
|
75
105
|
type: Boolean,
|
|
76
106
|
description: "Embeds the selected plugin generator",
|
|
@@ -97,14 +127,9 @@ const generatorOptions = {
|
|
|
97
127
|
type: Boolean,
|
|
98
128
|
description: "Enable detailed logging",
|
|
99
129
|
},
|
|
100
|
-
plugins: {
|
|
101
|
-
type: Boolean,
|
|
102
|
-
alias: "p",
|
|
103
|
-
description: "Get detailed version information",
|
|
104
|
-
},
|
|
105
130
|
next: {
|
|
106
131
|
type: Boolean,
|
|
107
|
-
description: "Preview the next mode to consume
|
|
132
|
+
description: "Preview the next mode to consume subgenerators from bestofui5.org",
|
|
108
133
|
},
|
|
109
134
|
};
|
|
110
135
|
|
|
@@ -112,16 +137,16 @@ const generatorArgs = {
|
|
|
112
137
|
generator: {
|
|
113
138
|
type: String,
|
|
114
139
|
required: false,
|
|
115
|
-
description:
|
|
140
|
+
description: `Name of the generator to invoke (without the ${chalk.yellow("generator-ui5-")} prefix)`,
|
|
116
141
|
},
|
|
117
142
|
subcommand: {
|
|
118
143
|
type: String,
|
|
119
144
|
required: false,
|
|
120
|
-
description:
|
|
145
|
+
description: `Name of the subcommand to invoke (without the ${chalk.yellow("generator:")} prefix)`,
|
|
121
146
|
},
|
|
122
147
|
};
|
|
123
148
|
|
|
124
|
-
|
|
149
|
+
export default class extends Generator {
|
|
125
150
|
constructor(args, opts) {
|
|
126
151
|
super(args, opts, {
|
|
127
152
|
// disable the Yeoman 5 package-manager logic (auto install)!
|
|
@@ -189,7 +214,8 @@ module.exports = class extends Generator {
|
|
|
189
214
|
);
|
|
190
215
|
}
|
|
191
216
|
|
|
192
|
-
_unzip(
|
|
217
|
+
_unzip(pathOrBuffer, targetPath, zipInternalPath /* used for plugin generators from GitHub (e.g. TS tutorial) */) {
|
|
218
|
+
const zip = new AdmZip(pathOrBuffer);
|
|
193
219
|
const zipEntries = zip.getEntries();
|
|
194
220
|
zipEntries.forEach((entry) => {
|
|
195
221
|
const match = !entry.isDirectory && entry.entryName.match(/[^\/]+(\/.+)/);
|
|
@@ -205,9 +231,13 @@ module.exports = class extends Generator {
|
|
|
205
231
|
});
|
|
206
232
|
}
|
|
207
233
|
|
|
234
|
+
determineAppname() {
|
|
235
|
+
return "Easy UI5";
|
|
236
|
+
}
|
|
237
|
+
|
|
208
238
|
async prompting() {
|
|
209
239
|
const home = path.join(__dirname, "..", "..");
|
|
210
|
-
const pkgJson =
|
|
240
|
+
const pkgJson = JSON.parse(fs.readFileSync(path.join(home, "package.json"), "utf8"));
|
|
211
241
|
|
|
212
242
|
// Have Yeoman greet the user.
|
|
213
243
|
if (!this.options.embedded) {
|
|
@@ -218,13 +248,25 @@ module.exports = class extends Generator {
|
|
|
218
248
|
// %user_dir%/.npm/_generator-easy-ui5/plugin-generators
|
|
219
249
|
let pluginsHome = this.options.pluginsHome;
|
|
220
250
|
if (this.options.verbose) {
|
|
221
|
-
console.
|
|
222
|
-
console.
|
|
251
|
+
console.info(" Context:");
|
|
252
|
+
console.info(` - sourceRoot = ${chalk.green(this.sourceRoot())}`);
|
|
253
|
+
console.info(` - destinationRoot = ${chalk.green(this.destinationRoot())}`);
|
|
254
|
+
console.info(" Options:");
|
|
255
|
+
Object.keys(generatorOptions).forEach((option) => {
|
|
256
|
+
console.info(` - ${option} = ${chalk.green(this.options[option])}`);
|
|
257
|
+
});
|
|
258
|
+
console.info(" Proxy:");
|
|
259
|
+
console.info(` - HTTP_PROXY = ${chalk.green(HTTP_PROXY)}`);
|
|
260
|
+
console.info(` - HTTPS_PROXY = ${chalk.green(HTTPS_PROXY)}`);
|
|
261
|
+
console.info(` - NO_PROXY = ${chalk.green(NO_PROXY)}`);
|
|
223
262
|
}
|
|
224
263
|
fs.mkdirSync(pluginsHome, { recursive: true });
|
|
225
264
|
|
|
226
265
|
// log the plugins and configuration
|
|
227
266
|
if (this.options.plugins) {
|
|
267
|
+
const { createRequire } = await import("node:module");
|
|
268
|
+
const require = createRequire(import.meta.url);
|
|
269
|
+
|
|
228
270
|
const yeoman = require("yeoman-environment/package.json");
|
|
229
271
|
|
|
230
272
|
const components = {
|
|
@@ -255,9 +297,11 @@ module.exports = class extends Generator {
|
|
|
255
297
|
if (this.options.offline) {
|
|
256
298
|
this.log(`Running in ${chalk.yellow("offline")} mode!`);
|
|
257
299
|
} else {
|
|
258
|
-
|
|
300
|
+
// define the options for the Octokit API
|
|
301
|
+
const octokitOptions = {
|
|
259
302
|
userAgent: `${this.rootGeneratorName()}:${this.rootGeneratorVersion()}`,
|
|
260
303
|
auth: this.options.ghAuthToken,
|
|
304
|
+
baseUrl: this.options.ghBaseUrl,
|
|
261
305
|
throttle: {
|
|
262
306
|
onRateLimit: (retryAfter, options) => {
|
|
263
307
|
this.log(`${chalk.yellow("Hit the GitHub API limit!")} Request quota exhausted for this request.`);
|
|
@@ -269,12 +313,14 @@ module.exports = class extends Generator {
|
|
|
269
313
|
return true;
|
|
270
314
|
}
|
|
271
315
|
},
|
|
272
|
-
|
|
316
|
+
onSecondaryRateLimit: () => {
|
|
273
317
|
// does not retry, only logs a warning
|
|
274
318
|
this.log(`${chalk.red("Hit the GitHub API limit again!")} Please supply an auth token with the \`--ghAuthToken\` option. For more details, run \`yo easy-ui5 --help\` `);
|
|
275
319
|
},
|
|
276
320
|
},
|
|
277
|
-
}
|
|
321
|
+
};
|
|
322
|
+
// create the octokit instance
|
|
323
|
+
octokit = new MyOctokit(octokitOptions);
|
|
278
324
|
}
|
|
279
325
|
|
|
280
326
|
// helper for filtering repos with corresponding subGenerator prefix
|
|
@@ -299,6 +345,7 @@ module.exports = class extends Generator {
|
|
|
299
345
|
const response = await octokit.repos.listForOrg({
|
|
300
346
|
org: ghOrg,
|
|
301
347
|
sort: "name",
|
|
348
|
+
// eslint-disable-next-line camelcase
|
|
302
349
|
per_page: threshold,
|
|
303
350
|
});
|
|
304
351
|
return filterReposWithSubGeneratorPrefix(response?.data, subGeneratorPrefix);
|
|
@@ -309,6 +356,7 @@ module.exports = class extends Generator {
|
|
|
309
356
|
const response = await octokit.repos.listForUser({
|
|
310
357
|
username: ghUser,
|
|
311
358
|
sort: "name",
|
|
359
|
+
// eslint-disable-next-line camelcase
|
|
312
360
|
per_page: threshold,
|
|
313
361
|
});
|
|
314
362
|
return filterReposWithSubGeneratorPrefix(response?.data, subGeneratorPrefix);
|
|
@@ -356,19 +404,18 @@ module.exports = class extends Generator {
|
|
|
356
404
|
const generatorPath = path.join(pluginsHome, generatorName);
|
|
357
405
|
return {
|
|
358
406
|
file,
|
|
407
|
+
generatorName,
|
|
359
408
|
generatorPath,
|
|
360
409
|
};
|
|
361
410
|
})
|
|
362
411
|
.filter(({ generatorPath }) => !fs.existsSync(generatorPath));
|
|
363
|
-
// install the missing embedded generator(s)
|
|
412
|
+
// install (unzip) the missing embedded generator(s)
|
|
364
413
|
if (generatorsToBeInstalled.length > 0) {
|
|
365
|
-
this._showBusy(
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
})
|
|
371
|
-
);
|
|
414
|
+
this._showBusy(" Installing embedded subgenerators...");
|
|
415
|
+
generatorsToBeInstalled.map(({ file, generatorName, generatorPath }) => {
|
|
416
|
+
this._showBusy(` Installing embedded subgenerator ${chalk.yellow(generatorName)}...`);
|
|
417
|
+
this._unzip(file, generatorPath);
|
|
418
|
+
});
|
|
372
419
|
this._clearBusy(true);
|
|
373
420
|
}
|
|
374
421
|
// offline mode means local generators only versus only mode
|
|
@@ -504,10 +551,10 @@ module.exports = class extends Generator {
|
|
|
504
551
|
branch: generator.branch,
|
|
505
552
|
});
|
|
506
553
|
commitSHA = reqBranch.data.commit.sha;
|
|
507
|
-
} catch (
|
|
554
|
+
} catch (ex) {
|
|
508
555
|
console.error(chalk.red(`Failed to retrieve the branch "${generator.branch}" for repository "${generator.name}" for "${generator.org}" organization! Run with --verbose for details!`));
|
|
509
556
|
if (this.options.verbose) {
|
|
510
|
-
console.error(chalk.red(
|
|
557
|
+
console.error(chalk.red(ex.message));
|
|
511
558
|
}
|
|
512
559
|
return;
|
|
513
560
|
}
|
|
@@ -524,7 +571,7 @@ module.exports = class extends Generator {
|
|
|
524
571
|
this.log(`Generator ${chalk.yellow(generator.name)} in "${generatorPath}" is outdated!`);
|
|
525
572
|
}
|
|
526
573
|
// remove if the SHA marker doesn't exist => outdated!
|
|
527
|
-
this._showBusy(`
|
|
574
|
+
this._showBusy(` Deleting subgenerator ${chalk.yellow(generator.name)}...`);
|
|
528
575
|
await rm(generatorPath, { recursive: true });
|
|
529
576
|
}
|
|
530
577
|
}
|
|
@@ -535,30 +582,26 @@ module.exports = class extends Generator {
|
|
|
535
582
|
if (this.options.verbose) {
|
|
536
583
|
this.log(`Extracting ZIP to "${generatorPath}"...`);
|
|
537
584
|
}
|
|
538
|
-
this._showBusy(` Downloading ${chalk.yellow(generator.name)}
|
|
585
|
+
this._showBusy(` Downloading subgenerator ${chalk.yellow(generator.name)}...`);
|
|
539
586
|
const reqZIPArchive = await octokit.repos.downloadZipballArchive({
|
|
540
587
|
owner: generator.org,
|
|
541
588
|
repo: generator.name,
|
|
542
589
|
ref: commitSHA,
|
|
543
590
|
});
|
|
544
591
|
|
|
545
|
-
this._showBusy(` Extracting ${chalk.yellow(generator.name)}
|
|
592
|
+
this._showBusy(` Extracting subgenerator ${chalk.yellow(generator.name)}...`);
|
|
546
593
|
const buffer = Buffer.from(new Uint8Array(reqZIPArchive.data));
|
|
547
|
-
|
|
548
|
-
this._unzip(zip, generatorPath, generator.dir);
|
|
594
|
+
this._unzip(buffer, generatorPath, generator.dir);
|
|
549
595
|
|
|
550
596
|
// write the sha marker
|
|
551
597
|
fs.writeFileSync(shaMarker, commitSHA);
|
|
552
|
-
|
|
553
|
-
// run yarn/npm install
|
|
554
|
-
if (this.options.verbose) {
|
|
555
|
-
this.log("Installing the plugin dependencies...");
|
|
556
|
-
}
|
|
557
|
-
this._showBusy(` Preparing ${chalk.yellow(generator.name)}...`);
|
|
558
|
-
await this._npmInstall(generatorPath);
|
|
559
598
|
}
|
|
560
599
|
|
|
561
|
-
|
|
600
|
+
// only when embedding we clear the busy state as otherwise
|
|
601
|
+
// the npm install will immediately again show the busy state
|
|
602
|
+
if (this.options.embed) {
|
|
603
|
+
this._clearBusy(true);
|
|
604
|
+
}
|
|
562
605
|
}
|
|
563
606
|
|
|
564
607
|
// do not execute the plugin generator during the setup/embed mode
|
|
@@ -566,6 +609,14 @@ module.exports = class extends Generator {
|
|
|
566
609
|
// filter the local options and the help command
|
|
567
610
|
const opts = Object.keys(this._options).filter((optionName) => !(generatorOptions.hasOwnProperty(optionName) || optionName === "help"));
|
|
568
611
|
|
|
612
|
+
// run yarn/npm install (always for self-healing!)
|
|
613
|
+
if (this.options.verbose) {
|
|
614
|
+
this.log("Installing the subgenerator dependencies...");
|
|
615
|
+
}
|
|
616
|
+
this._showBusy(` Preparing ${chalk.yellow(generator.name)}...`);
|
|
617
|
+
await this._npmInstall(generatorPath);
|
|
618
|
+
this._clearBusy(true);
|
|
619
|
+
|
|
569
620
|
// create the env for the plugin generator
|
|
570
621
|
let env = this.env; // in case of Yeoman UI the env is injected!
|
|
571
622
|
if (!env) {
|
|
@@ -706,4 +757,4 @@ module.exports = class extends Generator {
|
|
|
706
757
|
}
|
|
707
758
|
}
|
|
708
759
|
}
|
|
709
|
-
}
|
|
760
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generator-easy-ui5",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Generator for UI5-based project",
|
|
5
5
|
"main": "generators/app/index.js",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"files": [
|
|
7
|
-
"generators"
|
|
8
|
+
"generators",
|
|
9
|
+
"plugins"
|
|
8
10
|
],
|
|
9
11
|
"engines": {
|
|
10
12
|
"node": ">=14.0.0"
|
|
@@ -46,33 +48,33 @@
|
|
|
46
48
|
},
|
|
47
49
|
"homepage": "https://github.com/SAP/generator-easy-ui5#readme",
|
|
48
50
|
"dependencies": {
|
|
49
|
-
"@octokit/plugin-throttling": "^
|
|
50
|
-
"@octokit/rest": "^19.0.
|
|
51
|
-
"adm-zip": "^0.5.
|
|
52
|
-
"chalk": "^
|
|
53
|
-
"colors": "1.4.0",
|
|
54
|
-
"glob": "^
|
|
51
|
+
"@octokit/plugin-throttling": "^5.2.3",
|
|
52
|
+
"@octokit/rest": "^19.0.11",
|
|
53
|
+
"adm-zip": "^0.5.10",
|
|
54
|
+
"chalk": "^5.2.0",
|
|
55
|
+
"colors": "^1.4.0",
|
|
56
|
+
"glob": "^10.2.7",
|
|
55
57
|
"libnpmconfig": "^1.2.1",
|
|
56
|
-
"rimraf": "^
|
|
58
|
+
"rimraf": "^5.0.1",
|
|
57
59
|
"yarn-or-npm": "^3.0.1",
|
|
58
|
-
"yeoman-environment": "^3.
|
|
59
|
-
"yeoman-generator": "^5.
|
|
60
|
+
"yeoman-environment": "^3.19.3",
|
|
61
|
+
"yeoman-generator": "^5.9.0",
|
|
60
62
|
"yosay": "^2.0.2"
|
|
61
63
|
},
|
|
62
64
|
"devDependencies": {
|
|
63
|
-
"@commitlint/cli": "17.
|
|
64
|
-
"@commitlint/config-conventional": "17.
|
|
65
|
-
"conventional-changelog-cli": "^
|
|
66
|
-
"cz-conventional-changelog": "3.3.0",
|
|
67
|
-
"eslint": "^8.
|
|
68
|
-
"husky": "^8.0.
|
|
69
|
-
"lint-staged": "^13.
|
|
70
|
-
"mocha": "^10.
|
|
65
|
+
"@commitlint/cli": "^17.6.5",
|
|
66
|
+
"@commitlint/config-conventional": "^17.6.5",
|
|
67
|
+
"conventional-changelog-cli": "^3.0.0",
|
|
68
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
69
|
+
"eslint": "^8.42.0",
|
|
70
|
+
"husky": "^8.0.3",
|
|
71
|
+
"lint-staged": "^13.2.2",
|
|
72
|
+
"mocha": "^10.2.0",
|
|
71
73
|
"npm-run-all": "^4.1.5",
|
|
72
|
-
"prettier": "2.
|
|
74
|
+
"prettier": "^2.8.8",
|
|
73
75
|
"pretty-quick": "^3.1.3",
|
|
74
76
|
"yeoman-assert": "^3.1.1",
|
|
75
|
-
"yeoman-test": "^
|
|
77
|
+
"yeoman-test": "^7.4.0"
|
|
76
78
|
},
|
|
77
79
|
"config": {
|
|
78
80
|
"commitizen": {
|
|
@@ -85,6 +87,7 @@
|
|
|
85
87
|
]
|
|
86
88
|
},
|
|
87
89
|
"overrides": {
|
|
90
|
+
"http-cache-semantics": "^4.1.1",
|
|
88
91
|
"minimist": "^1.2.6"
|
|
89
92
|
}
|
|
90
93
|
}
|
|
Binary file
|