UNPKG

serwist

Version:

A Swiss Army knife for service workers.

33 lines (30 loc) 958 B
import { t as timeout } from './waitUntil.js'; const MAX_RETRY_TIME = 2000; async function resultingClientExists(resultingClientId) { if (!resultingClientId) { return; } let existingWindows = await self.clients.matchAll({ type: "window" }); const existingWindowIds = new Set(existingWindows.map((w)=>w.id)); let resultingWindow = undefined; const startTime = performance.now(); while(performance.now() - startTime < MAX_RETRY_TIME){ existingWindows = await self.clients.matchAll({ type: "window" }); resultingWindow = existingWindows.find((w)=>{ if (resultingClientId) { return w.id === resultingClientId; } return !existingWindowIds.has(w.id); }); if (resultingWindow) { break; } await timeout(100); } return resultingWindow; } export { resultingClientExists as r };