You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.8 KiB
47 lines
1.8 KiB
/* |
|
Copyright 2020 Google LLC |
|
|
|
Use of this source code is governed by an MIT-style |
|
license that can be found in the LICENSE file or at |
|
https://opensource.org/licenses/MIT. |
|
*/ |
|
import { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js'; |
|
import './_version.js'; |
|
/** |
|
* `PrecacheFallbackPlugin` allows you to specify an "offline fallback" |
|
* response to be used when a given strategy is unable to generate a response. |
|
* |
|
* It does this by intercepting the `handlerDidError` plugin callback |
|
* and returning a precached response, taking the expected revision parameter |
|
* into account automatically. |
|
* |
|
* Unless you explicitly pass in a `PrecacheController` instance to the |
|
* constructor, the default instance will be used. Generally speaking, most |
|
* developers will end up using the default. |
|
* |
|
* @memberof workbox-precaching |
|
*/ |
|
class PrecacheFallbackPlugin { |
|
/** |
|
* Constructs a new PrecacheFallbackPlugin with the associated fallbackURL. |
|
* |
|
* @param {Object} config |
|
* @param {string} config.fallbackURL A precached URL to use as the fallback |
|
* if the associated strategy can't generate a response. |
|
* @param {PrecacheController} [config.precacheController] An optional |
|
* PrecacheController instance. If not provided, the default |
|
* PrecacheController will be used. |
|
*/ |
|
constructor({ fallbackURL, precacheController, }) { |
|
/** |
|
* @return {Promise<Response>} The precache response for the fallback URL. |
|
* |
|
* @private |
|
*/ |
|
this.handlerDidError = () => this._precacheController.matchPrecache(this._fallbackURL); |
|
this._fallbackURL = fallbackURL; |
|
this._precacheController = |
|
precacheController || getOrCreatePrecacheController(); |
|
} |
|
} |
|
export { PrecacheFallbackPlugin };
|
|
|