export function createWaiter() {
let cached = null
function wait() {
if (typeof window === 'undefined') {
if (cached) {
return cached
}
cached = new Promise((r) => process.nextTick(r))
return cached
} else {
if (cached) {
return cached
}
cached = Promise.resolve()
return cached
}
}
function cleanup() {
cached = null
}
return { wait, cleanup }
}