cloud-report
Version:
Collects and analyzes cloud resources
25 lines (24 loc) • 948 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const aws_1 = require("./aws");
const cache_1 = require("./cache");
const common_1 = require("./common");
class CollectorUtil {
static async cachedCollect(collector) {
try {
const collectorName = collector.constructor.name;
const session = collector.getSession();
const sessionCache = cache_1.CacheUtil.get(session, {});
sessionCache.collectors = sessionCache.collectors || {};
if (!sessionCache.collectors[collectorName]) {
await common_1.CommonUtil.wait(500);
sessionCache.collectors[collectorName] = collector.collect();
}
return await sessionCache.collectors[collectorName];
}
catch (error) {
aws_1.AWSErrorHandler.handle(error);
}
}
}
exports.CollectorUtil = CollectorUtil;