UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

85 lines 6.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackArtifact = void 0; const promises_1 = require("fs/promises"); const fs_1 = require("fs"); const path_1 = require("path"); const MANIFEST_NAME = 'pack-manifest.json'; const PACK_FOLDER = 'pack'; class PackArtifact { configuration; git; gitStatus; packages; get packFolder() { return (0, path_1.join)(this.configuration.stagingFolder, PACK_FOLDER); } get packManifestFile() { return (0, path_1.join)(this.packFolder, MANIFEST_NAME); } constructor(configuration, git, gitStatus, packages) { this.configuration = configuration; this.git = git; this.gitStatus = gitStatus; this.packages = packages ?? []; } validateGitStatusWithBump() { return [this.gitStatus.postBump, this.gitStatus.preBump].includes(this.gitStatus.prePack); } validateGitStatusDuringPack() { return this.gitStatus.prePack == this.gitStatus.postPack; } async validateGitStatusForPublish() { return [ this.gitStatus.preBump, this.gitStatus.postBump, this.gitStatus.prePack, this.gitStatus.postPack, ].includes(await this.git.gitStatusHash()); } static async load(configuration, git) { const packFolder = (0, path_1.join)(configuration.stagingFolder, PACK_FOLDER); const manifestFile = (0, path_1.join)(packFolder, MANIFEST_NAME); if ((0, fs_1.existsSync)(manifestFile)) { const content = await (0, promises_1.readFile)(manifestFile, 'utf-8'); const manifest = JSON.parse(content); return new PackArtifact(configuration, git, manifest.gitStatus, manifest.packages); } return null; } static async new(configuration, git, bumpGitStatus) { const statusHash = await git.gitStatusHash(); const gitStatus = { ...bumpGitStatus, prePack: statusHash, postPack: 'INVALID', }; await this.clear(configuration); return new PackArtifact(configuration, git, gitStatus); } static async clear(configuration) { await (0, promises_1.rm)((0, path_1.join)(configuration.stagingFolder, 'pack'), { force: true, recursive: true, }); } add(packedPackage) { this.packages.push(packedPackage); } async persist() { this.gitStatus.postPack = await this.git.gitStatusHash(); const content = { gitStatus: this.gitStatus, packages: this.packages, }; const contentData = JSON.stringify(content, null, 2); await (0, promises_1.mkdir)((0, path_1.dirname)(this.packManifestFile), { recursive: true, }); await (0, promises_1.writeFile)(this.packManifestFile, contentData, { encoding: 'utf-8', }); } } exports.PackArtifact = PackArtifact; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFjay1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3BhY2stYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTZEO0FBQzdELDJCQUFnQztBQUNoQywrQkFBcUM7QUFRckMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUFDM0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBdUIzQixNQUFhLFlBQVk7SUFZSztJQUF1QztJQVhuRSxTQUFTLENBQXdCO0lBQ2pDLFFBQVEsQ0FBa0I7SUFFMUIsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFBLFdBQUksRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFBLFdBQUksRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUE0QixhQUE2QixFQUFVLEdBQVEsRUFBRSxTQUFnQyxFQUFFLFFBQTBCO1FBQTdHLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxD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