aboutsummaryrefslogtreecommitdiff
path: root/node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:43:05 +0800
committerruki <waruqi@gmail.com>2018-11-07 22:18:30 +0800
commit89e95b3f143682ed9a006991bacf45c9dcba4818 (patch)
tree4f44cf41b828577d583890bdd5a1c31e8491a6ba /node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs
parentaa7f0199255277949790b41c56e8ec97dd4f0da4 (diff)
downloadxmake-docs-vuepress.tar.gz
xmake-docs-vuepress.zip
remove node_modulesvuepress
Diffstat (limited to 'node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs')
-rw-r--r--node_modules/workbox-precaching/models/PrecachedDetailsModel.mjs143
1 files changed, 0 insertions, 143 deletions
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;