@webfaas/webfaas-core
Version:
WebFaaS Framework - Core
70 lines • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageStoreManager = void 0;
const Log_1 = require("../Log/Log");
const PackageRegistryManager_1 = require("../PackageRegistryManager/PackageRegistryManager");
/**
* manager PackageStore
*/
class PackageStoreManager {
constructor(packageRegistryManager, log) {
this.cache = null;
this.log = log || new Log_1.Log();
if (packageRegistryManager) {
this.packageRegistryManager = packageRegistryManager;
}
else {
this.packageRegistryManager = new PackageRegistryManager_1.PackageRegistryManager(this.log);
}
}
/**
* return packageRegistryManager
*/
getPackageRegistryManager() {
return this.packageRegistryManager;
}
/**
* return async package cache
*/
getCache() {
return this.cache;
}
/**
* set async package cache
*/
setCache(cache) {
this.cache = cache;
}
/**
*
* @param name return PackageStore
* @param version package version
* @param etag package etag
*/
getPackageStore(name, version, etag, registryName) {
return new Promise(async (resolve, reject) => {
try {
var packageStore;
//cache get
if (this.cache && etag === undefined) {
packageStore = await this.cache.getPackageStore(name, version);
if (packageStore) {
resolve(packageStore);
return;
}
}
packageStore = await this.packageRegistryManager.getPackageStore(name, version, etag, registryName);
//cache put
if (this.cache && packageStore !== null) {
await this.cache.putPackageStore(packageStore);
}
resolve(packageStore);
}
catch (errTry) {
reject(errTry);
}
});
}
}
exports.PackageStoreManager = PackageStoreManager;
//# sourceMappingURL=PackageStoreManager.js.map