@csermet/multiprovider
Version:
cloud-graph provider plugin for AWS used to fetch AWS cloud data.
46 lines (45 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const ids_1 = require("../../utils/ids");
// Normalize name due special chars like '*' are replaced with '\\052'
const normalizeName = (name) => {
if (lodash_1.isEmpty(name))
return '';
const normalizedName = name.replace(/\\052/g, '*');
return normalizedName.endsWith('.')
? normalizedName.slice(0, -1)
: normalizedName;
};
/**
* Route53 Record
*/
exports.default = ({ service: rawData, account, }) => {
const { HostedZoneId: Id, TTL: ttl, Name: name, Type: type, AliasTarget: alias, ResourceRecords: records = [], SetIdentifier: identifier = '', } = rawData;
const normalizedName = normalizeName(name);
const hostedZoneId = ids_1.getHostedZoneId(Id);
const id = ids_1.getRecordId({
hostedZoneId,
name: normalizedName,
type,
identifier,
});
// Resource records
const resourceRecords = records.map(({ Value }) => Value);
const record = {
id,
accountId: account,
zoneId: hostedZoneId,
name: normalizedName,
setIdentifier: identifier,
type,
ttl,
alias: {
name: alias?.DNSName || '',
zoneId: alias?.HostedZoneId || '',
evaluateTargetHealth: !!alias?.EvaluateTargetHealth,
},
records: resourceRecords,
};
return record;
};