@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
74 lines • 5.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BumpManifest = void 0;
const promises_1 = require("fs/promises");
const fs_1 = require("fs");
const path_1 = require("path");
const MANIFEST_NAME = 'bump-manifest.json';
class BumpManifest {
application;
gitStatus;
bumps;
constructor(application, gitStatus, bumps) {
this.application = application;
this.bumps = bumps ?? [];
this.gitStatus = gitStatus;
}
static async load(application) {
const bumpManifestFile = (0, path_1.join)(application.configuration.stagingFolder, MANIFEST_NAME);
if ((0, fs_1.existsSync)(bumpManifestFile)) {
const content = await (0, promises_1.readFile)(bumpManifestFile, 'utf-8');
const manifest = JSON.parse(content);
return new BumpManifest(application, manifest.gitStatus, manifest.bumps);
}
return null;
}
static async new(application) {
await this.clear(application.configuration);
const gitStatus = await application.git.gitStatusHash();
const result = new BumpManifest(application, {
preBump: gitStatus,
postBump: 'INVALID',
});
return result;
}
static async clear(configuration) {
(0, promises_1.rm)((0, path_1.join)(configuration.stagingFolder, MANIFEST_NAME), {
force: true,
});
}
add(workspace, version, previousVersion, changeLog, commits) {
this.bumps.push({
changeLog,
previousVersion,
packageName: workspace.packageName,
packageRelativeCwd: workspace.relativeCwd,
version,
tag: workspace.tagPrefix + version,
private: workspace.manifest.private === true,
commits,
});
}
async persist() {
if (!this.gitStatus.preBump) {
throw new Error('No pre bump status hash set');
}
const bumpManifestFile = (0, path_1.join)(this.application.configuration.stagingFolder, MANIFEST_NAME);
const content = {
gitStatus: {
preBump: this.gitStatus.preBump,
postBump: await this.application.git.gitStatusHash(),
},
bumps: this.bumps,
};
const contentData = JSON.stringify(content, null, 2);
await (0, promises_1.mkdir)((0, path_1.dirname)(bumpManifestFile), {
recursive: true,
});
await (0, promises_1.writeFile)(bumpManifestFile, contentData, {
encoding: 'utf-8',
});
}
}
exports.BumpManifest = BumpManifest;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC1tYW5pZmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2J1bXAtbWFuaWZlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTZEO0FBQzdELDJCQUFnQztBQUNoQywrQkFBcUM7QUFRckMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUF1QjNDLE1BQWEsWUFBWTtJQUlLO0lBSDVCLFNBQVMsQ0FBd0I7SUFDakMsS0FBSyxDQUFTO0lBRWQsWUFBNEIsV0FBeUIsRUFBRSxTQUFnQyxFQUFFLEtBQWM7UUFBM0UsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF5QjtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLElBQUEsV0FBSSxFQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXRGLElBQUksSUFBQSxlQUFVLEVBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxtQkFBUSxFQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QixDQUFDO1lBQzVELE9BQU8sSUFBSSxZQUFZLENBQ3JCLFdBQVcsRUFDWCxRQUFRLENBQUMsU0FBUyxFQUNsQixRQUFRLENBQUMsS0FBSyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBeUI7UUFDeEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxNQUFNLFNBQVMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFO1lBQzNDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUE2QjtRQUM5QyxJQUFBLGFBQUUsRUFBQyxJQUFBLFdBQUksRUFBQyxhQUFhLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUFxQixFQUFFLE9BQWUsRUFBRSxlQUF1QixFQUFFLFNBQXlCLEVBQUUsT0FBNkI7UUFDM0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxTQUFTO1lBQ1QsZUFBZTtZQUNmLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVztZQUNsQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsV0FBVztZQUN6QyxPQUFPO1lBQ1AsR0FBRyxFQUFFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsT0FBTztZQUNsQyxPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssSUFBSTtZQUM1QyxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsV0FBSSxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRixNQUFNLE9BQU8sR0FBd0I7WUFDbkMsU0FBUyxFQUFFO2dCQUNULE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Z0JBQy9CLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTthQUNyRDtZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sSUFBQSxnQkFBSyxFQUFDLElBQUEsY0FBTyxFQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDckMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFBLG9CQUFTLEVBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO1lBQzdDLFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVFRCxvQ0E0RUMifQ==