serwist
Version:
A Swiss Army knife for service workers.
66 lines • 2.14 kB
TypeScript
interface CacheExpirationConfig {
/**
* The maximum number of entries to cache. Entries used least recently will
* be removed as the maximum is reached.
*/
maxEntries?: number;
/**
* The maximum age of an entry before it's treated as stale and removed.
*/
maxAgeSeconds?: number;
/**
* The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)
* that will be used when calling `delete()` on the cache.
*/
matchOptions?: CacheQueryOptions;
}
/**
* Allows you to expires cached responses based on age or maximum number of entries.
* @see https://serwist.pages.dev/docs/serwist/core/cache-expiration
*/
export declare class CacheExpiration {
private _isRunning;
private _rerunRequested;
private readonly _maxEntries?;
private readonly _maxAgeSeconds?;
private readonly _matchOptions?;
private readonly _cacheName;
private readonly _timestampModel;
/**
* To construct a new `CacheExpiration` instance you must provide at least
* one of the `config` properties.
*
* @param cacheName Name of the cache to apply restrictions to.
* @param config
*/
constructor(cacheName: string, config?: CacheExpirationConfig);
/**
* Expires entries for the given cache and given criteria.
*/
expireEntries(): Promise<void>;
/**
* Updates the timestamp for the given URL, allowing it to be correctly
* tracked by the class.
*
* @param url
*/
updateTimestamp(url: string): Promise<void>;
/**
* Checks if a URL has expired or not before it's used.
*
* This looks the timestamp up in IndexedDB and can be slow.
*
* Note: This method does not remove an expired entry, call
* `expireEntries()` to remove such entries instead.
*
* @param url
* @returns
*/
isURLExpired(url: string): Promise<boolean>;
/**
* Removes the IndexedDB used to keep track of cache expiration metadata.
*/
delete(): Promise<void>;
}
export {};
//# sourceMappingURL=CacheExpiration.d.ts.map