// convert routered functions to flat routes, // eg: { fn:1, nestedfn: { test: 2, test2: 3}} -> { fn:1, nestedfn:test: 2, nestedfn:test2: 3} export default function flatRouteredFunctions(obj, prefix = "", acc = {}) { for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { const value = obj[key] // Determine the new key: if there's a prefix, add it with a colon separator. const newKey = prefix ? `${prefix}:${key}` : key // If value is a non-null object (and not an array), recursively flatten it. if ( value !== null && typeof value === "object" && !Array.isArray(value) ) { flatRouteredFunctions(value, newKey, acc) } else { acc[newKey] = value } } } return acc }