chrono-forge
Version:
A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont
10 lines (9 loc) • 547 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.flatten = flatten;
const lodash_1 = require("lodash");
const ramda_1 = require("ramda");
function flatten(nestedObject, maxDepth = 3) {
const traverse = (obj_, depth = 1) => (0, ramda_1.chain)(([k, v]) => (0, lodash_1.isObject)(v) && depth < maxDepth ? (0, ramda_1.map)(([k_, v_]) => [`${k}_${k_}`, v_], traverse(v, depth + 1)) : [[k, v]], (0, ramda_1.toPairs)(obj_));
return (0, ramda_1.fromPairs)(traverse(JSON.parse(JSON.stringify(nestedObject))));
}