-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathtag-version.ts
More file actions
32 lines (28 loc) · 1.56 KB
/
tag-version.ts
File metadata and controls
32 lines (28 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import * as path from 'path';
import * as fs from 'fs-extra';
import { getPackageInfos, IPackageInfo, getVersionPrefix } from './getPackageInfos';
console.log('[VERSION] tag versions');
function updatePackageVersion(publishPackages: IPackageInfo[]) {
publishPackages.forEach((publishPackage: IPackageInfo) => {
const { directory, packageInfo, publishVersion, name } = publishPackage;
packageInfo.version = publishVersion;
// update package version depend on publish package
for (let i = 0; i < publishPackages.length; i++) {
const dependenceName = publishPackages[i].name;
const dependenceVersion = publishPackages[i].publishVersion;
if (packageInfo.dependencies && packageInfo.dependencies[dependenceName]) {
packageInfo.dependencies[dependenceName] = `${getVersionPrefix(packageInfo.dependencies[dependenceName])}${dependenceVersion}`;
} else if (packageInfo.devDependencies && packageInfo.devDependencies[dependenceName]) {
packageInfo.devDependencies[dependenceName] = `${getVersionPrefix(packageInfo.devDependencies[dependenceName])}${dependenceVersion}`;
}
}
console.log(`[VERSION] update package ${name} with version ${publishVersion}`);
fs.writeFileSync(path.join(directory, 'package.json'), JSON.stringify(packageInfo, null, 2));
});
}
getPackageInfos().then((packageInfos: IPackageInfo[]) => {
const shouldPublishPackages = packageInfos
.filter((packageInfo) => packageInfo.shouldPublish);
console.log('shouldPublishPackages', shouldPublishPackages);
updatePackageVersion(shouldPublishPackages);
});