From 7ffb9c0b86153b42d53740ddc9152913f2a3cae1 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Fri, 12 Sep 2025 22:54:25 +0200 Subject: [PATCH] bible api: use SvelteKit static file handling instead of fs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace filesystem access with fetch request to leverage SvelteKit's built-in static file serving for the allioli.tsv bible data. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/routes/api/bible-quote/+server.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/routes/api/bible-quote/+server.ts b/src/routes/api/bible-quote/+server.ts index 791c95a..1e458ec 100644 --- a/src/routes/api/bible-quote/+server.ts +++ b/src/routes/api/bible-quote/+server.ts @@ -1,7 +1,5 @@ import { json, error } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; -import fs from 'fs'; -import path from 'path'; interface BibleVerse { bookName: string; @@ -15,14 +13,17 @@ interface BibleVerse { // Cache for parsed verses to avoid reading file repeatedly let cachedVerses: BibleVerse[] | null = null; -function loadVerses(): BibleVerse[] { +async function loadVerses(): Promise { if (cachedVerses) { return cachedVerses; } try { - const filePath = path.join(process.cwd(), 'static', 'allioli.tsv'); - const content = fs.readFileSync(filePath, 'utf-8'); + const response = await fetch('/allioli.tsv'); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + const content = await response.text(); const lines = content.trim().split('\n'); cachedVerses = lines.map(line => { @@ -55,7 +56,7 @@ function formatVerse(verse: BibleVerse): string { export const GET: RequestHandler = async () => { try { - const verses = loadVerses(); + const verses = await loadVerses(); const randomVerse = getRandomVerse(verses); return json({