function createCacheKey()

in workbox-v4.3.1/workbox-precaching.dev.js [103:150]


  function createCacheKey(entry) {
    if (!entry) {
      throw new WorkboxError_mjs.WorkboxError('add-to-cache-list-unexpected-type', {
        entry
      });
    } // If a precache manifest entry is a string, it's assumed to be a versioned
    // URL, like '/app.abcd1234.js'. Return as-is.


    if (typeof entry === 'string') {
      const urlObject = new URL(entry, location);
      return {
        cacheKey: urlObject.href,
        url: urlObject.href
      };
    }

    const {
      revision,
      url
    } = entry;

    if (!url) {
      throw new WorkboxError_mjs.WorkboxError('add-to-cache-list-unexpected-type', {
        entry
      });
    } // If there's just a URL and no revision, then it's also assumed to be a
    // versioned URL.


    if (!revision) {
      const urlObject = new URL(url, location);
      return {
        cacheKey: urlObject.href,
        url: urlObject.href
      };
    } // Otherwise, construct a properly versioned URL using the custom Workbox
    // search parameter along with the revision info.


    const originalURL = new URL(url, location);
    const cacheKeyURL = new URL(url, location);
    cacheKeyURL.searchParams.set(REVISION_SEARCH_PARAM, revision);
    return {
      cacheKey: cacheKeyURL.href,
      url: originalURL.href
    };
  }