20 lines
641 B
TypeScript
20 lines
641 B
TypeScript
import { apiFetch, NotFoundError } from '../client';
|
|
import type { BlogPost, BlogPostSummary } from '../types/blog';
|
|
import { resolveBaseUrl } from '../base-url';
|
|
|
|
export async function fetchBlogPosts(): Promise<readonly BlogPostSummary[]> {
|
|
try {
|
|
return await apiFetch<readonly BlogPostSummary[]>(`${resolveBaseUrl()}/www/blog`);
|
|
} catch (err) {
|
|
if (err instanceof NotFoundError) throw err;
|
|
throw err;
|
|
}
|
|
}
|
|
|
|
export async function fetchBlogPost(slug: string): Promise<BlogPost> {
|
|
try {
|
|
return await apiFetch<BlogPost>(`${resolveBaseUrl()}/www/blog/${encodeURIComponent(slug)}`);
|
|
} catch (err) {
|
|
throw err;
|
|
}
|
|
}
|