@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 +32 -10
- package/lib/v8/remove-blocks-packages.js +14 -0
- package/package.json +1 -1
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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;
|