diff --git a/server/api/search.json.get.ts b/server/api/search.json.get.ts index d27121431..0f0a121ea 100644 --- a/server/api/search.json.get.ts +++ b/server/api/search.json.get.ts @@ -1,7 +1,9 @@ import { serverQueryContent } from '#content/server' export default eventHandler(async (event) => { - return await serverQueryContent(event, '/docs').where({ + const { select } = getQuery<{ select: string | undefined }>(event) + + const docs = await serverQueryContent(event, '/docs').where({ _type: 'markdown', _path: { $and: [{ @@ -12,4 +14,19 @@ export default eventHandler(async (event) => { }, navigation: { $ne: false } }).find() + + if (select.length) { + const fieldsToSelect = select.split(',') ?? [] + return docs.map((doc) => { + return fieldsToSelect.reduce((acc, field) => { + if (doc[field] !== undefined) { + acc[field] = doc[field] + } + return acc + }, {}) + }) + } + else { + return docs + } })