UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

88 lines 7.11 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; republish; 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, republish = false) { this.configuration = configuration; this.git = git; this.gitStatus = gitStatus; this.packages = packages ?? []; this.republish = republish; } 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, manifest.republish ?? false); } return null; } static async new(configuration, git, bumpGitStatus, republish = false) { const statusHash = await git.gitStatusHash(); const gitStatus = { ...bumpGitStatus, prePack: statusHash, postPack: 'INVALID', }; await this.clear(configuration); return new PackArtifact(configuration, git, gitStatus, undefined, republish); } 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, republish: this.republish || undefined, }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFjay1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3BhY2stYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTZEO0FBQzdELDJCQUFnQztBQUNoQywrQkFBcUM7QUFRckMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUM7QUFDM0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBeUIzQixNQUFhLFlBQVk7SUFhSztJQUF1QztJQVpuRSxTQUFTLENBQXdCO0lBQ2pDLFFBQVEsQ0FBa0I7SUFDMUIsU0FBUyxDQUFVO0lBRW5CLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBQSxXQUFJLEVBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsWUFBNEIsYUFBNkIsRUFBVSxHQUFRLEVBQUUsU0FBZ0MsRUFBRSxRQUEwQixFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQWhJLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELDJC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