UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

111 lines 9.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash = require("lodash"); class OrgsUpdater { constructor(releaseChangelog, latestRelease, org, releaseWithMatchingHashId) { this.releaseChangelog = releaseChangelog; this.latestRelease = latestRelease; this.org = org; this.releaseWithMatchingHashId = releaseWithMatchingHashId; this.latestReleaseId = this.convertReleaseToId(this.latestRelease); if (this.releaseWithMatchingHashId) { this.idOfReleaseWithMatchingHashId = this.convertReleaseToId(this.releaseWithMatchingHashId); } } update() { if (!this.idOfReleaseWithMatchingHashId) { if (this.releaseChangelog.orgs) { let org = this.releaseChangelog.orgs.find((org) => org.name === this.org); if (org) { org.releases.push(this.latestReleaseId); org.latestRelease = org.releases[org.releases.length - 1]; org.retryCount = 0; } else { this.releaseChangelog.orgs.push({ name: this.org, releases: [this.latestReleaseId], latestRelease: this.latestReleaseId, retryCount: 0, }); } } else { // for backwards-compatibility with pre-existing changelogs this.releaseChangelog.orgs = [ { name: this.org, releases: [this.latestReleaseId], latestRelease: this.latestReleaseId, retryCount: 0, }, ]; } console.log(`Updating ${this.org} org with`, this.latestRelease.names[this.latestRelease.names.length - 1] + '-' + this.latestRelease.buildNumber + `(0)`); } else { // Update orgs let org = this.releaseChangelog.orgs.find((org) => org.name === this.org); if (org) { let indexOfReleaseToOrg = org.releases.findIndex((orgRelease) => orgRelease.hashId === this.idOfReleaseWithMatchingHashId.hashId); if (org.latestRelease.hashId !== this.idOfReleaseWithMatchingHashId.hashId) { if (indexOfReleaseToOrg >= 0) { // Update release names in releases to org org.releases[indexOfReleaseToOrg] = this.idOfReleaseWithMatchingHashId; org.releases[indexOfReleaseToOrg].date = new Date().toUTCString(); } else { // Add releaseId in releases to org org.releases.push(this.idOfReleaseWithMatchingHashId); } // Update latest release org.latestRelease = this.idOfReleaseWithMatchingHashId; org.retryCount = 0; } else { if (lodash.isEqual(org.releases[indexOfReleaseToOrg], this.idOfReleaseWithMatchingHashId)) { org.retryCount++; } else { org.retryCount = 0; } // Update releases names in releases to org & latestRelease org.releases[indexOfReleaseToOrg] = this.idOfReleaseWithMatchingHashId; org.latestRelease = this.idOfReleaseWithMatchingHashId; } console.log(`Updating ${this.org} org with`, org.latestRelease.names[org.latestRelease.names.length - 1] + '-' + org.latestRelease.buildNumber + `(${org.retryCount})`); } else { // new org this.releaseChangelog.orgs.push({ name: this.org, releases: [this.idOfReleaseWithMatchingHashId], latestRelease: this.idOfReleaseWithMatchingHashId, retryCount: 0, }); console.log(`Updating ${this.org} org with`, `${this.idOfReleaseWithMatchingHashId.names[this.idOfReleaseWithMatchingHashId.names.length - 1]}-${this.idOfReleaseWithMatchingHashId.buildNumber}(0)`); } } } /** * Convert Release to Release Id * @param release * @returns */ convertReleaseToId(release) { let releaseNames = [...release.names]; // Shallow copy return { names: releaseNames, buildNumber: release.buildNumber, hashId: release.hashId, }; } } exports.default = OrgsUpdater; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3Jnc1VwZGF0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW1wbC9jaGFuZ2Vsb2cvT3Jnc1VwZGF0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxpQ0FBa0M7QUFFbEMsTUFBcUIsV0FBVztJQUk1QixZQUNZLGdCQUFrQyxFQUNsQyxhQUFzQixFQUN0QixHQUFXLEVBQ1gseUJBQWtDO1FBSGxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBUztRQUUxQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUUxRSxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNOLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDeEMsR0FBRyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMs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