@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
66 lines (65 loc) • 2.72 kB
JavaScript
;
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 translations_1 = __importDefault(require("../../properties/translations"));
const format_1 = require("../../utils/format");
/**
* Lambda
*/
exports.default = ({ service: rawData, account, region, }) => {
const { CodeSize: codeSize, Description: description, Environment = {}, FunctionArn: arn, Handler: handler, KMSKeyArn: kmsKeyArn, LastModified: lastModified, MemorySize: memorySize, Runtime: runtime, Tags = {}, Timeout: timeout, TracingConfig: tracing = [], Version: version, reservedConcurrentExecutions: rawReservedConcurrentExecutions, VpcConfig: vpcConfig, PolicyData: { Policy: policy = '', RevisionId: policyRevisionId = '' }, } = rawData;
const environmentVariables = [];
const secretNames = [translations_1.default.pass, translations_1.default.secret, translations_1.default.private, translations_1.default.cert];
const reservedConcurrentExecutions = rawReservedConcurrentExecutions;
if (!isEmpty_1.default(Environment)) {
if (Environment.Variables) {
Object.entries(Environment.Variables).map(([key, value]) => {
let desiredValue = value;
secretNames.map(secret => {
if (key.toLowerCase().includes(secret.toLowerCase())) {
desiredValue = translations_1.default.secretPlaceholder;
}
});
environmentVariables.push({
id: `${key}:${desiredValue}`,
key,
value: desiredValue,
});
});
}
}
const tracingConfig = Object.entries(tracing)
.map(([key, value]) => `${key} - ${value}`)
.join(', ');
const formattedVpcConfig = {
vpcId: vpcConfig?.VpcId,
subnetIds: vpcConfig?.SubnetIds,
securityGroupIds: vpcConfig?.SecurityGroupIds,
};
return {
accountId: account,
arn,
region,
description,
handler,
id: arn,
kmsKeyArn,
lastModified,
memorySize,
reservedConcurrentExecutions,
runtime,
sourceCodeSize: `${codeSize * 0.001} Kb`,
timeout,
tracingConfig,
version,
environmentVariables,
vpcConfig: formattedVpcConfig,
policyRevisionId,
rawPolicy: policy,
policy: format_1.formatIamJsonPolicy(policy),
tags: format_1.formatTagsFromMap(Tags),
};
};