Skip to content

Instantly share code, notes, and snippets.

@planetahuevo
Forked from rohenaz/stripParamsWorker.js
Created January 5, 2021 23:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save planetahuevo/fc7141ae4365b2739ca3d7c76e201985 to your computer and use it in GitHub Desktop.
Save planetahuevo/fc7141ae4365b2739ca3d7c76e201985 to your computer and use it in GitHub Desktop.
cloudflare worker - strip referral query parameters such as fbclid
/**
* Define regular expressions at top to have them precompiled.
*/
const urlRegex = new RegExp('^(refreshce|gclid|cx|ie|cof|siteurl|zanpid|origin|utm_[a-z]+|fbid|fbclid|mr:[A-z]+|ref(id|src))$');
addEventListener('fetch', event => {
event.passThroughOnException()
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
let url = new URL(request.url)
url = await normalizeUrl(url)
let modifiedRequest = new Request(url, request)
return fetch(modifiedRequest)
}
async function normalizeUrl(url) {
let deleteKeys = []
for(var key of url.searchParams.keys()) {
if(key.match(urlRegex)){
deleteKeys.push(key)
}
}
deleteKeys.map(k => url.searchParams.delete(k))
return url
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment