mirror of
https://github.com/withastro/astro.git
synced 2024-12-23 21:53:55 -05:00
79fe09fa30
* Adds a basic @astrojs/prefetch integration * adding tests for custom selectors * missed in last commit * Adding a few docs, removing the option for `selectors` to be an element array * adding an option for the concurrency limit * fixing test for updated integration options * Update packages/labs/prefetch/src/client.ts Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> * nit: removing the NodeJS.Timer type to allow typescript to infer the return * updating docs for default selector with ~= * Skip prefetching on 2G connections, or when data saver is enabled * refactor: moving to packages/integrations, Astro Labs TBD down the road * README typo fix Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
16 lines
425 B
TypeScript
16 lines
425 B
TypeScript
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;
|