bible api: use SvelteKit static file handling instead of fs
Some checks failed
CI / update (push) Failing after 5s
Some checks failed
CI / update (push) Failing after 5s
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 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
import { json, error } from '@sveltejs/kit';
|
import { json, error } from '@sveltejs/kit';
|
||||||
import type { RequestHandler } from './$types';
|
import type { RequestHandler } from './$types';
|
||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
|
|
||||||
interface BibleVerse {
|
interface BibleVerse {
|
||||||
bookName: string;
|
bookName: string;
|
||||||
@@ -15,14 +13,17 @@ interface BibleVerse {
|
|||||||
// Cache for parsed verses to avoid reading file repeatedly
|
// Cache for parsed verses to avoid reading file repeatedly
|
||||||
let cachedVerses: BibleVerse[] | null = null;
|
let cachedVerses: BibleVerse[] | null = null;
|
||||||
|
|
||||||
function loadVerses(): BibleVerse[] {
|
async function loadVerses(): Promise<BibleVerse[]> {
|
||||||
if (cachedVerses) {
|
if (cachedVerses) {
|
||||||
return cachedVerses;
|
return cachedVerses;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const filePath = path.join(process.cwd(), 'static', 'allioli.tsv');
|
const response = await fetch('/allioli.tsv');
|
||||||
const content = fs.readFileSync(filePath, 'utf-8');
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
|
}
|
||||||
|
const content = await response.text();
|
||||||
const lines = content.trim().split('\n');
|
const lines = content.trim().split('\n');
|
||||||
|
|
||||||
cachedVerses = lines.map(line => {
|
cachedVerses = lines.map(line => {
|
||||||
@@ -55,7 +56,7 @@ function formatVerse(verse: BibleVerse): string {
|
|||||||
|
|
||||||
export const GET: RequestHandler = async () => {
|
export const GET: RequestHandler = async () => {
|
||||||
try {
|
try {
|
||||||
const verses = loadVerses();
|
const verses = await loadVerses();
|
||||||
const randomVerse = getRandomVerse(verses);
|
const randomVerse = getRandomVerse(verses);
|
||||||
|
|
||||||
return json({
|
return json({
|
||||||
|
Reference in New Issue
Block a user