@calvear/azure-key-vault
Version:
Wrapper for @azure/keyvault-secrets for ease secrets handler in JSON files.
38 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deflatten = exports.flatten = void 0;
function flatten(secrets, namespace = '') {
const flattened = {};
for (const key in secrets) {
const value = secrets[key];
if (typeof value !== 'object' || value === null) {
flattened[`${namespace}${key}`] = value;
continue;
}
if (Array.isArray(value))
flattened[`${namespace}${key}`] = value;
else
Object.assign(flattened, flatten(value, `${namespace}${key}--`));
}
return flattened;
}
exports.flatten = flatten;
function deflatten(secrets) {
const restored = {};
for (const key in secrets)
rearmTree(restored, key.split('--'), secrets[key]);
return restored;
}
exports.deflatten = deflatten;
function rearmTree(restored, members, value) {
const [namespace, ...rest] = members;
if (members.length === 1) {
restored[namespace] = value;
}
else {
if (!restored[namespace])
restored[namespace] = {};
rearmTree(restored[namespace], rest, value);
}
}
//# sourceMappingURL=flatten.util.js.map