cloud-report
Version:
Collects and analyzes cloud resources
24 lines (23 loc) • 934 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const flat = require("flat");
const Analyzers = require("./analyzers");
function analyze(collectorData) {
const flatListOfAnalyzers = flat(Analyzers);
const result = {};
for (const analyzerName in flatListOfAnalyzers) {
if (!analyzerName.endsWith("Analyzer")) {
continue;
}
const analyzerNameSpace = analyzerName.replace(/.[A-Za-z0-9]+$/, "");
if (!collectorData[analyzerNameSpace]) {
continue;
}
const analyzer = new flatListOfAnalyzers[analyzerName]();
const data = analyzer.analyze(collectorData[analyzerNameSpace], collectorData);
result[analyzerNameSpace] = result[analyzerNameSpace] || {};
result[analyzerNameSpace] = Object.assign(result[analyzerNameSpace], data);
}
return result;
}
exports.analyze = analyze;