summaryrefslogtreecommitdiff
path: root/packages/integrations/prefetch/src/requestIdleCallback.ts
blob: 9435bd41d780ccf489aacee4a920debd5660d630 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function shim(callback: IdleRequestCallback, options?: IdleRequestOptions) {
	const timeout = options?.timeout ?? 50;
	const start = Date.now();

	return setTimeout(function () {
		callback({
			didTimeout: false,
			timeRemaining: function () {
				return Math.max(0, timeout - (Date.now() - start));
			},
		});
	}, 1);
}

const requestIdleCallback = window.requestIdleCallback || shim;
export default requestIdleCallback;