xrelease
Version:
xrelease (pronounced cross-release) helps you setup automated releases for your project for any language
27 lines • 944 B
JavaScript
import fs from 'fs/promises';
import semver from 'semver';
export async function bumpVersion(type = 'patch') {
try {
// Read package.json
const pkgJson = JSON.parse(await fs.readFile('package.json', 'utf-8'));
if (!pkgJson.version) {
throw new Error('No version field found in package.json');
}
// Calculate new version
const newVersion = semver.inc(pkgJson.version, type);
if (!newVersion) {
throw new Error(`Failed to increment version ${pkgJson.version} with type ${type}`);
}
// Update package.json
pkgJson.version = newVersion;
await fs.writeFile('package.json', JSON.stringify(pkgJson, null, 2));
return newVersion;
}
catch (error) {
if (error instanceof Error) {
throw error;
}
throw new Error('Failed to bump version');
}
}
//# sourceMappingURL=bump-version.js.map