idraw/scripts/upgrade-version.ts

54 lines
1.9 KiB
TypeScript
Raw Permalink Normal View History

2024-05-19 11:14:58 +00:00
import process from 'node:process';
import { readJSONFile, writeJSONFile } from './util/file';
import { getRootPackageJSON, getAllSubPackageDirs } from './util/project';
const pkg = getRootPackageJSON();
const version = pkg.version;
2024-05-19 10:28:28 +00:00
2024-05-19 11:14:58 +00:00
let workspacePrefix = 'workspace:';
if (process.argv[2] === '--for-release') {
workspacePrefix = '';
}
2024-05-19 10:28:28 +00:00
async function run(): Promise<void> {
const pkgDirs = getAllSubPackageDirs();
const allPkgMap: Record<string, { file: string; json: any }> = {};
pkgDirs.forEach((dir) => {
const file = ['packages', dir, 'package.json'].join('/');
const json = readJSONFile('packages', dir, 'package.json');
allPkgMap[json.name] = { file, json };
});
for (const key in allPkgMap) {
if (allPkgMap.hasOwnProperty(key)) {
console.log(`Upgrade [${key}] from ${allPkgMap[key].json.version} to ${version}`);
allPkgMap[key].json.version = version;
if (allPkgMap[key]?.json?.dependencies) {
for (const depName in allPkgMap[key].json.dependencies) {
if (allPkgMap.hasOwnProperty(depName)) {
2024-05-19 10:28:28 +00:00
allPkgMap[key].json.dependencies[depName] = `${workspacePrefix}^${version}`;
}
}
2023-11-04 14:48:42 +00:00
for (const depName in allPkgMap[key].json.devDependencies) {
if (allPkgMap.hasOwnProperty(depName)) {
2024-05-19 10:28:28 +00:00
allPkgMap[key].json.devDependencies[depName] = `${workspacePrefix}^${version}`;
2023-11-04 14:48:42 +00:00
}
}
for (const depName in allPkgMap[key].json.peerDependencies) {
if (allPkgMap.hasOwnProperty(depName)) {
2024-05-19 10:28:28 +00:00
allPkgMap[key].json.peerDependencies[depName] = `${workspacePrefix}^${version}`;
2023-11-04 14:48:42 +00:00
}
}
}
}
writeJSONFile(allPkgMap[key].file, allPkgMap[key].json);
}
}
run()
.then(() => {
console.log(`[@idraw]: Upgrade all packages version ${version} success!`);
})
.catch((err) => {
console.error(err);
throw err;
});