Cloudflare Docs
Workers
Visit Workers on GitHub
Set theme to dark (⇧+D)

Cache Tags using Workers

Send Additional Cache Tags using Workers
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
async function handleRequest(request) {
const requestUrl = new URL(request.url);
const params = requestUrl.searchParams;
const tags = params && params.has('tags')
? params.get('tags').split(',')
: [];
const url = params && params.has('uri')
? JSON.parse(params.get('uri'))
: '';
if (!url) {
const errorObject = {
error: "URL cannot be empty"
}
return new Response(JSON.stringify(errorObject), { status: 400 })
}
const init = {
cf: {
cacheTags: tags
}
}
return fetch(url, init)
.then((result) => {
const cacheStatus = result.headers.get('cf-cache-status');
const lastModified = result.headers.get('last-modified');
const response = {
cache: cacheStatus,
lastModified: lastModified
};
return new Response(JSON.stringify(response), { status: result.status })
})
.catch((err) => {
const errorObject = {
error: err.message
};
return new Response(JSON.stringify(errorObject), { status: 500 })
});
}