feat: initial commit
This commit is contained in:
commit
0ff7457679
192 changed files with 24379 additions and 0 deletions
40
workers/analytics/index.js
Normal file
40
workers/analytics/index.js
Normal file
|
@ -0,0 +1,40 @@
|
|||
const scriptName = "/js/script.js";
|
||||
const endpoint = "/api/event";
|
||||
|
||||
addEventListener("fetch", (event) => {
|
||||
event.passThroughOnException();
|
||||
event.respondWith(handleRequest(event));
|
||||
});
|
||||
|
||||
async function handleRequest(event) {
|
||||
const url = new URL(event.request.url);
|
||||
const pathname = url.pathname;
|
||||
|
||||
if (pathname === scriptName) {
|
||||
return getScript(event);
|
||||
} else if (pathname === endpoint) {
|
||||
return postData(event);
|
||||
}
|
||||
return new Response(null, { status: 404 });
|
||||
}
|
||||
|
||||
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()));
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
async function postData(event) {
|
||||
const request = new Request(event.request);
|
||||
request.headers.delete("cookie");
|
||||
return await fetch("https://plausible.io/api/event", request);
|
||||
}
|
13
workers/analytics/wrangler.template.toml
Normal file
13
workers/analytics/wrangler.template.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
name = "analytics-worker"
|
||||
main = "./index.js"
|
||||
compatibility_date = "2023-01-01"
|
||||
|
||||
account_id = "${CF_ACCOUNT_ID}"
|
||||
workers_dev = true
|
||||
|
||||
[env.production]
|
||||
name = "analytics-worker-production"
|
||||
routes = [
|
||||
{ pattern = "coryd.dev/js/*", zone_id = "${CF_ZONE_ID}" },
|
||||
{ pattern = "coryd.dev/api/event", zone_id = "${CF_ZONE_ID}" }
|
||||
]
|
Reference in a new issue