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.
96 lines
3.0 KiB
96 lines
3.0 KiB
4 years ago
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
|
||
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
||
|
|
||
|
/*
|
||
|
Copyright 2019 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.
|
||
|
*/
|
||
|
const ol = require('common-tags').oneLine;
|
||
|
|
||
|
const checkURLCasing = options => {
|
||
|
const oldToNewOptionNames = {
|
||
|
dontCacheBustUrlsMatching: 'dontCacheBustURLsMatching',
|
||
|
ignoreUrlParametersMatching: 'ignoreURLParametersMatching',
|
||
|
modifyUrlPrefix: 'modifyURLPrefix',
|
||
|
templatedUrls: 'templatedURLs'
|
||
|
};
|
||
|
const warnings = [];
|
||
|
|
||
|
var _arr = Object.entries(oldToNewOptionNames);
|
||
|
|
||
|
for (var _i = 0; _i < _arr.length; _i++) {
|
||
|
const _arr$_i = (0, _slicedToArray2.default)(_arr[_i], 2),
|
||
|
oldOption = _arr$_i[0],
|
||
|
newOption = _arr$_i[1];
|
||
|
|
||
|
if (oldOption in options) {
|
||
|
warnings.push(ol`The '${oldOption}' option has been renamed to
|
||
|
'${newOption}'. Please update your config. '${oldOption}' is now
|
||
|
deprecated and will be removed in a future release of Workbox.`); // Rename the option so the config will be valid.
|
||
|
|
||
|
options[newOption] = options[oldOption];
|
||
|
delete options[oldOption];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return warnings;
|
||
|
};
|
||
|
|
||
|
const checkStrategyClasses = options => {
|
||
|
const oldToNewOptionValues = {
|
||
|
cacheFirst: 'CacheFirst',
|
||
|
cacheOnly: 'CacheOnly',
|
||
|
networkFirst: 'NetworkFirst',
|
||
|
networkOnly: 'NetworkOnly',
|
||
|
staleWhileRevalidate: 'StaleWhileRevalidate'
|
||
|
};
|
||
|
const warnings = [];
|
||
|
|
||
|
if (options.runtimeCaching) {
|
||
|
var _iteratorNormalCompletion = true;
|
||
|
var _didIteratorError = false;
|
||
|
var _iteratorError = undefined;
|
||
|
|
||
|
try {
|
||
|
for (var _iterator = options.runtimeCaching[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||
|
const entry = _step.value;
|
||
|
|
||
|
if (typeof entry.handler === 'string' && oldToNewOptionValues.hasOwnProperty(entry.handler)) {
|
||
|
const oldValue = entry.handler;
|
||
|
const newValue = oldToNewOptionValues[entry.handler];
|
||
|
warnings.push(ol`Specifying '${oldValue}'' in a
|
||
|
'runtimeCaching[].handler' option is deprecated. Please update your
|
||
|
config to use '${newValue}' instead. In v4 Workbox strategies are now
|
||
|
classes instead of functions.`); // Set the new value so the config will be valid.
|
||
|
|
||
|
entry.handler = newValue;
|
||
|
}
|
||
|
}
|
||
|
} catch (err) {
|
||
|
_didIteratorError = true;
|
||
|
_iteratorError = err;
|
||
|
} finally {
|
||
|
try {
|
||
|
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
||
|
_iterator.return();
|
||
|
}
|
||
|
} finally {
|
||
|
if (_didIteratorError) {
|
||
|
throw _iteratorError;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return warnings;
|
||
|
};
|
||
|
|
||
|
module.exports = options => {
|
||
|
return [...checkURLCasing(options), ...checkStrategyClasses(options)];
|
||
|
};
|