Files
threshold-ui/addons/api/addon/utils/flatten-nested-object.js
T
Dharini Jeeva 36c2aee271 fix vault brokered credentials display (#2583)
* fix: 🐛 brokered credential display in credential panel
2024-11-26 14:34:10 -08:00

28 lines
730 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { typeOf } from '@ember/utils';
/**
* Flattens a nested object into a single-level object.
* @param obj
* @param result
* @param parentKey
* @returns {Object}
*/
export const flattenObject = (obj, result = {}, parentKey = '') => {
for (const key in obj) {
// Check if the value is an object and it is not null
if (typeOf(obj[key]) === 'object' && obj[key] !== null) {
// Recursively flatten the object
flattenObject(obj[key], result, `${parentKey}${key}.`);
} else if (obj[key]) {
// Only add to result if the value is not null
result[`${parentKey}${key}`] = obj[key];
}
}
return result;
};