ssm-params
Version:
Obtain from AWS SSM Parameter Store
53 lines (52 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parametersToObj = void 0;
function parametersToObj(options, data) {
const { Path, target = {}, trimPath = true, nestObject = false, } = options;
const { Parameters } = data;
if (Parameters.length === 0) {
return target;
}
if (nestObject) {
Parameters.forEach(({ Name, Value }) => {
let key = trimPath ? Name.substr(Path.length) : Name;
if (key[0] === '/') {
key = key.substr(1);
}
setProperty(target, key.split('/'), Value);
});
}
else {
if (trimPath) {
Parameters.forEach(({ Name, Value }) => {
let key = Name.substr(Path.length);
if (key[0] === '/') {
key = key.substr(1);
}
target[key] = Value;
});
}
else {
Parameters.forEach(({ Name, Value }) => {
target[Name] = Value;
});
}
}
return target;
}
exports.parametersToObj = parametersToObj;
function setProperty(obj, propList, value) {
const lastIndex = propList.length - 1;
if (lastIndex < 0) {
return;
}
for (let index = 0; index < lastIndex; ++index) {
const prop = propList[index];
let nextObj = obj[prop];
if (nextObj === undefined) {
obj[prop] = nextObj = Object.create(null);
}
obj = nextObj;
}
obj[propList[lastIndex]] = value;
}