@comet/upgrade 1.13.0 → 1.15.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.
Files changed (3) hide show
  1. package/README.md +6 -0
  2. package/lib/index.js +31 -23
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -14,6 +14,12 @@ For example:
14
14
  npx @comet/upgrade v4
15
15
  ```
16
16
 
17
+ You can also run a single upgrade script by providing the path to the script:
18
+
19
+ ```sh
20
+ npx @comet/upgrade v7/hide-graphql-field-suggestions.ts
21
+ ```
22
+
17
23
  ## Create a new upgrade script
18
24
 
19
25
  1. Start the development process:
package/lib/index.js CHANGED
@@ -39,29 +39,31 @@ const fs_1 = __importDefault(require("fs"));
39
39
  const path_1 = __importDefault(require("path"));
40
40
  const semver_1 = __importDefault(require("semver"));
41
41
  const execute_command_util_1 = require("./util/execute-command.util");
42
- const VERSION_NUMBER = /^v?\d+$/;
43
42
  const microservices = ["api", "admin", "site"];
44
43
  function microserviceExists(microservice) {
45
44
  return fs_1.default.existsSync(`${microservice}/package.json`);
46
45
  }
47
46
  function main() {
48
47
  return __awaiter(this, void 0, void 0, function* () {
49
- let targetVersionArg = process.argv[2];
48
+ const targetVersionArg = process.argv[2];
50
49
  if (targetVersionArg === undefined) {
51
50
  console.error("Missing target version! Usage: npx @comet/upgrade <version>");
52
51
  process.exit(-1);
53
52
  }
54
- if (!VERSION_NUMBER.test(targetVersionArg)) {
53
+ const isUpgradeScript = fs_1.default.existsSync(path_1.default.join(__dirname, targetVersionArg.replace(/\.ts$/, ".js")));
54
+ if (isUpgradeScript) {
55
+ yield runUpgradeScript(targetVersionArg.replace(/\.ts$/, ".js"));
56
+ return;
57
+ }
58
+ const targetVersion = semver_1.default.coerce(targetVersionArg, { includePrerelease: true });
59
+ if (!targetVersion) {
55
60
  console.error("Can't parse version number. Example usage: npx @comet/upgrade v4");
56
61
  process.exit(-1);
57
62
  }
58
- if (targetVersionArg.startsWith("v")) {
59
- targetVersionArg = targetVersionArg.substring(1);
60
- }
61
- const targetVersion = Number(targetVersionArg);
62
- const scriptsFolder = path_1.default.join(__dirname, `v${targetVersion}`);
63
+ const targetVersionFolder = `v${targetVersion.major}`;
64
+ const scriptsFolder = path_1.default.join(__dirname, targetVersionFolder);
63
65
  if (!fs_1.default.existsSync(scriptsFolder)) {
64
- console.error(`Can't find target version 'v${targetVersionArg}'`);
66
+ console.error(`Can't find upgrade scripts for target version '${targetVersionFolder}'`);
65
67
  listTargetVersions();
66
68
  process.exit(-1);
67
69
  }
@@ -69,7 +71,7 @@ function main() {
69
71
  console.info(`Upgrading from v${currentVersion} to v${targetVersion}`);
70
72
  console.info("Updating dependencies");
71
73
  yield updateDependencies(targetVersion);
72
- yield runUpgradeScripts(targetVersion);
74
+ yield runUpgradeScripts(targetVersionFolder);
73
75
  yield runEslintFix();
74
76
  });
75
77
  }
@@ -130,25 +132,31 @@ function updateDependencies(targetVersion) {
130
132
  "--no-audit",
131
133
  "--loglevel",
132
134
  "error",
133
- ...dependencies.map((dependency) => `${dependency}@${targetVersion}`),
134
- ...devDependencies.map((dependency) => `${dependency}@${targetVersion}`),
135
+ targetVersion.prerelease.length > 0 ? "--save-exact" : "",
136
+ ...dependencies.map((dependency) => `${dependency}@${targetVersion.version}`),
137
+ ...devDependencies.map((dependency) => `${dependency}@${targetVersion.version}`),
135
138
  ]);
136
139
  }
137
140
  });
138
141
  }
139
- function runUpgradeScripts(targetVersion) {
142
+ function runUpgradeScripts(targetVersionFolder) {
140
143
  return __awaiter(this, void 0, void 0, function* () {
141
- var _a;
142
- const scriptsFolder = path_1.default.join(__dirname, `v${targetVersion}`);
144
+ const scriptsFolder = path_1.default.join(__dirname, targetVersionFolder);
143
145
  for (const fileName of fs_1.default.readdirSync(scriptsFolder)) {
144
- const upgradeScript = yield (_a = path_1.default.join(scriptsFolder, fileName), Promise.resolve().then(() => __importStar(require(_a))));
145
- try {
146
- yield upgradeScript.default();
147
- }
148
- catch (error) {
149
- console.error(`Script 'v${targetVersion}/${fileName}' failed to execute. See original error below`);
150
- console.error(error);
151
- }
146
+ yield runUpgradeScript(path_1.default.join(targetVersionFolder, fileName));
147
+ }
148
+ });
149
+ }
150
+ function runUpgradeScript(script) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ var _a;
153
+ const upgradeScript = yield (_a = path_1.default.join(__dirname, script), Promise.resolve().then(() => __importStar(require(_a))));
154
+ try {
155
+ yield upgradeScript.default();
156
+ }
157
+ catch (error) {
158
+ console.error(`Script '${script}' failed to execute. See original error below`);
159
+ console.error(error);
152
160
  }
153
161
  });
154
162
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/upgrade",
3
- "version": "1.13.0",
3
+ "version": "1.15.0",
4
4
  "description": "Upgrade scripts for Comet DXP",
5
5
  "homepage": "https://github.com/vivid-planet/comet-upgrade#readme",
6
6
  "bugs": {
@@ -31,14 +31,14 @@
31
31
  "eslint": "^8.56.0",
32
32
  "glob": "^10.3.10",
33
33
  "prettier": "^2.8.1",
34
- "semver": "^7.3.8",
34
+ "semver": "^7.6.2",
35
35
  "ts-morph": "^22.0.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@comet/eslint-config": "^3.2.1",
39
39
  "@types/node": "^20.0.0",
40
40
  "@types/prettier": "^2.7.1",
41
- "@types/semver": "^7.3.13",
41
+ "@types/semver": "^7.5.8",
42
42
  "husky": "^8.0.2",
43
43
  "lint-staged": "^13.1.0",
44
44
  "npm-run-all": "^4.1.5",