@webfaas/webfaas-core
Version:
WebFaaS Framework - Core
59 lines • 1.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageStoreCacheMemorySync = void 0;
const PackageStoreCacheMemoryConfig_1 = require("./PackageStoreCacheMemoryConfig");
const Log_1 = require("../../Log/Log");
/**
* Cache PackageStore in memory
*/
class PackageStoreCacheMemorySync {
constructor(config, log) {
this.listCacheItem = new Map();
this.totalSize = 0;
if (config) {
this.config = config;
}
else {
this.config = new PackageStoreCacheMemoryConfig_1.PackageStoreCacheMemoryConfig();
}
this.log = log || new Log_1.Log();
}
getKey(name, version) {
if (version) {
return name + "-" + version;
}
else {
return name;
}
}
getConfig() {
return this.config;
}
getTotalSize() {
return this.totalSize;
}
getTotalEntry() {
return this.listCacheItem.size;
}
getPackageStore(name, version) {
var key = this.getKey(name, version);
return this.listCacheItem.get(key) || null;
}
putPackageStore(packageStore) {
var key = this.getKey(packageStore.getName(), packageStore.getVersion());
if (this.listCacheItem.has(key) === false) {
this.totalSize += packageStore.getSize();
}
this.listCacheItem.set(key, packageStore);
}
deletePackageStore(name, version) {
var key = this.getKey(name, version);
var packageStore = this.listCacheItem.get(key);
if (packageStore) {
this.totalSize -= packageStore.getSize();
this.listCacheItem.delete(key);
}
}
}
exports.PackageStoreCacheMemorySync = PackageStoreCacheMemorySync;
//# sourceMappingURL=PackageStoreCacheMemorySync.js.map