diff --git a/src/routes/api/blog/+server.ts b/src/routes/api/blog/+server.ts new file mode 100644 index 0000000000..b9ae18bcda --- /dev/null +++ b/src/routes/api/blog/+server.ts @@ -0,0 +1,28 @@ +const isVercel = process.env.VERCEL === '1'; + +export const prerender = isVercel; + +const parsePosts = (posts: Record) => { + return Object.fromEntries( + Object.entries(posts).map(([key, value]) => { + return [ + key.replace('../../blog/post/', '').replace('/+page.markdoc', ''), + value.frontmatter + ]; + }) + ); +}; + +const posts = parsePosts( + import.meta.glob('../../blog/post/**/*.markdoc', { + eager: true + }) +); + +export const GET = async () => { + return new Response(JSON.stringify({ posts, total: Object.keys(posts).length }), { + headers: { + 'content-type': 'application/json;charset=UTF-8' + } + }); +}; \ No newline at end of file