@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
JavaScript
"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3Jnc1VwZGF0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW1wbC9jaGFuZ2Vsb2cvT3Jnc1VwZGF0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxpQ0FBa0M7QUFFbEMsTUFBcUIsV0FBVztJQUk1QixZQUNZLGdCQUFrQyxFQUNsQyxhQUFzQixFQUN0QixHQUFXLEVBQ1gseUJBQWtDO1FBSGxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQVM7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBUztRQUUxQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUUxRSxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNOLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDeEMsR0FBRyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDdkIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUc7d0JBQ2QsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzt3QkFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNuQyxVQUFVLEVBQUUsQ0FBQztxQkFDaEIsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osMkRBQTJEO2dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHO29CQUN6Qjt3QkFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUc7d0JBQ2QsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzt3QkFDaEMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlO3dCQUNuQyxVQUFVLEVBQUUsQ0FBQztxQkFDaEI7aUJBQ0osQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUNQLFlBQVksSUFBSSxDQUFDLEdBQUcsV0FBVyxFQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUN6RCxHQUFHO2dCQUNILElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztnQkFDOUIsS0FBSyxDQUNaLENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLGNBQWM7WUFDZCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFMUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDTixJQUFJLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUM1QyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUNsRixDQUFDO2dCQUNGLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN6RSxJQUFJLG1CQUFtQixJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUMzQiwwQ0FBMEM7d0JBQzFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUM7d0JBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDdEUsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLG1DQUFtQzt3QkFDbkMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUM7b0JBQzFELENBQUM7b0JBRUQsd0JBQXdCO29CQUN4QixHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztvQkFDdkQsR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUM7d0JBQ3hGLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDckIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO29CQUN2QixDQUFDO29CQUVELDJEQUEyRDtvQkFDM0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztvQkFDdkUsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUM7Z0JBQzNELENBQUM7Z0JBRUQsT0FBTyxDQUFDLEdBQUcsQ0FDUCxZQUFZLElBQUksQ0FBQyxHQUFHLFdBQVcsRUFDL0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdkQsR0FBRztvQkFDSCxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVc7b0JBQzdCLElBQUksR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUM1QixDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFVBQVU7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDZCxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7b0JBQzlDLGFBQWEsRUFBRSxJQUFJLENBQUMsNkJBQTZCO29CQUNqRCxVQUFVLEVBQUUsQ0FBQztpQkFDaEIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQ1AsWUFBWSxJQUFJLENBQUMsR0FBRyxXQUFXLEVBQy9CLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFDNUYsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFdBQ3ZDLEtBQUssQ0FDUixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLE9BQWdCO1FBQ3ZDLElBQUksWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlO1FBQ3RELE9BQU87WUFDSCxLQUFLLEVBQUUsWUFBWTtZQUNuQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3pCLENBQUM7SUFDTixDQUFDO0NBQ0o7QUEzSEQsOEJBMkhDIn0=