add forgotten routes in to build
CI / update (push) Successful in 1m28s

This commit is contained in:
2026-02-11 10:19:11 +01:00
parent 01ccc705ee
commit 7bdc62489c
5 changed files with 70 additions and 59 deletions
@@ -1,6 +1,12 @@
import { json, error } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { lookupReference } from '$lib/server/bible';
import { resolve } from 'path';
const tsvFiles: Record<string, string> = {
glaube: 'static/allioli.tsv',
faith: 'static/drb.tsv'
};
export const GET: RequestHandler = async ({ params }) => {
const reference = params.reference;
@@ -9,8 +15,10 @@ export const GET: RequestHandler = async ({ params }) => {
return error(400, 'Missing reference parameter');
}
const tsvPath = resolve(tsvFiles[params.faithLang]);
try {
const result = lookupReference(reference);
const result = lookupReference(reference, tsvPath);
if (!result) {
return error(404, 'No verses found for the given reference');
@@ -1,5 +1,6 @@
import { json, error } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { resolve } from 'path';
interface BibleVerse {
bookName: string;
@@ -10,23 +11,27 @@ interface BibleVerse {
text: string;
}
// Cache for parsed verses to avoid reading file repeatedly
let cachedVerses: BibleVerse[] | null = null;
const tsvFiles: Record<string, string> = {
glaube: '/allioli.tsv',
faith: '/drb.tsv'
};
async function loadVerses(fetch: typeof globalThis.fetch): Promise<BibleVerse[]> {
if (cachedVerses) {
return cachedVerses;
}
// Cache for parsed verses per language
const versesCache = new Map<string, BibleVerse[]>();
async function loadVerses(fetch: typeof globalThis.fetch, tsvFile: string): Promise<BibleVerse[]> {
const cached = versesCache.get(tsvFile);
if (cached) return cached;
try {
const response = await fetch('/allioli.tsv');
const response = await fetch(tsvFile);
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 => {
const verses = lines.map(line => {
const [bookName, abbreviation, bookNumber, chapter, verseNumber, text] = line.split('\t');
return {
bookName,
@@ -38,7 +43,8 @@ async function loadVerses(fetch: typeof globalThis.fetch): Promise<BibleVerse[]>
};
});
return cachedVerses;
versesCache.set(tsvFile, verses);
return verses;
} catch (err) {
console.error('Error loading Bible verses:', err);
throw new Error('Failed to load Bible verses');
@@ -54,9 +60,11 @@ function formatVerse(verse: BibleVerse): string {
return `${verse.bookName} ${verse.chapter}:${verse.verseNumber}`;
}
export const GET: RequestHandler = async ({ fetch }) => {
export const GET: RequestHandler = async ({ fetch, params }) => {
const tsvFile = tsvFiles[params.faithLang];
try {
const verses = await loadVerses(fetch);
const verses = await loadVerses(fetch, tsvFile);
const randomVerse = getRandomVerse(verses);
return json({