UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

32 lines (28 loc) 931 B
/** * Simple requestIdleCallback polyfill * Can be removed when all browsers support requestIdleCallback: https://caniuse.com/requestidlecallback * @param callback - * @param options - */ const requestIdleCallbackShim: typeof window.requestIdleCallback = function requestIdleCallbackShim( callback, options?, ): number { const start = Date.now() return window.setTimeout(() => { callback({ didTimeout: false, timeRemaining() { return Math.max(0, Date.now() - start) }, }) }, 0) } const cancelIdleCallbackShim: typeof window.cancelIdleCallback = function cancelIdleCallbackShim( handle: number, ): void { return window.clearTimeout(handle) } const win = typeof window === 'undefined' ? undefined : window export const requestIdleCallback = win?.requestIdleCallback || requestIdleCallbackShim export const cancelIdleCallback = win?.cancelIdleCallback || cancelIdleCallbackShim