serwist
Version:
A Swiss Army knife for service workers.
37 lines (31 loc) • 1.1 kB
text/typescript
/*
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.
*/
import type { PrecacheRouteOptions } from "../../types.js";
import { generateURLVariations } from "../../utils/generateURLVariations.js";
import { getSingletonPrecacheController } from "../singletonPrecacheController.js";
/**
* This function will take the request URL and manipulate it based on the
* configuration options.
*
* @param url
* @param options
* @returns Returns the URL in the cache that matches the request,
* if possible.
*
* @private
*/
export const getCacheKeyForURL = (url: string, options: PrecacheRouteOptions): string | undefined => {
const precacheController = getSingletonPrecacheController();
const urlsToCacheKeys = precacheController.getURLsToCacheKeys();
for (const possibleURL of generateURLVariations(url, options)) {
const possibleCacheKey = urlsToCacheKeys.get(possibleURL);
if (possibleCacheKey) {
return possibleCacheKey;
}
}
return undefined;
};