1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { CacheDidUpdateCallbackParam } from 'workbox-core/types.js';
- import './_version.js';
- export interface BroadcastCacheUpdateOptions {
- headersToCheck?: string[];
- generatePayload?: (options: CacheDidUpdateCallbackParam) => Record<string, any>;
- }
- /**
- * Uses the `postMessage()` API to inform any open windows/tabs when a cached
- * response has been updated.
- *
- * For efficiency's sake, the underlying response bodies are not compared;
- * only specific response headers are checked.
- *
- * @memberof module:workbox-broadcast-update
- */
- declare class BroadcastCacheUpdate {
- private readonly _headersToCheck;
- private readonly _generatePayload;
- /**
- * Construct a BroadcastCacheUpdate instance with a specific `channelName` to
- * broadcast messages on
- *
- * @param {Object} options
- * @param {Array<string>} [options.headersToCheck=['content-length', 'etag', 'last-modified']]
- * A list of headers that will be used to determine whether the responses
- * differ.
- * @param {string} [options.generatePayload] A function whose return value
- * will be used as the `payload` field in any cache update messages sent
- * to the window clients.
- */
- constructor({ headersToCheck, generatePayload, }?: BroadcastCacheUpdateOptions);
- /**
- * Compares two [Responses](https://developer.mozilla.org/en-US/docs/Web/API/Response)
- * and sends a message (via `postMessage()`) to all window clients if the
- * responses differ (note: neither of the Responses can be
- * {@link http://stackoverflow.com/questions/39109789|opaque}).
- *
- * The message that's posted has the following format (where `payload` can
- * be customized via the `generatePayload` option the instance is created
- * with):
- *
- * ```
- * {
- * type: 'CACHE_UPDATED',
- * meta: 'workbox-broadcast-update',
- * payload: {
- * cacheName: 'the-cache-name',
- * updatedURL: 'https://example.com/'
- * }
- * }
- * ```
- *
- * @param {Object} options
- * @param {Response} [options.oldResponse] Cached response to compare.
- * @param {Response} options.newResponse Possibly updated response to compare.
- * @param {Request} options.request The request.
- * @param {string} options.cacheName Name of the cache the responses belong
- * to. This is included in the broadcast message.
- * @param {Event} [options.event] event An optional event that triggered
- * this possible cache update.
- * @return {Promise} Resolves once the update is sent.
- */
- notifyIfUpdated(options: CacheDidUpdateCallbackParam): Promise<void>;
- }
- export { BroadcastCacheUpdate };
|