UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

48 lines (47 loc) 2.23 kB
interface InitOptions { defaultStrategy?: string; prefetchAll?: boolean; } /** * Initialize the prefetch script, only works once. * * @param defaultOpts Default options for prefetching if not already set by the user config. */ export declare function init(defaultOpts?: InitOptions): void; export interface PrefetchOptions { /** * How the prefetch should prioritize the URL. (default `'link'`) * - `'link'`: use `<link rel="prefetch">`. * - `'fetch'`: use `fetch()`. * * @deprecated It is recommended to not use this option, and let prefetch use `'link'` whenever it's supported, * or otherwise fall back to `'fetch'`. `'link'` works better if the URL doesn't set an appropriate cache header, * as the browser will continue to cache it as long as it's used subsequently. */ with?: 'link' | 'fetch'; /** * Should prefetch even on data saver mode or slow connection. (default `false`) */ ignoreSlowConnection?: boolean; /** * A string providing a hint to the browser as to how eagerly it should prefetch/prerender link targets in order to balance performance advantages against resource overheads. (default `immediate`) * Only works if `clientPrerender` is enabled and browser supports Speculation Rules API. * The browser takes this hint into consideration along with its own heuristics, so it may select a link that the author has hinted as less eager than another, if the less eager candidate is considered a better choice. * * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/speculationrules#eagerness */ eagerness?: 'immediate' | 'eager' | 'moderate' | 'conservative'; } /** * Prefetch a URL so it's cached when the user navigates to it. * * @param url A full or partial URL string based on the current `location.href`. They are only fetched if: * - The user is online * - The user is not in data saver mode * - The URL is within the same origin * - The URL is not the current page * - The URL has not already been prefetched * @param opts Additional options for prefetching. */ export declare function prefetch(url: string, opts?: PrefetchOptions): void; export {};