UNPKG

@csermet/multiprovider

Version:

cloud-graph provider plugin for AWS used to fetch AWS cloud data.

53 lines (52 loc) 1.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isEmpty_1 = __importDefault(require("lodash/isEmpty")); const services_1 = __importDefault(require("../../enums/services")); /** * Network ACL */ exports.default = ({ service: nacl, data, region, }) => { const connections = []; const { NetworkAclId: id, VpcId: NaclVpcId, Associations: naclSubnetAssociations = [], } = nacl; const subnetIds = naclSubnetAssociations.map(({ SubnetId }) => SubnetId); /** * Find related Subnets */ const subnets = data.find(({ name }) => name === services_1.default.subnet); if (subnets?.data?.[region]) { const dataAtRegion = subnets.data[region].filter(({ SubnetId }) => !isEmpty_1.default(subnetIds) && subnetIds.filter(str => str.toLowerCase().includes(SubnetId.toLowerCase())).length > 0); if (!isEmpty_1.default(dataAtRegion)) { for (const subnet of dataAtRegion) { connections.push({ id: subnet.SubnetId, resourceType: services_1.default.subnet, relation: 'child', field: 'subnets', }); } } } /** * Find related Vpc */ const vpcs = data.find(({ name }) => name === services_1.default.vpc); if (vpcs?.data?.[region]) { const vpc = vpcs.data[region].find(({ VpcId }) => VpcId === NaclVpcId); if (!isEmpty_1.default(vpc)) { connections.push({ id: vpc.VpcId, resourceType: services_1.default.vpc, relation: 'child', field: 'vpc', }); } } const naclResult = { [id]: connections, }; return naclResult; };