mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 09:25:15 +00:00
158 lines
6.5 KiB
TypeScript
158 lines
6.5 KiB
TypeScript
|
import { RouteHandlerCallback } from 'workbox-core/types.js';
|
||
|
import { WorkboxPlugin } from 'workbox-core/types.js';
|
||
|
import { PrecacheEntry } from './_types.js';
|
||
|
import './_version.js';
|
||
|
/**
|
||
|
* Performs efficient precaching of assets.
|
||
|
*
|
||
|
* @memberof module:workbox-precaching
|
||
|
*/
|
||
|
declare class PrecacheController {
|
||
|
private readonly _cacheName;
|
||
|
private readonly _urlsToCacheKeys;
|
||
|
private readonly _urlsToCacheModes;
|
||
|
private readonly _cacheKeysToIntegrities;
|
||
|
/**
|
||
|
* Create a new PrecacheController.
|
||
|
*
|
||
|
* @param {string} [cacheName] An optional name for the cache, to override
|
||
|
* the default precache name.
|
||
|
*/
|
||
|
constructor(cacheName?: string);
|
||
|
/**
|
||
|
* This method will add items to the precache list, removing duplicates
|
||
|
* and ensuring the information is valid.
|
||
|
*
|
||
|
* @param {
|
||
|
* Array<module:workbox-precaching.PrecacheController.PrecacheEntry|string>
|
||
|
* } entries Array of entries to precache.
|
||
|
*/
|
||
|
addToCacheList(entries: Array<PrecacheEntry | string>): void;
|
||
|
/**
|
||
|
* Precaches new and updated assets. Call this method from the service worker
|
||
|
* install event.
|
||
|
*
|
||
|
* @param {Object} options
|
||
|
* @param {Event} [options.event] The install event (if needed).
|
||
|
* @param {Array<Object>} [options.plugins] Plugins to be used for fetching
|
||
|
* and caching during install.
|
||
|
* @return {Promise<module:workbox-precaching.InstallResult>}
|
||
|
*/
|
||
|
install({ event, plugins }?: {
|
||
|
event?: ExtendableEvent;
|
||
|
plugins?: WorkboxPlugin[];
|
||
|
}): Promise<{
|
||
|
updatedURLs: string[];
|
||
|
notUpdatedURLs: string[];
|
||
|
}>;
|
||
|
/**
|
||
|
* Deletes assets that are no longer present in the current precache manifest.
|
||
|
* Call this method from the service worker activate event.
|
||
|
*
|
||
|
* @return {Promise<module:workbox-precaching.CleanupResult>}
|
||
|
*/
|
||
|
activate(): Promise<{
|
||
|
deletedURLs: string[];
|
||
|
}>;
|
||
|
/**
|
||
|
* Requests the entry and saves it to the cache if the response is valid.
|
||
|
* By default, any response with a status code of less than 400 (including
|
||
|
* opaque responses) is considered valid.
|
||
|
*
|
||
|
* If you need to use custom criteria to determine what's valid and what
|
||
|
* isn't, then pass in an item in `options.plugins` that implements the
|
||
|
* `cacheWillUpdate()` lifecycle event.
|
||
|
*
|
||
|
* @private
|
||
|
* @param {Object} options
|
||
|
* @param {string} options.cacheKey The string to use a cache key.
|
||
|
* @param {string} options.url The URL to fetch and cache.
|
||
|
* @param {string} [options.cacheMode] The cache mode for the network request.
|
||
|
* @param {Event} [options.event] The install event (if passed).
|
||
|
* @param {Array<Object>} [options.plugins] An array of plugins to apply to
|
||
|
* fetch and caching.
|
||
|
* @param {string} [options.integrity] The value to use for the `integrity`
|
||
|
* field when making the request.
|
||
|
*/
|
||
|
_addURLToCache({ cacheKey, url, cacheMode, event, plugins, integrity }: {
|
||
|
cacheKey: string;
|
||
|
url: string;
|
||
|
cacheMode: "reload" | "default" | "no-store" | "no-cache" | "force-cache" | "only-if-cached" | undefined;
|
||
|
event?: ExtendableEvent;
|
||
|
plugins?: WorkboxPlugin[];
|
||
|
integrity?: string;
|
||
|
}): Promise<void>;
|
||
|
/**
|
||
|
* Returns a mapping of a precached URL to the corresponding cache key, taking
|
||
|
* into account the revision information for the URL.
|
||
|
*
|
||
|
* @return {Map<string, string>} A URL to cache key mapping.
|
||
|
*/
|
||
|
getURLsToCacheKeys(): Map<string, string>;
|
||
|
/**
|
||
|
* Returns a list of all the URLs that have been precached by the current
|
||
|
* service worker.
|
||
|
*
|
||
|
* @return {Array<string>} The precached URLs.
|
||
|
*/
|
||
|
getCachedURLs(): string[];
|
||
|
/**
|
||
|
* Returns the cache key used for storing a given URL. If that URL is
|
||
|
* unversioned, like `/index.html', then the cache key will be the original
|
||
|
* URL with a search parameter appended to it.
|
||
|
*
|
||
|
* @param {string} url A URL whose cache key you want to look up.
|
||
|
* @return {string} The versioned URL that corresponds to a cache key
|
||
|
* for the original URL, or undefined if that URL isn't precached.
|
||
|
*/
|
||
|
getCacheKeyForURL(url: string): string | undefined;
|
||
|
/**
|
||
|
* This acts as a drop-in replacement for [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)
|
||
|
* with the following differences:
|
||
|
*
|
||
|
* - It knows what the name of the precache is, and only checks in that cache.
|
||
|
* - It allows you to pass in an "original" URL without versioning parameters,
|
||
|
* and it will automatically look up the correct cache key for the currently
|
||
|
* active revision of that URL.
|
||
|
*
|
||
|
* E.g., `matchPrecache('index.html')` will find the correct precached
|
||
|
* response for the currently active service worker, even if the actual cache
|
||
|
* key is `'/index.html?__WB_REVISION__=1234abcd'`.
|
||
|
*
|
||
|
* @param {string|Request} request The key (without revisioning parameters)
|
||
|
* to look up in the precache.
|
||
|
* @return {Promise<Response|undefined>}
|
||
|
*/
|
||
|
matchPrecache(request: string | Request): Promise<Response | undefined>;
|
||
|
/**
|
||
|
* Returns a function that can be used within a
|
||
|
* {@link module:workbox-routing.Route} that will find a response for the
|
||
|
* incoming request against the precache.
|
||
|
*
|
||
|
* If for an unexpected reason there is a cache miss for the request,
|
||
|
* this will fall back to retrieving the `Response` via `fetch()` when
|
||
|
* `fallbackToNetwork` is `true`.
|
||
|
*
|
||
|
* @param {boolean} [fallbackToNetwork=true] Whether to attempt to get the
|
||
|
* response from the network if there's a precache miss.
|
||
|
* @return {module:workbox-routing~handlerCallback}
|
||
|
*/
|
||
|
createHandler(fallbackToNetwork?: boolean): RouteHandlerCallback;
|
||
|
/**
|
||
|
* Returns a function that looks up `url` in the precache (taking into
|
||
|
* account revision information), and returns the corresponding `Response`.
|
||
|
*
|
||
|
* If for an unexpected reason there is a cache miss when looking up `url`,
|
||
|
* this will fall back to retrieving the `Response` via `fetch()` when
|
||
|
* `fallbackToNetwork` is `true`.
|
||
|
*
|
||
|
* @param {string} url The precached URL which will be used to lookup the
|
||
|
* `Response`.
|
||
|
* @param {boolean} [fallbackToNetwork=true] Whether to attempt to get the
|
||
|
* response from the network if there's a precache miss.
|
||
|
* @return {module:workbox-routing~handlerCallback}
|
||
|
*/
|
||
|
createHandlerBoundToURL(url: string, fallbackToNetwork?: boolean): RouteHandlerCallback;
|
||
|
}
|
||
|
export { PrecacheController };
|