24 lines
809 B
JavaScript
24 lines
809 B
JavaScript
|
import { getPostMetadata, getPosts, trpcRequest } from '$lib/cohost';
|
||
|
import { error } from '@sveltejs/kit';
|
||
|
|
||
|
export const trailingSlash = 'always';
|
||
|
|
||
|
/** @type {import('./$types').PageServerLoad} */
|
||
|
export async function load({ params }) {
|
||
|
const posts = await getPosts();
|
||
|
|
||
|
let post = posts.find(post => getPostMetadata(post).slug === params.post);
|
||
|
if (!post) post = posts.find(post => post.filename === params.post);
|
||
|
if (!post) throw error(404, {message: 'Post not found'});
|
||
|
|
||
|
const postId = post.postId;
|
||
|
const postFetched = await trpcRequest('posts.singlePost', {
|
||
|
handle: post.postingProject.handle,
|
||
|
postId: postId
|
||
|
});
|
||
|
|
||
|
// uh oh! let's just serve from the emptier post cache
|
||
|
if (!postFetched.result) return {post: post, comments: {[postId]: []}};
|
||
|
|
||
|
return postFetched.result.data;
|
||
|
}
|