chore: cleanup
This commit is contained in:
parent
7caaf7bbcb
commit
55a0f3026a
8 changed files with 48 additions and 54 deletions
|
@ -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)
|
||||
}
|
|
@ -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}" }
|
||||
]
|
Reference in a new issue