UNPKG

dx-package-api

Version:

API to work with salesforce dx packages metadata

42 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const apimpl_1 = require("./apimpl"); class DxPackageMetadataCachingApiImpl { constructor(connection) { this.packageVersions = new Map(); this.packageVersionIdToDependenciesIds = new Map(); this.dxPackageMetadataApi = new apimpl_1.DxPackageMetadataApiImpl(connection); } async getPackage2VersionById(subscriberPackageVersionId) { if (!this.packageVersions.has(subscriberPackageVersionId)) { this.packageVersions.set(subscriberPackageVersionId, await this.dxPackageMetadataApi.getPackage2VersionById(subscriberPackageVersionId)); } return this.packageVersions.get(subscriberPackageVersionId); } async getDependencies(subscriberPackageVersionId) { const result = []; if (!this.packageVersionIdToDependenciesIds.has(subscriberPackageVersionId)) { this.packageVersionIdToDependenciesIds.set(subscriberPackageVersionId, await this.dxPackageMetadataApi.getDependenciesIds(subscriberPackageVersionId)); } const ids = this.packageVersionIdToDependenciesIds.get(subscriberPackageVersionId); if (ids.length === 0) return result; const missingPackageIds = []; ids.forEach(id => { if (!this.packageVersions.has(id)) missingPackageIds.push("'" + id + "'"); else result.push(this.packageVersions.get(id)); }); if (missingPackageIds.length === 0) return result; const packageVersions = await this.dxPackageMetadataApi.getPackage2VersionByIds(missingPackageIds); packageVersions.forEach(packageVersion => { result.push(packageVersion); this.packageVersions.set(packageVersion.SubscriberPackageVersionId, packageVersion); }); return result; } } exports.DxPackageMetadataCachingApiImpl = DxPackageMetadataCachingApiImpl; //# sourceMappingURL=cachingapi.js.map