1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*
- 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 '../_version.js';
- /**
- * A plugin, designed to be used with PrecacheController, to determine the
- * of assets that were updated (or not updated) during the install event.
- *
- * @private
- */
- class PrecacheInstallReportPlugin {
- constructor() {
- this.updatedURLs = [];
- this.notUpdatedURLs = [];
- this.handlerWillStart = async ({ request, state, }) => {
- // TODO: `state` should never be undefined...
- if (state) {
- state.originalRequest = request;
- }
- };
- this.cachedResponseWillBeUsed = async ({ event, state, cachedResponse, }) => {
- if (event.type === 'install') {
- if (state &&
- state.originalRequest &&
- state.originalRequest instanceof Request) {
- // TODO: `state` should never be undefined...
- const url = state.originalRequest.url;
- if (cachedResponse) {
- this.notUpdatedURLs.push(url);
- }
- else {
- this.updatedURLs.push(url);
- }
- }
- }
- return cachedResponse;
- };
- }
- }
- export { PrecacheInstallReportPlugin };
|