export async function waitForCleanup( cleanup: Promise, timeoutMs: number ): Promise { let timeout: NodeJS.Timeout | undefined const timedOut = new Promise((resolve) => { timeout = setTimeout(() => resolve(false), timeoutMs) }) const settled = Promise.resolve(cleanup).then( () => true as const, () => true as const ) const completed = await Promise.race([settled, timedOut]) if (timeout) { clearTimeout(timeout) } return completed }