···11import { env } from '$env/dynamic/private';
22import { scopeCookies } from '$lib';
33import type { Cookies } from '@sveltejs/kit';
44-import { existsSync, readFileSync, writeFileSync } from 'fs';
54import { nanoid } from 'nanoid';
65import { get, writable } from 'svelte/store';
7687const visitCountFile = `${env.WEBSITE_DATA_DIR}/visitcount`;
98export const visitCount = writable(
1010- parseInt(existsSync(visitCountFile) ? readFileSync(visitCountFile).toString() : '0')
99+ parseInt((await Bun.file(visitCountFile).exists()) ? await Bun.file(visitCountFile).text() : '0')
1110);
12111312export type Visitor = { visits: number[] };
···1817 visitCount.set(get(visitCount) - 1);
1918};
20192121-export const incrementVisitCount = (request: Request, cookies: Cookies) => {
2020+export const incrementVisitCount = async (request: Request, cookies: Cookies) => {
2221 let currentVisitCount = get(visitCount);
2322 // check whether the request is from a bot or not (this doesnt need to be accurate we just want to filter out honest bots)
2423 if (isBot(request)) return false;
···3635 // update the cookie with the current timestamp
3736 scopedCookies.set('visitedTimestamp', currentTime.toString());
3837 // write the visit count to a file so we can load it later again
3939- writeFileSync(visitCountFile, currentVisitCount.toString());
3838+ await Bun.write(visitCountFile, currentVisitCount.toString());
4039 }
4140 return true;
4241};