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.
 
 
 

83 lines
2.4 KiB

"use strict";
/*
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.
*/
/**
* Helper method that sanitizes the config based on what
* workbox-build.getManifest() expects.
*
* @param {Object} originalConfig
* @return {Object} Sanitized config.
* @private
*/
function forGetManifest(originalConfig) {
const propertiesToRemove = ['chunks', 'exclude', 'excludeChunks', 'importScripts', 'importWorkboxFrom', 'importsDirectory', 'include', 'precacheManifestFilename', 'swDest', 'swSrc', 'test'];
return sanitizeConfig(originalConfig, propertiesToRemove);
}
/**
* Helper method that sanitizes the config based on what
* workbox-build.generateSWString() expects.
*
* @param {Object} originalConfig
* @return {Object} Sanitized config.
* @private
*/
function forGenerateSWString(originalConfig) {
const propertiesToRemove = ['chunks', 'exclude', 'excludeChunks', 'importWorkboxFrom', 'importsDirectory', 'include', 'precacheManifestFilename', 'swDest', 'test'];
return sanitizeConfig(originalConfig, propertiesToRemove);
}
/**
* Given a config object, make a shallow copy via Object.assign(), and remove
* the properties from the copy that we know are webpack-plugin
* specific, so that the remaining properties can be passed through to the
* appropriate workbox-build method.
*
* @param {Object} originalConfig
* @param {Array<string>} propertiesToRemove
* @return {Object} A copy of config, sanitized.
*
* @private
*/
function sanitizeConfig(originalConfig, propertiesToRemove) {
const config = Object.assign({}, originalConfig);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = propertiesToRemove[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
const property = _step.value;
delete config[property];
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return config;
}
module.exports = {
forGetManifest,
forGenerateSWString
};