import { Account, CoValue, CoValueClass, DepthsIn, ID, subscribeToCoValue, } from "jazz-tools" export function waitForCoValue( coMap: CoValueClass, valueId: ID, account: Account, predicate: (value: T) => boolean, depth: DepthsIn, ) { return new Promise((resolve) => { function subscribe() { const unsubscribe = subscribeToCoValue( coMap, valueId, account, depth, (value) => { if (predicate(value)) { resolve(value) unsubscribe() } }, () => { unsubscribe() setTimeout(subscribe, 100) }, ) } subscribe() }) }