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.
44 lines
1.6 KiB
44 lines
1.6 KiB
|
|
/* |
|
Copyright 2019 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 {addFetchListener} from './utils/addFetchListener.mjs'; |
|
import './_version.mjs'; |
|
|
|
|
|
let listenerAdded = false; |
|
|
|
/** |
|
* Add a `fetch` listener to the service worker that will |
|
* respond to |
|
* [network requests]{@link https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests} |
|
* with precached assets. |
|
* |
|
* Requests for assets that aren't precached, the `FetchEvent` will not be |
|
* responded to, allowing the event to fall through to other `fetch` event |
|
* listeners. |
|
* |
|
* @param {Object} options |
|
* @param {string} [options.directoryIndex=index.html] The `directoryIndex` will |
|
* check cache entries for a URLs ending with '/' to see if there is a hit when |
|
* appending the `directoryIndex` value. |
|
* @param {Array<RegExp>} [options.ignoreURLParametersMatching=[/^utm_/]] An |
|
* array of regex's to remove search params when looking for a cache match. |
|
* @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will |
|
* check the cache for the URL with a `.html` added to the end of the end. |
|
* @param {workbox.precaching~urlManipulation} [options.urlManipulation] |
|
* This is a function that should take a URL and return an array of |
|
* alternative URL's that should be checked for precache matches. |
|
* |
|
* @alias workbox.precaching.addRoute |
|
*/ |
|
export const addRoute = (options) => { |
|
if (!listenerAdded) { |
|
addFetchListener(options); |
|
listenerAdded = true; |
|
} |
|
};
|
|
|