@comet/upgrade 1.21.0 → 1.23.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/lib/index.js CHANGED
@@ -20,7 +20,14 @@ async function main() {
20
20
  const isUpgradeScript = targetVersionArg.endsWith(".ts");
21
21
  if (isUpgradeScript) {
22
22
  if (fs_1.default.existsSync(path_1.default.join(__dirname, targetVersionArg.replace(/\.ts$/, ".js")))) {
23
- await runUpgradeScript(targetVersionArg.replace(/\.ts$/, ".js"));
23
+ const module = await import(path_1.default.join(__dirname, targetVersionArg.replace(/\.ts$/, ".js")));
24
+ await runUpgradeScript({
25
+ name: targetVersionArg,
26
+ stage: "before-install",
27
+ // Need default.default because of ESM interoperability with CommonJS.
28
+ // See https://www.typescriptlang.org/docs/handbook/modules/reference.html#node16-nodenext.
29
+ script: module.default.default,
30
+ });
24
31
  await runEslintFix();
25
32
  }
26
33
  else {
@@ -43,9 +50,13 @@ async function main() {
43
50
  }
44
51
  const currentVersion = getCurrentVersion();
45
52
  console.info(`Upgrading from v${currentVersion} to v${targetVersion}`);
53
+ const upgradeScripts = await findUpgradeScripts(targetVersionFolder);
54
+ const beforeInstallScripts = upgradeScripts.filter((script) => script.stage === "before-install");
55
+ await runUpgradeScripts(beforeInstallScripts);
46
56
  console.info("Updating dependencies");
47
57
  await updateDependencies(targetVersion);
48
- await runUpgradeScripts(targetVersionFolder);
58
+ const afterInstallScripts = upgradeScripts.filter((script) => script.stage === "after-install");
59
+ await runUpgradeScripts(afterInstallScripts);
49
60
  await runEslintFix();
50
61
  }
51
62
  function getCurrentVersion() {
@@ -103,27 +114,38 @@ async function updateDependencies(targetVersion) {
103
114
  "--no-audit",
104
115
  "--loglevel",
105
116
  "error",
106
- targetVersion.prerelease.length > 0 ? "--save-exact" : "",
117
+ ...(targetVersion.prerelease.length > 0 ? ["--save-exact"] : []),
107
118
  ...dependencies.map((dependency) => `${dependency}@${targetVersion.version}`),
108
119
  ...devDependencies.map((dependency) => `${dependency}@${targetVersion.version}`),
109
120
  ]);
110
121
  }
111
122
  }
112
- async function runUpgradeScripts(targetVersionFolder) {
123
+ async function findUpgradeScripts(targetVersionFolder) {
124
+ const scripts = [];
113
125
  const scriptsFolder = path_1.default.join(__dirname, targetVersionFolder);
114
126
  for (const fileName of fs_1.default.readdirSync(scriptsFolder)) {
115
- await runUpgradeScript(path_1.default.join(targetVersionFolder, fileName));
127
+ const module = await import(path_1.default.join(__dirname, targetVersionFolder, fileName));
128
+ scripts.push({
129
+ name: fileName,
130
+ stage: module.stage ?? "after-install",
131
+ // Need default.default because of ESM interoperability with CommonJS.
132
+ // See https://www.typescriptlang.org/docs/handbook/modules/reference.html#node16-nodenext.
133
+ script: module.default.default,
134
+ });
135
+ }
136
+ return scripts;
137
+ }
138
+ async function runUpgradeScripts(scripts) {
139
+ for (const script of scripts) {
140
+ await runUpgradeScript(script);
116
141
  }
117
142
  }
118
143
  async function runUpgradeScript(script) {
119
- const upgradeScript = await import(path_1.default.join(__dirname, script));
120
144
  try {
121
- // Need default.default because of ESM interoperability with CommonJS.
122
- // See https://www.typescriptlang.org/docs/handbook/modules/reference.html#node16-nodenext.
123
- await upgradeScript.default.default();
145
+ await script.script();
124
146
  }
125
147
  catch (error) {
126
- console.error(`Script '${script}' failed to execute. See original error below`);
148
+ console.error(`Script '${script.name}' failed to execute. See original error below`);
127
149
  console.error(error);
128
150
  }
129
151
  }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stage = void 0;
4
+ const fs_1 = require("fs");
5
+ const promises_1 = require("fs/promises");
6
+ exports.stage = "before-install";
7
+ async function removeBlocksPackages() {
8
+ if ((0, fs_1.existsSync)("api/package.json")) {
9
+ let fileContent = (await (0, promises_1.readFile)("api/package.json")).toString();
10
+ fileContent = fileContent.replace(/\n\s*"@comet\/blocks-api".*$/m, "");
11
+ await (0, promises_1.writeFile)("api/package.json", fileContent);
12
+ }
13
+ }
14
+ exports.default = removeBlocksPackages;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/upgrade",
3
- "version": "1.21.0",
3
+ "version": "1.23.0",
4
4
  "description": "Upgrade scripts for Comet DXP",
5
5
  "homepage": "https://github.com/vivid-planet/comet-upgrade#readme",
6
6
  "bugs": {