UNPKG

dx-package-api

Version:

API to work with salesforce dx packages metadata

92 lines 4.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class DxPackageMetadataApiImpl { constructor(connection) { this.connection = connection; this.PACKAGE_VERSION_QUERY = 'SELECT Id, SubscriberPackageVersionId, Package2.Name, Package2.NamespacePrefix' + ',Tag, Branch, MajorVersion, MinorVersion, PatchVersion, BuildNumber' + ',IsReleased, IsPasswordProtected ' + 'FROM Package2Version '; this.PACKAGE_VERSION_WHERE_BY_IDS = ' where SubscriberPackageVersionId in (%s) '; this.PACKAGE_VERSION_WHERE_BY_VERSION = " WHERE Package2Id='%i' AND MajorVersion=%m AND MinorVersion=%n AND PatchVersion=%p AND BuildNumber=%b"; this.PACKAGE_VERSION_DEPENDENCIES_QUERY = "SELECT Dependencies FROM SubscriberPackageVersion WHERE Id = '%s'"; this.MAX_BUILD_NUMBER_QUERY = 'SELECT max(buildNumber) latestBuildNumber FROM Package2Version' + " WHERE Package2Id='%i' AND MajorVersion=%m AND MinorVersion=%n AND PatchVersion=%p"; } async getMaxBuildNumber(package2Id, majorVersion, minorVersion, patchVersion) { let maxBuildVersion = -1; const query = this.MAX_BUILD_NUMBER_QUERY.replace('%i', package2Id) .replace('%m', majorVersion) .replace('%n', minorVersion) .replace('%p', patchVersion); await this.connection.tooling.query(query).then(maxBuildVersionQueryResult => { maxBuildVersionQueryResult.records.some(maxBuildVersionElement => { // tslint:disable-next-line: no-string-literal maxBuildVersion = maxBuildVersionElement['latestBuildNumber']; return true; }); }); return maxBuildVersion; } async getPackage2VersionById(subscriberPackageVersionId) { const query = (this.PACKAGE_VERSION_QUERY + this.PACKAGE_VERSION_WHERE_BY_IDS).replace('%s', subscriberPackageVersionId.includes("'") ? subscriberPackageVersionId : "'" + subscriberPackageVersionId + "'"); let result = null; await this.connection.tooling.query(query).then(packageQueryResult => { packageQueryResult.records.forEach(packageVersion => { result = packageVersion; return true; }); }); return result; } async getPackage2VersionByVersion(package2Id, majorVersion, minorVersion, patchVersion, buildNumber) { const query = (this.PACKAGE_VERSION_QUERY + this.PACKAGE_VERSION_WHERE_BY_VERSION) .replace('%i', package2Id) .replace('%m', majorVersion) .replace('%n', minorVersion) .replace('%p', patchVersion) .replace('%b', buildNumber); let result = null; await this.connection.tooling.query(query).then(packageQueryResult => { packageQueryResult.records.forEach(packageVersion => { result = packageVersion; return true; }); }); return result; } async getPackage2VersionByIds(subscriberPackageVersionIds) { const result = []; if (subscriberPackageVersionIds.length === 0) return result; const versions = []; subscriberPackageVersionIds.forEach(version => { const outgoingVersion = version.includes("'") ? version : "'" + version + "'"; versions.push(outgoingVersion); }); const packageWhereClause = this.PACKAGE_VERSION_WHERE_BY_IDS.replace('%s', versions.join(',')); const query = this.PACKAGE_VERSION_QUERY + packageWhereClause; await this.connection.tooling.query(query).then(packageQueryResult => { packageQueryResult.records.forEach(packageVersion => { result.push(packageVersion); }); }); return result; } async getDependenciesIds(subscriberPackageVersionId) { const result = []; const query = this.PACKAGE_VERSION_DEPENDENCIES_QUERY.replace('%s', subscriberPackageVersionId); await this.connection.tooling.query(query).then(subscriberPackageVersion => { subscriberPackageVersion.records.forEach(packageVersion => { if (packageVersion.Dependencies) { packageVersion.Dependencies.ids.forEach(id => { result.push(id.subscriberPackageVersionId); }); } }); }); return result; } } exports.DxPackageMetadataApiImpl = DxPackageMetadataApiImpl; //# sourceMappingURL=apimpl.js.map