mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-14 01:39:56 -05:00
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import {error} from '@sveltejs/kit';
|
|
import type {PageLoad} from './$types';
|
|
import {getAdapter} from '$lib/request-manager';
|
|
import {seriesState} from '$lib/state/series.svelte';
|
|
import {readerState} from '$lib/state/reader.svelte';
|
|
|
|
export const load: PageLoad = async ({params}) => {
|
|
const mangaId = params.mangaId;
|
|
|
|
if (!mangaId) {
|
|
throw error(400, 'Missing manga id');
|
|
}
|
|
|
|
try {
|
|
seriesState.loading = true;
|
|
seriesState.error = null;
|
|
seriesState.chaptersLoading = true;
|
|
seriesState.chaptersError = null;
|
|
|
|
const adapter = getAdapter();
|
|
const [manga, chapters] = await Promise.all([
|
|
adapter.getManga(mangaId),
|
|
adapter.getChapters(mangaId),
|
|
]);
|
|
|
|
seriesState.current = manga;
|
|
seriesState.chapters = chapters;
|
|
|
|
readerState.manga = manga;
|
|
readerState.chapters = chapters;
|
|
|
|
return {
|
|
manga,
|
|
chapters,
|
|
mangaId,
|
|
};
|
|
} catch (err) {
|
|
const message = err instanceof Error ? err.message : String(err);
|
|
|
|
seriesState.error = message;
|
|
seriesState.chaptersError = message;
|
|
|
|
throw error(500, message);
|
|
} finally {
|
|
seriesState.loading = false;
|
|
seriesState.chaptersLoading = false;
|
|
}
|
|
}; |