@formant/ava
Version:
A framework for automated visual analytics.
20 lines (19 loc) • 929 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.flatObject = void 0;
var tslib_1 = require("tslib");
function flatObject(obj, concatenator) {
if (concatenator === void 0) { concatenator = '.'; }
return Object.keys(obj).reduce(function (acc, key) {
var _a;
if (typeof obj[key] !== 'object' || obj[key] === null) {
return tslib_1.__assign(tslib_1.__assign({}, acc), (_a = {}, _a[key] = obj[key], _a));
}
var flattenedChild = flatObject(obj[key], concatenator);
return tslib_1.__assign(tslib_1.__assign({}, acc), Object.keys(flattenedChild).reduce(function (childAcc, childKey) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, childAcc), (_a = {}, _a["".concat(key).concat(concatenator).concat(childKey)] = flattenedChild[childKey], _a)));
}, {}));
}, {});
}
exports.flatObject = flatObject;