Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
A CloudFlare service worker that proxies purge cache requests. Example:
addEventListener('fetch', event => {
async function purgeCache(request) {
const url = new URL(request.url)
// If the path doesn't begin with our protected prefix, just pass the request through.
if (!url.pathname.startsWith("/__purge_cache")) {
return fetch(request)
// Lets validate the zone id, and return an error if invalid
let zoneIdValidated = (new RegExp("^([a-z0-9]{32})$")).test(url.searchParams.get('zone'));
if (!zoneIdValidated) {
return new Response('Invalid Zone ID', {
status: 500
let content = '{"purge_everything":true}'
let headers = {
'Content-Type': 'application/json',
'X-Auth-Email': '', // Cloudflare API Auth Email
'X-Auth-Key': '' //Cloudflare API Auth Key
const init = {
method: 'POST',
headers: headers,
body: content
const response = await fetch(''+url.searchParams.get('zone')+'/purge_cache', init)
return response
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment