Skip to content

Commit 4b3fadc

Browse files
Add latest version check to yeoman generator
1 parent c157c13 commit 4b3fadc

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

yeoman-generator/package-lock.json

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

yeoman-generator/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
},
1414
"dependencies": {
1515
"pacote": "^17.0.5",
16+
"semver": "^7.5.4",
1617
"yeoman-generator": "^5.10.0"
1718
},
1819
"devDependencies": {
1920
"@tsconfig/node18": "^18.2.2",
2021
"@types/pacote": "^11.1.8",
22+
"@types/semver": "^7.5.6",
2123
"@types/yeoman-generator": "^5.2.14",
2224
"clean-webpack-plugin": "^4.0.0",
2325
"copy-webpack-plugin": "^11.0.0",

yeoman-generator/src/app/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,33 @@
11
import Generator from "yeoman-generator";
22
import pacote from "pacote"
3+
import { version } from "../../package.json"
4+
import { SemVer } from "semver";
35

46
export default class extends Generator {
57
constructor(args: string | string[], opts: Generator.GeneratorOptions) {
68
super(args, opts);
79
this.env.options.nodePackageManager = "npm";
810
}
911

12+
async initializingCheckTemplateIsLatestVersion() {
13+
const packageManifest = await pacote.manifest("generator-hasura-ndc-nodejs-lambda");
14+
const latestVersion = new SemVer(packageManifest.version);
15+
const currentVersion = new SemVer(version);
16+
if (currentVersion.compare(latestVersion) === -1) {
17+
const answer = await this.prompt({
18+
type: "confirm",
19+
name: "continueWithOutOfDateVersion",
20+
message: `There's a new version of generator-hasura-ndc-nodejs-lambda (latest: ${latestVersion.version}, current: ${currentVersion.version})!\nConsider upgrading by running 'npm install -g generator-hasura-ndc-nodejs-lambda'.\nWould you like to continue anyway?`,
21+
default: true,
22+
});
23+
if (answer.continueWithOutOfDateVersion === false) {
24+
this.log.error("Cancelled");
25+
process.exit(1);
26+
}
27+
}
28+
29+
}
30+
1031
writingTemplateFiles() {
1132
this.fs.copyTpl(
1233
this.templatePath("functions.ts"),

0 commit comments

Comments
 (0)