CacheOverride()
The CacheOverride constructor lets you configure the caching behavior of a Response.
Normally, the HTTP Headers on a Response would control how the Response is cached,
but CacheOverride can be set on a Request, to define custom caching behavior.
Syntax
new CacheOverride(mode)
new CacheOverride(mode, init)
Note:
CacheOverride()can only be constructed withnew. Attempting to call it withoutnewthrows aTypeError.
Parameters
mode: string- Sets the cache override mode for a request
- If set to:
"none": Do not override the behavior specified in the origin response’s cache control headers."pass": Do not cache the response to this request, regardless of the origin response’s headers."override": Override particular cache control settings using theCacheOverrideobject's settings.
init: An Object which contains all the configuration options to apply to the newly created
CacheOverride.pci: boolean optional- Override the caching behavior of this request to enable or disable PCI/HIPAA-compliant non-volatile caching.
- By default, this is
false, which means the request may not be PCI/HIPAA-compliant. Set it totrueto enable compliant caching. - See the Fastly PCI-Compliant Caching and Delivery documentation for details.
surrogateKey: string optional- Override the caching behavior of this request to include the given surrogate key, provided as a header value.
- See the Fastly surrogate keys guide for details.
swr: number optional- Override the caching behavior of this request to use the given
stale-while-revalidatetime, in seconds
- Override the caching behavior of this request to use the given
ttl: number optional- Override the caching behavior of this request to use the given Time to Live (TTL), in seconds.
Return value
A new CacheOverride object.
Examples
In this example we override the cache for all the requests prefixed /static/ to have a long TTL (Time To Live), and the home page to have a short TTL and a long SWR (Stale While Revalidate).
/// <reference types="@fastly/js-compute" />
import { CacheOverride } from "fastly:cache-override";
// In this example we override the cache for all the requests prefixed /static/
// to have a long TTL (Time To Live), and the home page to have a short TTL and
// a long SWR (Stale While Revalidate).
async function app (event) {
const path = (new URL(event.request.url)).pathname;
let cacheOverride;
if (path == '/') {
cacheOverride = new CacheOverride('override', {ttl: 10, swr: 86_400});
} else if (path.startsWith('/static/')) {
cacheOverride = new CacheOverride('override', {ttl: 86_400});
} else {
cacheOverride = new CacheOverride('none')
}
return fetch(event.request.url, {
cacheOverride,
backend: 'origin_0'
});
}
addEventListener("fetch", event => event.respondWith(app(event)));