initial commit
This commit is contained in:
commit
c70fc72952
143 changed files with 13594 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);
|
||||
}
|
Reference in a new issue