diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:43:05 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 22:18:30 +0800 |
| commit | 89e95b3f143682ed9a006991bacf45c9dcba4818 (patch) | |
| tree | 4f44cf41b828577d583890bdd5a1c31e8491a6ba /node_modules/workbox-precaching/models | |
| parent | aa7f0199255277949790b41c56e8ec97dd4f0da4 (diff) | |
| download | xmake-docs-vuepress.tar.gz xmake-docs-vuepress.zip | |
remove node_modulesvuepress
Diffstat (limited to 'node_modules/workbox-precaching/models')
| -rw-r--r-- | node_modules/workbox-precaching/models/PrecacheEntry.mjs | 78 | ||||
| -rw-r--r-- | node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs | 143 |
2 files changed, 0 insertions, 221 deletions
diff --git a/node_modules/workbox-precaching/models/PrecacheEntry.mjs b/node_modules/workbox-precaching/models/PrecacheEntry.mjs deleted file mode 100644 index 8138edfa..00000000 --- a/node_modules/workbox-precaching/models/PrecacheEntry.mjs +++ /dev/null @@ -1,78 +0,0 @@ -/* - 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'; - -/** - * Used as a consistent way of referencing a URL to precache. - * - * @private - * @memberof module:workbox-precaching - */ -export default class PrecacheEntry { -/** - * This class ensures all cache list entries are consistent and - * adds cache busting if required. - * - * @param {*} originalInput - * @param {string} url - * @param {string} revision - * @param {boolean} shouldCacheBust - */ - constructor(originalInput, url, revision, shouldCacheBust) { - this._originalInput = originalInput; - this._entryId = url; - this._revision = revision; - const requestAsCacheKey = new Request(url, {credentials: 'same-origin'}); - this._cacheRequest = requestAsCacheKey; - this._networkRequest = shouldCacheBust ? - this._cacheBustRequest(requestAsCacheKey) : requestAsCacheKey; - } - - /** - * This method will either use Request.cache option OR append a cache - * busting parameter to the URL. - * - * @param {Request} request The request to cache bust - * @return {Request} A cachebusted Request - * - * @private - */ - _cacheBustRequest(request) { - let url = request.url; - const requestOptions = { - credentials: 'same-origin', - }; - if ('cache' in Request.prototype) { - // Make use of the Request cache mode where we can. - // Reload skips the HTTP cache for outgoing requests and updates - // the cache with the returned response. - requestOptions.cache = 'reload'; - } else { - const parsedURL = new URL(url, location); - - // This is done so the minifier can mangle 'global.encodeURIComponent' - const _encodeURIComponent = encodeURIComponent; - - parsedURL.search += (parsedURL.search ? '&' : '') + - _encodeURIComponent(`_workbox-cache-bust`) + '=' + - _encodeURIComponent(this._revision); - url = parsedURL.toString(); - } - - return new Request(url, requestOptions); - } -} diff --git a/node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs b/node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs deleted file mode 100644 index 55f1420d..00000000 --- a/node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs +++ /dev/null @@ -1,143 +0,0 @@ -/* - 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 {DBWrapper} from 'workbox-core/_private/DBWrapper.mjs'; -import '../_version.mjs'; - -// Allows minifier to mangle this name -const REVISON_IDB_FIELD = 'revision'; -const URL_IDB_FIELD = 'url'; -const DB_STORE_NAME = 'precached-details-models'; -/** - * This model will track the relevant information of entries that - * are cached and their matching revision details. - * - * @private - */ -class PrecachedDetailsModel { - /** - * Construct a new model for a specific cache. - * - * @param {string} dbName - * @private - */ - constructor(dbName) { - // This ensures the db name contains only letters, numbers, '-', '_' and '$' - const filteredDBName = dbName.replace(/[^\w-]/g, '_'); - this._db = new DBWrapper(filteredDBName, 2, { - onupgradeneeded: this._handleUpgrade, - }); - } - - /** - * Should perform an upgrade of indexedDB. - * - * @param {Event} evt - * - * @private - */ - _handleUpgrade(evt) { - const db = evt.target.result; - if (evt.oldVersion < 2) { - // IndexedDB version 1 used both 'workbox-precaching' and - // 'precached-details-model' before upgrading to version 2. - // Delete them and create a new store with latest schema. - if (db.objectStoreNames.contains('workbox-precaching')) { - db.deleteObjectStore('workbox-precaching'); - } - if (db.objectStoreNames.contains(DB_STORE_NAME)) { - db.deleteObjectStore(DB_STORE_NAME); - } - } - db.createObjectStore(DB_STORE_NAME); - } - - /** - * Check if an entry is already cached. Returns false if - * the entry isn't cached or the revision has changed. - * - * @param {string} cacheName - * @param {PrecacheEntry} precacheEntry - * @return {boolean} - * - * @private - */ - async _isEntryCached(cacheName, precacheEntry) { - const revisionDetails = await this._getRevision(precacheEntry._entryId); - if (revisionDetails !== precacheEntry._revision) { - return false; - } - - const openCache = await caches.open(cacheName); - const cachedResponse = await openCache.match(precacheEntry._cacheRequest); - return !!cachedResponse; - } - - /** - * @return {Promise<Array>} - * - * @private - */ - async _getAllEntries() { - return await this._db.getAllMatching(DB_STORE_NAME, { - includeKeys: true, - }); - } - - /** - * Get the current revision details. - * - * @param {Object} entryId - * @return {Promise<string|null>} - * - * @private - */ - async _getRevision(entryId) { - const data = await this._db.get(DB_STORE_NAME, entryId); - return data ? data[REVISON_IDB_FIELD] : null; - } - - /** - * Add an entry to the details model. - * - * @param {PrecacheEntry} precacheEntry - * - * @private - */ - async _addEntry(precacheEntry) { - await this._db.put( - DB_STORE_NAME, - { - [REVISON_IDB_FIELD]: precacheEntry._revision, - [URL_IDB_FIELD]: precacheEntry._cacheRequest.url, - }, - precacheEntry._entryId - ); - } - - /** - * Delete entry from details model. - * - * @param {string} entryId - * - * @private - */ - async _deleteEntry(entryId) { - await this._db.delete(DB_STORE_NAME, entryId); - } -} - -export default PrecachedDetailsModel; |
