let entityTree = {
account: ['account_subscriptions', 'device'],
device: 'device_subscriptions'
}['account', 'account_subscriptions', 'device', 'device_subscriptions']
const getEntities = key =>
entityTree.hasOwnProperty(key)
? [ key, ...[].concat(entityTree[key]).flatMap(n => getEntities(n) ?? n) ]
: null;function getEntities(key) {
if (!entityTree.hasOwnProperty(key)) {
return null;
}
const result = [];
for (const stack = [ key ]; stack.length;) {
const n = stack.pop();
result.push(n);
stack.push(...[].concat(entityTree[n] ?? []).reverse());
}
return result;
}