WIP - add extractor, generate snippet_data
This commit is contained in:
45
node_modules/workbox-precaching/utils/cleanRedirect.mjs
generated
vendored
Normal file
45
node_modules/workbox-precaching/utils/cleanRedirect.mjs
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2017 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import '../_version.mjs';
|
||||
|
||||
/**
|
||||
* @param {Response} response
|
||||
* @return {Response}
|
||||
*
|
||||
* @private
|
||||
* @memberof module:workbox-precaching
|
||||
*/
|
||||
const cleanRedirect = async (response) => {
|
||||
const clonedResponse = response.clone();
|
||||
|
||||
// Not all browsers support the Response.body stream, so fall back
|
||||
// to reading the entire body into memory as a blob.
|
||||
const bodyPromise = 'body' in clonedResponse ?
|
||||
Promise.resolve(clonedResponse.body) :
|
||||
clonedResponse.blob();
|
||||
|
||||
const body = await bodyPromise;
|
||||
|
||||
// new Response() is happy when passed either a stream or a Blob.
|
||||
return new Response(body, {
|
||||
headers: clonedResponse.headers,
|
||||
status: clonedResponse.status,
|
||||
statusText: clonedResponse.statusText,
|
||||
});
|
||||
};
|
||||
|
||||
export default cleanRedirect;
|
||||
61
node_modules/workbox-precaching/utils/printCleanupDetails.mjs
generated
vendored
Normal file
61
node_modules/workbox-precaching/utils/printCleanupDetails.mjs
generated
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
Copyright 2017 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import {logger} from 'workbox-core/_private/logger.mjs';
|
||||
import '../_version.mjs';
|
||||
|
||||
const logGroup = (groupTitle, urls) => {
|
||||
logger.groupCollapsed(groupTitle);
|
||||
|
||||
urls.forEach((url) => {
|
||||
logger.log(url);
|
||||
});
|
||||
|
||||
logger.groupEnd();
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Array<string>} deletedCacheRequests
|
||||
* @param {Array<string>} deletedRevisionDetails
|
||||
*
|
||||
* @private
|
||||
* @memberof module:workbox-precachig
|
||||
*/
|
||||
export default (deletedCacheRequests, deletedRevisionDetails) => {
|
||||
if (deletedCacheRequests.length === 0 &&
|
||||
deletedRevisionDetails.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const cacheDeleteCount = deletedCacheRequests.length;
|
||||
const revisionDeleteCount = deletedRevisionDetails.length;
|
||||
|
||||
const cacheDeleteText =
|
||||
`${cacheDeleteCount} cached ` +
|
||||
`request${cacheDeleteCount === 1 ? ' was' : 's were'} deleted`;
|
||||
const revisionDeleteText =
|
||||
`${revisionDeleteCount} ` +
|
||||
`${revisionDeleteCount === 1 ? 'entry' : 'entries'} ` +
|
||||
`${revisionDeleteCount === 1 ? 'was' : 'were'} deleted from IndexedDB.`;
|
||||
|
||||
logger.groupCollapsed(
|
||||
`During precaching cleanup, ${cacheDeleteText} and ${revisionDeleteText}`);
|
||||
|
||||
logGroup('Deleted Cache Requests', deletedCacheRequests);
|
||||
logGroup('Revision Details Deleted from DB', deletedRevisionDetails);
|
||||
|
||||
logger.groupEnd();
|
||||
};
|
||||
71
node_modules/workbox-precaching/utils/printInstallDetails.mjs
generated
vendored
Normal file
71
node_modules/workbox-precaching/utils/printInstallDetails.mjs
generated
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
/*
|
||||
Copyright 2017 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import {logger} from 'workbox-core/_private/logger.mjs';
|
||||
import '../_version.mjs';
|
||||
|
||||
/**
|
||||
* @param {string} groupTitle
|
||||
* @param {Array<PrecacheEntry>} entries
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
const _nestedGroup = (groupTitle, entries) => {
|
||||
if (entries.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
logger.groupCollapsed(groupTitle);
|
||||
|
||||
entries.forEach((entry) => {
|
||||
logger.log(entry._originalInput);
|
||||
});
|
||||
|
||||
logger.groupEnd();
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Array<Object>} entriesToPrecache
|
||||
* @param {Array<Object>} alreadyPrecachedEntries
|
||||
*
|
||||
* @private
|
||||
* @memberof module:workbox-precachig
|
||||
*/
|
||||
export default (entriesToPrecache, alreadyPrecachedEntries) => {
|
||||
// Goal is to print the message:
|
||||
// Precaching X files.
|
||||
// Or:
|
||||
// Precaching X files. Y files were cached and up-to-date.
|
||||
|
||||
const precachedCount = entriesToPrecache.length;
|
||||
const alreadyPrecachedCount = alreadyPrecachedEntries.length;
|
||||
let printText =
|
||||
`Precaching ${precachedCount} file${precachedCount === 1 ? '' : 's'}.`;
|
||||
if (alreadyPrecachedCount > 0) {
|
||||
printText += ` ${alreadyPrecachedCount} ` +
|
||||
`file${alreadyPrecachedCount === 1 ? ' is' : 's are'} already cached.`;
|
||||
}
|
||||
|
||||
logger.groupCollapsed(printText);
|
||||
|
||||
_nestedGroup(
|
||||
`View precached URLs.`,
|
||||
entriesToPrecache);
|
||||
_nestedGroup(
|
||||
`View URLs that were already precached.`,
|
||||
alreadyPrecachedEntries);
|
||||
logger.groupEnd();
|
||||
};
|
||||
63
node_modules/workbox-precaching/utils/showWarningsIfNeeded.mjs
generated
vendored
Normal file
63
node_modules/workbox-precaching/utils/showWarningsIfNeeded.mjs
generated
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
Copyright 2017 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import {logger} from 'workbox-core/_private/logger.mjs';
|
||||
import '../_version.mjs';
|
||||
|
||||
/**
|
||||
* This method will print out a warning if a precache entry doesn't have
|
||||
* a `revision` value.
|
||||
*
|
||||
* This is common if the asset if revisioned in the url like `index.1234.css`.
|
||||
*
|
||||
* @param {Map} entriesMap
|
||||
*
|
||||
* @private
|
||||
* @memberof module:workbox-preaching
|
||||
*/
|
||||
export default (entriesMap) => {
|
||||
const urlOnlyEntries = [];
|
||||
entriesMap.forEach(
|
||||
(entry) => {
|
||||
if (typeof entry === 'string' || !entry._originalInput.revision) {
|
||||
urlOnlyEntries.push(entry._originalInput);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (urlOnlyEntries.length === 0) {
|
||||
// No warnings needed.
|
||||
return;
|
||||
}
|
||||
|
||||
logger.groupCollapsed('Are your precached assets revisioned?');
|
||||
|
||||
const urlsList = urlOnlyEntries.map((urlOnlyEntry) => {
|
||||
return ` - ${JSON.stringify(urlOnlyEntry)}`;
|
||||
}).join(`\n`);
|
||||
|
||||
logger.warn(
|
||||
`The following precache entries might not be revisioned:` +
|
||||
`\n\n` +
|
||||
urlsList +
|
||||
`\n\n`
|
||||
);
|
||||
|
||||
logger.unprefixed.warn(`You can learn more about why this might be a ` +
|
||||
`problem here: https://developers.google.com/web/tools/workbox/modules/workbox-precaching`);
|
||||
|
||||
logger.groupEnd();
|
||||
};
|
||||
Reference in New Issue
Block a user