Some checks failed
Test and deploy staging / staging (push) Failing after 43s
Run the sveltekit-3 migration and finish its manual tasks:
- Move kit config into the sveltekit() Vite plugin; drop svelte.config.js
- Replace $lib with #lib subpath imports
- Declare env vars in src/env.ts and import them from $app/env/{private,public}
- Consolidate param matchers into src/params.ts
- Use error(status, message), Response.json, refreshAll and goto reset/shallow
- Fall back to a full page load when goto rejects a login return path
Switch from adapter-node to adapter-bun: the build script runs Vite under
Bun (the adapter requires it) and the image starts with `bun ./build`.
Runtime env names (PORT, BODY_SIZE_LIMIT, ADDRESS_HEADER, ...) are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
907 B
TypeScript
25 lines
907 B
TypeScript
import { error } from '@sveltejs/kit';
|
|
import { marked } from 'marked';
|
|
import { allLessons } from '#lib/language-learner/course.js';
|
|
import type { PageLoad } from './$types';
|
|
|
|
export const load: PageLoad = async ({ parent, params }) => {
|
|
const { course } = await parent();
|
|
const lessons = allLessons(course);
|
|
const index = lessons.findIndex((l) => l.id === params.lesson);
|
|
if (index < 0) error(404, 'Unknown lesson');
|
|
const lesson = lessons[index];
|
|
const level = course.levels.find((lv) => lv.id === lesson.level)!;
|
|
return {
|
|
lesson,
|
|
level,
|
|
next: lessons[index + 1] ?? null,
|
|
// Notes are course content written in this repository, not user input.
|
|
notesHtml: marked.parse(lesson.notes, { async: false }),
|
|
seo: {
|
|
title: `${lesson.title} · ${course.name} ${level.band}`,
|
|
description: `${course.name} lesson: ${lesson.summary}. ${lesson.words.length} words with exercises.`
|
|
}
|
|
};
|
|
};
|