UNPKG

oidc-spa

Version:

Openidconnect client for Single Page Applications

37 lines 1.28 kB
import { workerTimers } from "../vendor/frontend/worker-timers"; const clearByTimerHandle = new WeakMap(); export function setTimeout(callback, delay) { const callback_actual = () => { window.removeEventListener("pageshow", onPageshow); clearByTimerHandle.delete(timerHandle); callback(); }; let timerHandle_n = workerTimers.setTimeout(callback_actual, delay); const timerHandle = {}; clearByTimerHandle.set(timerHandle, () => { clearByTimerHandle.delete(timerHandle); workerTimers.clearTimeout(timerHandle_n); window.removeEventListener("pageshow", onPageshow); }); const start = Date.now(); const onPageshow = () => { workerTimers.clearTimeout(timerHandle_n); const elapsed = Date.now() - start; if (0 <= elapsed && elapsed < delay) { timerHandle_n = workerTimers.setTimeout(callback_actual, delay - elapsed); } else { callback_actual(); } }; window.addEventListener("pageshow", onPageshow); return timerHandle; } export function clearTimeout(handle) { const clear = clearByTimerHandle.get(handle); if (clear === undefined) { return; } clear(); } //# sourceMappingURL=workerTimers.js.map