UNPKG

@ztl-uwu/nuxt-content

Version:

Write your content inside your Nuxt app

33 lines (32 loc) 1.19 kB
import { createError, defineEventHandler } from "h3"; import { useRuntimeConfig } from "#imports"; export default defineEventHandler(async (event) => { const { getContentQuery } = await import("../../utils/query.js"); const { serverQueryContent } = await import("../storage.js"); const query = getContentQuery(event); const { advanceQuery } = useRuntimeConfig().public.content.experimental; if (query.first) { let contentQuery = serverQueryContent(event, query); if (!advanceQuery) { contentQuery = contentQuery.withDirConfig(); } const content = await contentQuery.findOne(); const _result = advanceQuery ? content?.result : content; const missing = !_result && !content?.dirConfig?.navigation?.redirect && !content?._dir?.navigation?.redirect; if (missing) { throw createError({ statusMessage: "Document not found!", statusCode: 404, data: { description: "Could not find document for the given query.", query } }); } return content; } if (query.count) { return serverQueryContent(event, query).count(); } return serverQueryContent(event, query).find(); });