-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
/
Copy path+page.server.js
37 lines (28 loc) · 914 Bytes
/
+page.server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import {
get_parsed_tutorial,
get_tutorial_data,
get_tutorial_list
} from '$lib/server/tutorial/index.js';
import { error, redirect } from '@sveltejs/kit';
export const prerender = true;
export async function load({ params }) {
if (params.slug === 'local-transitions') redirect(307, '/tutorial/global-transitions');
const tutorial_data = await get_tutorial_data();
const tutorials_list = get_tutorial_list(tutorial_data);
const tutorial = await get_parsed_tutorial(tutorial_data, params.slug);
if (!tutorial) error(404);
return {
tutorials_list,
tutorial,
slug: params.slug
};
}
export async function entries() {
const tutorials_list = get_tutorial_list(await get_tutorial_data());
const slugs = tutorials_list
.map(({ tutorials }) => tutorials)
.flatMap((val) => val.map(({ slug }) => ({ slug })));
// to force redirect
slugs.push({ slug: 'local-transitions' });
return slugs;
}