UNPKG

ssm-params

Version:
53 lines (52 loc) 1.56 kB
"use strict"; 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; }