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.
102 lines
2.7 KiB
102 lines
2.7 KiB
4 years ago
|
/*
|
||
|
Copyright 2018 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 {logger} from 'workbox-core/_private/logger.mjs';
|
||
|
import {CacheFirst} from './CacheFirst.mjs';
|
||
|
import {CacheOnly} from './CacheOnly.mjs';
|
||
|
import {NetworkFirst} from './NetworkFirst.mjs';
|
||
|
import {NetworkOnly} from './NetworkOnly.mjs';
|
||
|
import {StaleWhileRevalidate} from './StaleWhileRevalidate.mjs';
|
||
|
import './_version.mjs';
|
||
|
|
||
|
|
||
|
const mapping = {
|
||
|
cacheFirst: CacheFirst,
|
||
|
cacheOnly: CacheOnly,
|
||
|
networkFirst: NetworkFirst,
|
||
|
networkOnly: NetworkOnly,
|
||
|
staleWhileRevalidate: StaleWhileRevalidate,
|
||
|
};
|
||
|
|
||
|
const deprecate = (strategy) => {
|
||
|
const StrategyCtr = mapping[strategy];
|
||
|
|
||
|
return (options) => {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
const strategyCtrName = strategy[0].toUpperCase() + strategy.slice(1);
|
||
|
logger.warn(`The 'workbox.strategies.${strategy}()' function has been ` +
|
||
|
`deprecated and will be removed in a future version of Workbox.\n` +
|
||
|
`Please use 'new workbox.strategies.${strategyCtrName}()' instead.`);
|
||
|
}
|
||
|
return new StrategyCtr(options);
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* @function workbox.strategies.cacheFirst
|
||
|
* @param {Object} options See the {@link workbox.strategies.CacheFirst}
|
||
|
* constructor for more info.
|
||
|
* @deprecated since v4.0.0
|
||
|
*/
|
||
|
const cacheFirst = deprecate('cacheFirst');
|
||
|
|
||
|
/**
|
||
|
* @function workbox.strategies.cacheOnly
|
||
|
* @param {Object} options See the {@link workbox.strategies.CacheOnly}
|
||
|
* constructor for more info.
|
||
|
* @deprecated since v4.0.0
|
||
|
*/
|
||
|
const cacheOnly = deprecate('cacheOnly');
|
||
|
|
||
|
/**
|
||
|
* @function workbox.strategies.networkFirst
|
||
|
* @param {Object} options See the {@link workbox.strategies.NetworkFirst}
|
||
|
* constructor for more info.
|
||
|
* @deprecated since v4.0.0
|
||
|
*/
|
||
|
const networkFirst = deprecate('networkFirst');
|
||
|
|
||
|
/**
|
||
|
* @function workbox.strategies.networkOnly
|
||
|
* @param {Object} options See the {@link workbox.strategies.NetworkOnly}
|
||
|
* constructor for more info.
|
||
|
* @deprecated since v4.0.0
|
||
|
*/
|
||
|
const networkOnly = deprecate('networkOnly');
|
||
|
|
||
|
/**
|
||
|
* @function workbox.strategies.staleWhileRevalidate
|
||
|
* @param {Object} options See the
|
||
|
* {@link workbox.strategies.StaleWhileRevalidate} constructor for more info.
|
||
|
* @deprecated since v4.0.0
|
||
|
*/
|
||
|
const staleWhileRevalidate = deprecate('staleWhileRevalidate');
|
||
|
|
||
|
/**
|
||
|
* There are common caching strategies that most service workers will need
|
||
|
* and use. This module provides simple implementations of these strategies.
|
||
|
*
|
||
|
* @namespace workbox.strategies
|
||
|
*/
|
||
|
|
||
|
export {
|
||
|
CacheFirst,
|
||
|
CacheOnly,
|
||
|
NetworkFirst,
|
||
|
NetworkOnly,
|
||
|
StaleWhileRevalidate,
|
||
|
|
||
|
// Deprecated...
|
||
|
cacheFirst,
|
||
|
cacheOnly,
|
||
|
networkFirst,
|
||
|
networkOnly,
|
||
|
staleWhileRevalidate,
|
||
|
};
|
||
|
|