@infrascan/aws-kinesis-scanner
Version:
Infrascan scanner definition for AWS Kinesis
42 lines (41 loc) • 1.18 kB
JavaScript
// src/generated/graph.ts
import {
evaluateSelectorGlobally,
filterState,
formatEdge
} from "@infrascan/core";
import debug from "debug";
var edgesDebug = debug("kinesis:edges");
async function getEdges(stateConnector) {
edgesDebug("Fetching edges");
const edges = [];
edgesDebug("Evaluating Kinesis|ListStreamConsumers|[]");
const ListStreamConsumersState1 = await evaluateSelectorGlobally(
"Kinesis|ListStreamConsumers|[]",
stateConnector
);
const ListStreamConsumersEdges1 = ListStreamConsumersState1.flatMap(
(state) => {
const source = filterState(state, "_parameters.StreamARN");
const target = filterState(
state,
"_result.Consumers[].{target:ConsumerARN,name:ConsumerName}"
);
if (!target || !source) {
return [];
}
if (Array.isArray(target)) {
return target.map((edgeTarget) => formatEdge(source, edgeTarget));
}
return formatEdge(source, target);
}
);
edgesDebug(
`Evaluated Kinesis|ListStreamConsumers|[]: ${ListStreamConsumersEdges1.length} Edges found`
);
edges.push(...ListStreamConsumersEdges1);
return edges;
}
export {
getEdges
};