chore: cleanup

This commit is contained in:
Cory Dransfeldt 2024-10-01 17:06:58 -07:00
parent 7caaf7bbcb
commit 55a0f3026a
No known key found for this signature in database
8 changed files with 48 additions and 54 deletions

View file

@ -1,40 +1,39 @@
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
const scriptName = '/js/script.js'
const endpoint = '/api/event'
addEventListener("fetch", (event) => {
event.passThroughOnException()
event.respondWith(handleRequest(event))
})
async function handleRequest(request) {
const url = new URL(request.url)
async function handleRequest(event) {
const url = new URL(event.request.url)
const pathname = url.pathname
if (url.pathname === '/js/script.js') {
const targetUrl = 'https://stats.coryd.dev/script.js'
const response = await fetch(targetUrl, {
method: request.method,
headers: request.headers
})
const newHeaders = new Headers(response.headers)
newHeaders.set('Cache-Control', 'max-age=15552000')
if (pathname === scriptName) {
return getScript(event)
} else if (pathname === endpoint) {
return postData(event)
}
return new Response(null, { status: 404 })
}
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders
})
async function getScript(event) {
const cache = caches.default
let response = await cache.match(event.request)
if (!response) {
const scriptUrl =
'https://plausible.io/js/plausible.outbound-links.tagged-events.js'
response = await fetch(scriptUrl)
if (response.ok) event.waitUntil(cache.put(event.request, response.clone()))
}
if (url.pathname === '/js/api/send') {
const targetUrl = 'https://stats.coryd.dev/api/send'
const response = await fetch(targetUrl, {
method: request.method,
headers: request.headers,
body: request.body
})
return response
}
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response.headers
})
}
return fetch(request)
async function postData(event) {
const request = new Request(event.request)
request.headers.delete('cookie')
return await fetch('https://plausible.io/api/event', request)
}

View file

@ -1,5 +1,5 @@
name = "analytics-worker"
main = "./index.js"
main = "./index.js" # Add this line to specify the entry point
compatibility_date = "2023-01-01"
account_id = "${CF_ACCOUNT_ID}"
@ -8,6 +8,6 @@ workers_dev = true
[env.production]
name = "analytics-worker-production"
routes = [
{ pattern = "coryd.dev/js/script.js", zone_id = "${CF_ZONE_ID}" },
{ pattern = "coryd.dev/js/api/send", zone_id = "${CF_ZONE_ID}" }
{ pattern = "coryd.dev/js/*", zone_id = "${CF_ZONE_ID}" },
{ pattern = "coryd.dev/api/event", zone_id = "${CF_ZONE_ID}" }
]