From 53b739144a70a013bc006722c9ed1f6781d480c2 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Fri, 12 Sep 2025 23:11:57 +0200 Subject: [PATCH] error page: prettier + random bible verse --- src/hooks.server.ts | 64 +++++---------------------------------------- 1 file changed, 7 insertions(+), 57 deletions(-) diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 6b3c5cc..ee6c1e6 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -58,74 +58,24 @@ async function authorization({ event, resolve }) { } // Bible verse functionality for error pages -interface BibleVerse { - bookName: string; - abbreviation: string; - chapter: number; - verse: number; - verseNumber: number; - text: string; -} - -let cachedVerses: BibleVerse[] | null = null; - -function loadVerses(): BibleVerse[] { - if (cachedVerses) { - return cachedVerses; - } - +async function getRandomVerse(): Promise { try { - const filePath = path.join(process.cwd(), 'static', 'allioli.tsv'); - const content = fs.readFileSync(filePath, 'utf-8'); - const lines = content.trim().split('\n'); - - cachedVerses = lines.map(line => { - const [bookName, abbreviation, chapter, verse, verseNumber, text] = line.split('\t'); - return { - bookName, - abbreviation, - chapter: parseInt(chapter), - verse: parseInt(verse), - verseNumber: parseInt(verseNumber), - text - }; - }); - - return cachedVerses; - } catch (err) { - console.error('Error loading Bible verses:', err); - return []; - } -} - -function getRandomVerse(): BibleVerse | null { - try { - const verses = loadVerses(); - if (verses.length === 0) return null; - const randomIndex = Math.floor(Math.random() * verses.length); - return verses[randomIndex]; + const response = await fetch('/api/bible-quote'); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return await response.json(); } catch (err) { console.error('Error getting random verse:', err); return null; } } -function formatVerse(verse: BibleVerse): string { - return `${verse.bookName} ${verse.chapter}:${verse.verseNumber}`; -} - export const handleError: HandleServerError = async ({ error, event, status, message }) => { console.error('Error occurred:', { error, status, message, url: event.url.pathname }); // Add Bible verse to error context - const randomVerse = getRandomVerse(); - const bibleQuote = randomVerse ? { - text: randomVerse.text, - reference: formatVerse(randomVerse), - book: randomVerse.bookName, - chapter: randomVerse.chapter, - verse: randomVerse.verseNumber - } : null; + const bibleQuote = await getRandomVerse(); return { message: message,