cacheNames.mjs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. Copyright 2018 Google LLC
  3. Use of this source code is governed by an MIT-style
  4. license that can be found in the LICENSE file or at
  5. https://opensource.org/licenses/MIT.
  6. */
  7. import '../_version.mjs';
  8. const _cacheNameDetails = {
  9. googleAnalytics: 'googleAnalytics',
  10. precache: 'precache-v2',
  11. prefix: 'workbox',
  12. runtime: 'runtime',
  13. suffix: self.registration.scope,
  14. };
  15. const _createCacheName = (cacheName) => {
  16. return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]
  17. .filter((value) => value.length > 0)
  18. .join('-');
  19. };
  20. export const cacheNames = {
  21. updateDetails: (details) => {
  22. Object.keys(_cacheNameDetails).forEach((key) => {
  23. if (typeof details[key] !== 'undefined') {
  24. _cacheNameDetails[key] = details[key];
  25. }
  26. });
  27. },
  28. getGoogleAnalyticsName: (userCacheName) => {
  29. return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);
  30. },
  31. getPrecacheName: (userCacheName) => {
  32. return userCacheName || _createCacheName(_cacheNameDetails.precache);
  33. },
  34. getPrefix: () => {
  35. return _cacheNameDetails.prefix;
  36. },
  37. getRuntimeName: (userCacheName) => {
  38. return userCacheName || _createCacheName(_cacheNameDetails.runtime);
  39. },
  40. getSuffix: () => {
  41. return _cacheNameDetails.suffix;
  42. },
  43. };