@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
84 lines • 7.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const QueryHelper_1 = __importDefault(require("../../queryHelper/QueryHelper"));
const semver_1 = __importDefault(require("semver"));
/**
* Fetcher for second-generation package version in Dev Hub
*/
class Package2VersionFetcher {
constructor(conn) {
this.conn = conn;
this.query = 'Select SubscriberPackageVersionId, Package2Id, Package2.Name, IsPasswordProtected, IsReleased, MajorVersion, MinorVersion, PatchVersion, BuildNumber, CodeCoverage, HasPassedCodeCoverageCheck, Branch from Package2Version ';
}
/**
* Fetch Package2 versions by Package2 Id
* Sorts by semantic version, in descending order
* @param package2Id
* @param versionNumber
* @param isValidatedPackages
* @returns
*/
async fetchByPackage2Id(package2Id, versionNumber, isValidatedPackages, isReleased) {
let query = this.query;
let whereClause = `where Package2Id='${package2Id}' `;
if (versionNumber) {
// TODO: validate version number
const versions = versionNumber.split('.');
if (versions[0])
whereClause += `and MajorVersion=${versions[0]} `;
if (versions[1])
whereClause += `and MinorVersion=${versions[1]} `;
if (versions[2])
whereClause += `and PatchVersion=${versions[2]} `;
if (versions[3])
whereClause += `and BuildNumber=${versions[3]} `;
}
if (isValidatedPackages)
whereClause += `and ValidationSkipped = false `;
if (isReleased)
whereClause += `and IsReleased = true `;
whereClause += `and IsDeprecated = false `;
query += whereClause;
const records = await QueryHelper_1.default.query(query, this.conn, true);
if (records.length > 1) {
return records.sort((a, b) => {
const v1 = `${a.MajorVersion}.${a.MinorVersion}.${a.PatchVersion}-${a.BuildNumber}`;
const v2 = `${b.MajorVersion}.${b.MinorVersion}.${b.PatchVersion}-${b.BuildNumber}`;
return semver_1.default.rcompare(v1, v2);
});
}
else
return records;
}
async fetchBySubscriberPackageVersionId(subscriberPackageVersionId) {
let query = this.query;
let whereClause = `where SubscriberPackageVersionId='${subscriberPackageVersionId}'`;
query += whereClause;
const records = await QueryHelper_1.default.query(query, this.conn, true);
return records[0];
}
async fetchByPackageBranchAndName(packageBranch, packageName, versionNumber) {
let query = this.query;
let whereClause = `where Branch='${packageBranch}' and Package2.Name ='${packageName}' `;
if (versionNumber) {
// TODO: validate version number
const versions = versionNumber.split('.');
if (versions[0])
whereClause += `and MajorVersion=${versions[0]} `;
if (versions[1])
whereClause += `and MinorVersion=${versions[1]} `;
if (versions[2])
whereClause += `and PatchVersion=${versions[2]} `;
}
query += whereClause;
let orderByClause = `order by CreatedDate desc`;
query += orderByClause;
const records = await QueryHelper_1.default.query(query, this.conn, true);
return records;
}
}
exports.default = Package2VersionFetcher;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZTJWZXJzaW9uRmV0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3BhY2thZ2UvdmVyc2lvbi9QYWNrYWdlMlZlcnNpb25GZXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsZ0ZBQXdEO0FBQ3hELG9EQUE0QjtBQUU1Qjs7R0FFRztBQUNILE1BQXFCLHNCQUFzQjtJQUl2QyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSG5CLFVBQUssR0FDbEIsOE5BQThOLENBQUM7SUFFNUwsQ0FBQztJQUV4Qzs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUNuQixVQUFrQixFQUNsQixhQUFzQixFQUN0QixtQkFBNkIsRUFDN0IsVUFBb0I7UUFFcEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV2QixJQUFJLFdBQVcsR0FBVyxxQkFBcUIsVUFBVSxLQUFLLENBQUM7UUFFL0QsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixnQ0FBZ0M7WUFDaEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUxQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsV0FBVyxJQUFJLG9CQUFvQixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsV0FBVyxJQUFJLG9CQUFvQixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsV0FBVyxJQUFJLG9CQUFvQixRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsV0FBVyxJQUFJLG1CQUFtQixRQUFRLENBQUMsQ0FBQyxDQUFD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