import type { Post } from '#shared/blog/metadata.ts'; import { getPosts } from '~~/server/blog.ts'; import { getLocale, loadConfig } from '~~/server/data.ts'; export default defineEventHandler(async (event) => { const config = await loadConfig(getLocale(event)); if (!config.links.enabled || !config.links.blog) { throw createError({ status: 404, statusMessage: 'Not Found', }); } const query = getQuery(event); const posts = await getPosts(config); return posts.filter((post) => { if (query.shortcuts !== undefined) { if (!config.blog || !config.blog.shortcuts) { return false; } if (!Object.values(config.blog.shortcuts).includes(post.slug)) { return false; } } if (query.slugs !== undefined) { const slugs = Array.isArray(query.slugs) ? query.slugs : [query.slugs]; if (!slugs.includes(post.slug)) { return false; } } return true; }).map((post): Post => ({ slug: post.slug, title: post.title, date: post.date, authors: post.authors, hero: post.hero, })); });