diff --git a/app/src/helper.ts b/app/src/helper.ts index 04fb872..274aa57 100644 --- a/app/src/helper.ts +++ b/app/src/helper.ts @@ -12,9 +12,11 @@ import { ReadonlyData, Data, instanceTypeSym, DataSubscription } from "./josm" type DataChain = ReadonlyData | ReadonlyData> | ReadonlyData>> | ReadonlyData>>> | ReadonlyData>>>> | ReadonlyData>>>>> | ReadonlyData>>>>>> | ReadonlyData>>>>>>> | ReadonlyData>>>>>>>> | ReadonlyData>>>>>>>>> | ReadonlyData>>>>>>>>>> -export function flattenNestedData(data: DataChain, subs: DataSubscription[]) { - - +export function flattenNestedData(data: DataChain) { + return _flattenNestedData(data, []) +} + +function _flattenNestedData(data: DataChain, subs: DataSubscription[]) { const out = new Data() const mySubIndex = subs.length+1 let innerSub: DataSubscription @@ -23,7 +25,7 @@ export function flattenNestedData(data: DataChain, subs: DataSubscription< for (let i = mySubIndex; i < subs.length; i++) subs[i].deactivate() subs.length = mySubIndex if (innerSub) innerSub.deactivate() - innerSub = flattenNestedData(innerData as any, subs).get((innerPlain) => { + innerSub = _flattenNestedData(innerData as any, subs).get((innerPlain) => { out.set(innerPlain as any) }) }