website/src/routes/+layout.server.ts

25 lines
860 B
TypeScript
Raw Normal View History

2024-10-01 02:44:39 +03:00
import { scopeCookies } from '$lib';
import { get, writable } from 'svelte/store';
export const csr = true;
export const ssr = true;
export const prerender = true;
export const trailingSlash = 'always';
const visitCount = writable(0);
export async function load({ cookies, url, setHeaders }) {
setHeaders({ 'Cache-Control': 'no-cache' })
const scopedCookies = scopeCookies(cookies, '/')
const visitedTimestamp = parseInt(scopedCookies.get('visitedTimestamp') || "0")
const currentTime = new Date().getTime()
const timeSinceVisit = currentTime - visitedTimestamp
if (visitedTimestamp === 0 || timeSinceVisit > 1000 * 60 * 60) {
visitCount.set(get(visitCount) + 1)
scopedCookies.set('visitedTimestamp', currentTime.toString())
}
return {
route: url.pathname,
visitCount: get(visitCount),
}
}